Browse Source

提交修改

master
zhouhaibin 5 months ago
parent
commit
f249554dc8
  1. 107
      src/views/ProcessApprovalSubPage/ProjectArchiveApproval.vue
  2. 27
      src/views/ProcessApprovalSubPage/component/ProjectinfoComponent.vue
  3. 45
      src/views/ProcessApprovalSubPage/component/fieldChangeDetail.vue
  4. 17
      src/views/ProcessApprovalSubPage/fieldChangeApproval.vue
  5. 100
      src/views/ProcessApprovalSubPage/initiatesProjectsApproval/childProjectsApproval(弃用).vue
  6. 6
      src/views/Regulation/RegulationLab/RegulationLab.data.ts
  7. 16
      src/views/projectLib/initiatesProjects/initiatesProjects.vue
  8. 3
      src/views/projectLib/projectContract/projectContract.api.ts
  9. 87
      src/views/projectLib/projectContract/projectContract.data.ts
  10. 39
      src/views/projectLib/projectContract/projectContract.vue
  11. 4
      src/views/projectLib/projectInfo/Detailpage.vue
  12. 32
      src/views/projectLib/projectInfo/index.vue
  13. 55
      src/views/projectLib/projectInfo/modifyfieldInfo.vue
  14. 4
      src/views/projectLib/projectInfo/projectInfo.api.ts
  15. 1
      src/views/projectLib/projectInfo/projectInfo.data.ts
  16. 2
      src/views/projectLib/projectInfoHistory/Detaillist.vue
  17. 17
      src/views/projectLib/projectPlan/planinfoFileDetail.vue

107
src/views/ProcessApprovalSubPage/ProjectArchiveApproval.vue

@ -1,107 +0,0 @@
<template>
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
<el-tab-pane label="项目入库详情" name="1">
<ProjectDetails :isEdit="false" :projectid="projectid" />
</el-tab-pane>
<el-tab-pane label="项目资料" name="2">
<el-divider content-position="left">项目资料详情</el-divider>
<UploadfileDetail :projectid="projectid" :stage="1" />
<el-divider content-position="left">意见文件</el-divider>
<UploadfileDetail :projectid="projectid" :stage="2" />
</el-tab-pane>
<el-tab-pane label="项目计划详情" name="3">
<PlaninfoDetails :projectid="projectid" :showActionColumn="true">
<template #default="record">
<TableAction :actions="getTableAction(record)" />
</template>
</PlaninfoDetails>
</el-tab-pane>
</el-tabs>
<ApprovalDetails :processInstanceId="processInstanceId"/>
<planinfoFileDetail @register="registerFileInfo" :planinfoid="planinfoid" :taskName="taskName" :isfinish="isfinish" />
<ApprovalFromPage :showApprovalForm="showApprovalForm" :buttons="resButton.buttons" ref="ApprovalFromPageRef"
@submit="handleSubmit" @exit="exit" />
</template>
<script lang="ts" name="system-user" setup>
//ts
import { ref,onMounted } from 'vue';
import { useModal } from '@/components/Modal';
import ProjectDetails from "../ProcessApprovalSubPage/component/ProjectDetails.vue"
import UploadfileDetail from "../ProcessApprovalSubPage/component/UploadfileDetail.vue"
import PlaninfoDetails from "../ProcessApprovalSubPage/component/PlaninfoDetails.vue"
import ApprovalDetails from "../ProcessApprovalSubPage/component/ApprovalDetails.vue"
import ApprovalFromPage from "../ProcessApprovalSubPage/component/ApprovalFromPage.vue"
import { ActionItem, TableAction } from '@/components/Table';
import { getActionParam } from '../myWork/inComplete/inComplete.api';
import planinfoFileDetail from '../projectLib/projectPlan/planinfoFileDetail.vue'
import { approveProjectArchive } from "../projectLib/projectArchive/projectArchive.api"
import type { TabsPaneContext } from 'element-plus'
let emit = defineEmits(["close"])
let dataTo = defineProps(["record"])
console.log("routerouterouteroute", dataTo.record)
let projectid = dataTo.record.projectId as string
let processInstanceId = dataTo.record.processInstanceId
let taskid = dataTo.record.taskId as string
let ApprovalFromPageRef = ref()
let showApprovalForm = ref()
let planinfoid = ref()
let taskName = ref()
let isfinish = ref()
let resButton = ref({
showApprovalForm: false,
isEdit: false,
buttons: []
})
onMounted(async () => {
resButton.value = await getActionParam({ processInstanceId: processInstanceId, taskId: taskid, procesType: dataTo.record.procesType })
showApprovalForm.value = resButton.value.showApprovalForm
})
const [registerFileInfo, { openModal: openFileInfo }] = useModal();//
console.log("dataTo",dataTo)
const activeName = ref('1')
const handleClick = (tab: TabsPaneContext, event: Event) => {
console.log(tab, event)
}
function getTableAction(record): ActionItem[] {
return [
{
label: '详情',
onClick: handleDetail.bind(null, record),
},
];
}
function handleDetail(record) {
console.log("rrrrrrrr", record)
planinfoid.value = record.record.id
taskName.value = record.record.taskName
isfinish.value = record.record.isfinish
console.log("rrrrrrrr", record, record.id, record.taskName, planinfoid.value, taskName.value)
openFileInfo()
}
async function handleSubmit() {
let approvalform = await ApprovalFromPageRef.value.getFieldsValueApprovalForm();
const params = new FormData()
params.append("flag", approvalform.flag)
params.append("projectid", projectid)
params.append("comment", approvalform.comment)
params.append("taskId", taskid)
console.log("param", params, "approvalform", approvalform)
if (await ApprovalFromPageRef.value.validateApprovalForm()) {
let res = await approveProjectArchive(params)
console.log("提交成功!", res)
emit("close")
}
}
function exit() {
emit("close")
}
</script>
<style scoped></style>

27
src/views/ProcessApprovalSubPage/component/ProjectinfoComponent.vue

@ -75,25 +75,26 @@ function getTableAction(record): ActionItem[] {
return [
{
label: dataTo.title,
// ifShow: () => {
ifShow: () => {
// if (dataTo.title == "") {
// if (record.projectId == undefined) {
// return true
// } else {
// return false
// }
// } else if (dataTo.title == "") {
// if (record.projectId != undefined) {
// return true
// } else if (record.children == null) {
// return true
// } else {
// return false
// }
// } else {
// return true
// }
// },
// } else
if (dataTo.title == "新增项目合同") {
if (record.projectId != undefined) {
return true
} else if (record.children == null) {
return true
} else {
return false
}
} else {
return true
}
},
onClick: handlemodify.bind(null, record),
}
];

45
src/views/ProcessApprovalSubPage/component/fieldChangeDetail.vue

@ -6,7 +6,7 @@
<el-divider content-position="left">字段新值</el-divider>
<BasicForm @register="registernewFieldForm" />
<div v-if="datares">
<el-divider content-position="left">资料详情</el-divider>
<el-divider content-position="left">文件详情</el-divider>
<BasicTable @register="registerResourceTable">
<template #action="{ record }">
<TableAction :actions="getTableAction(record)" />
@ -15,35 +15,41 @@
</div>
</div>
</template>
<script lang="ts" name="uploadfileApproval" setup>
<script lang="ts" name="fieldChangeDetail" setup>
import { onMounted, ref, reactive } from 'vue'
import { useForm, BasicForm } from '@/components/Form';
import { BasicTable, ActionItem, TableAction, useTable } from '@/components/Table';
import { formSchemas, resourcetableColumns } from '../../projectLib/projectInfo/projectInfo.data';
import { getFieldchangeByid, getFieldchangeFileinfoList } from '../../projectLib/projectInfo/projectInfo.api'
import { getFieldchangeByGroupid, getFieldchangeFileinfoList } from '../../projectLib/projectInfo/projectInfo.api'
import { downloadFile } from "@/api/common/api"
let dataTo = defineProps(["fieldChangeid", "isEdit"])
import { FormSchema } from '@/components/Form';
let dataTo = defineProps(["fieldChangeGroupid", "isEdit"])
console.log("dataTodataTodataTo", dataTo)
let datares = ref()
let showFormSchema: FormSchema[] = []
let objnew = ref({})
let objold = ref({})
onMounted(async () => {
let res = await getFieldchangeByid({ fieldChangeid: dataTo.fieldChangeid })
datares.value = await getFieldchangeFileinfoList({ fieldChangeid: dataTo.fieldChangeid })
let res = await getFieldchangeByGroupid({ fieldChangeGroupid: dataTo.fieldChangeGroupid })
datares.value = await getFieldchangeFileinfoList({ fieldChangeGroupid: dataTo.fieldChangeGroupid })
// if (datares.value) {
// setTableData(datares.value)
// }
formSchemas.forEach(item => {
if (item.field == res.fieldValue) {
resetoldSchema(item)
resetnewSchema(item)
let objnew = {}
objnew[res.fieldValue] = res.newvalue
res.forEach(itemRes => {
formSchemas.forEach(itemformSchemas => {
if (itemformSchemas.field == itemRes.fieldValue) {
showFormSchema.push(itemformSchemas)
objnew[itemRes.fieldValue] = itemRes.newvalue
objold[itemRes.fieldValue] = itemRes.oldvalue
}
})
})
resetoldSchema(showFormSchema)
resetnewSchema(showFormSchema)
setnewFieldsValue(objnew)
let objold = {}
objold[res.fieldValue] = res.oldvalue
setoldFieldsValue(objold)
setProps({ disabled: dataTo.isEdit == true ? false : true })
}
})
})
@ -75,7 +81,7 @@ const [registerResourceTable, { setTableData }] = useTable({
slots: { customRender: 'action' },
},
beforeFetch(param) {
param.fieldChangeid = dataTo.fieldChangeid
param.fieldChangeGroupid = dataTo.fieldChangeGroupid
}
});
function getTableAction(record): ActionItem[] {
@ -98,14 +104,11 @@ function handleDetailpage(record) {
downloadFile("/huzhouUploadfileinfo/downloadfile", record.documentName, param)
}
const getCssVarName = (type: string) => {
return `--el-box-shadow${type ? '-' : ''}${type}`
}
defineExpose({ getnewFieldsValue, validate })
</script>
<style scoped>
.first {
padding-top: 20px;
margin-top: 20px;

17
src/views/ProcessApprovalSubPage/fieldChangeApproval.vue

@ -1,6 +1,6 @@
<template>
<!-- 自定义表单 -->
<fieldChangeDetail :fieldChangeid="fieldChangeid" :isEdit="resButton.isEdit" ref="fieldChangeDetailRef"/>
<fieldChangeDetail :fieldChangeGroupid="fieldChangeGroupid" :isEdit="resButton.isEdit" ref="fieldChangeDetailRef" />
<el-divider content-position="left" v-if="resButton.isEdit">重新上传项目资料</el-divider>
<div v-if="resButton.isEdit" style="display: flex; justify-content: center; align-items: center; height: 100px;">
<el-upload class="upload-demo" ref="upload" action :http-request="httpRequest" :before-upload="beforeUpload"
@ -17,7 +17,7 @@
import { onMounted, ref, reactive } from 'vue'
import { approvePlanFile, getActionParam } from '../myWork/inComplete/inComplete.api';
import { ElMessage } from 'element-plus'
import { getFieldchangeByid,approvalFieldchange } from '../projectLib/projectInfo/projectInfo.api'
import { getFieldchangeByGroupid, approvalFieldchange } from '../projectLib/projectInfo/projectInfo.api'
import fieldChangeDetail from "../ProcessApprovalSubPage/component/fieldChangeDetail.vue"
import ApprovalDetails from "../ProcessApprovalSubPage/component/ApprovalDetails.vue";
@ -25,7 +25,7 @@ import ApprovalFromPage from "../ProcessApprovalSubPage/component/ApprovalFromPa
let dataTo = defineProps(["record"])
const emit = defineEmits(['close']);
let fieldChangeDetailRef = ref()
let fieldChangeid = dataTo.record.projectId as string
let fieldChangeGroupid = dataTo.record.projectId as string
let processInstanceId = dataTo.record.processInstanceId
let taskid = dataTo.record.taskId as string
let fieldValue = ref()
@ -40,8 +40,8 @@ let fileList = reactive<Array<any>>([]);
onMounted(async () => {
resButton = await getActionParam({ processInstanceId: processInstanceId, taskId: taskid, procesType: dataTo.record.procesType })
showApprovalForm.value = resButton.showApprovalForm
let res = await getFieldchangeByid({ fieldChangeid: fieldChangeid })
fieldValue.value=res.fieldValue
let res = await getFieldchangeByGroupid({ fieldChangeGroupid: fieldChangeGroupid })
fieldValue.value = res
})
@ -79,14 +79,15 @@ function handleExceed() {
async function handleSubmit() {
let approvalform = await ApprovalFromPageRef.value.getFieldsValueApprovalForm();
let data = fieldChangeDetailRef.value.getnewFieldsValue()
fieldChangeDetailRef.value.validate()
const params = new FormData()
params.append("flag", approvalform.flag)
params.append("fieldChangeid", fieldChangeid)
params.append("fieldChangeGroupid", fieldChangeGroupid)
params.append("comment", approvalform.comment)
params.append("taskId", taskid)
params.append("isEdit", resButton.isEdit == true ? "1" : "0")
params.append("newvalue",data[fieldValue.value])
Object.keys(data).forEach(key => {
params.append(key, data[key])
})
if (fileList.length > 0) {
fileList.forEach((x) => {
params.append("file", x.file)

100
src/views/ProcessApprovalSubPage/initiatesProjectsApproval/childProjectsApproval(弃用).vue

@ -1,100 +0,0 @@
<template>
<!-- 自定义表单 -->
<el-divider content-position="left">项目入库详情</el-divider>
<BasicForm @register="registerProjectForm" @submit="handleSubmit" />
</template>
<script lang="ts" name="initiatesProjectsApproval" setup>
import { onMounted, onUpdated } from 'vue'
import { useForm, BasicForm } from '@/components/Form';
import { formSchemas } from '../../projectLib/projectInfo/projectInfo.data';
import { queryProjectInfoById } from '../../projectLib/projectInfo/projectInfo.api'
import { modifyProjectInfo,modifyProjectInfoApproval } from '../../myWork/inComplete/inComplete.api';
import { getUserInfoByid } from '../../projectLib/initiatesProjects/initiatesProjects.api'
let dataTo = defineProps(["projectid", "isEdit", "IsApproval"])
const emit = defineEmits(['close']);
console.log("结果ddddd是", dataTo)
onMounted(async () => {
let param: any = {
projectid: dataTo.projectid
}
let res = await queryProjectInfoById(param)
console.log("结果是", res, dataTo)
setFieldsValue(res)
})
onUpdated(async () => {
console.log("我更新了")
let proform = getFieldsValueProjectForm()
for (let key in proform) {
if (key.indexOf("Contactor") != -1) {
let userid = proform[key]
let res = await getUserInfoByid({ id: userid })
console.log(key, res.nickname)
updateProjectSchema({
field: key,
componentProps: {
options: [{
value: userid,
label: res.nickname
}
],
}
})
}
}
}
)
/**
* BasicForm绑定注册;src\views\ProcessApprovalSubPage\initiatesProjectsApproval\initiatesProjectsApproval.vue
* useForm 是整个框架的核心用于表单渲染里边封装了很多公共方法;
* 支持schemas: 渲染表单列autoSubmitOnEnter回车提交,submitButtonOptions自定义按钮文本和图标等方法
* 平台通过此封装简化了代码支持自定义扩展;
*/
const [registerProjectForm, { validate: validateProjectForm, setFieldsValue, getFieldsValue: getFieldsValueProjectForm, updateSchema: updateProjectSchema }] = useForm({
//
schemas: formSchemas,
showActionButtonGroup: dataTo.isEdit,
//
// autoSubmitOnEnter: true,
// //
// showResetButton: false,
//
submitButtonOptions: { text: '提交', preIcon: '' },
resetButtonOptions: { text: '取消', preIcon: '' },
// 24 0-24
resetFunc: customResetFunc,
actionColOptions: { span: 14 },
labelCol: { style: { width: '120px' } },
wrapperCol: { style: { width: 'auto' } },
disabled: dataTo.isEdit == true ? false : true,
});
async function handleSubmit() {
let projectform = await getFieldsValueProjectForm();
let param = {
projectInfo: projectform
}
// let outrs = Object.assign({},param,projectform)
console.log("param", param, "projectform", projectform)
if (await validateProjectForm()) {
if (dataTo.IsApproval) {
modifyProjectInfoApproval(projectform)
emit("close")
} else {
modifyProjectInfo(projectform)
emit("close")
}
}
}
async function customResetFunc() {
emit("close")
}
</script>
<style></style>

6
src/views/Regulation/RegulationLab/RegulationLab.data.ts

@ -48,7 +48,7 @@ export const searchFormSchema: FormSchema[] = [
label: '资料名称',
field: 'regulationlabName',
component: 'Input',
colProps: { span: 8 },
colProps: { span: 5 },
},
{
label: '资料分类',
@ -58,14 +58,14 @@ export const searchFormSchema: FormSchema[] = [
componentProps: {
dictType: 'regulationlabCategory'
},
colProps: { span: 8 },
colProps: { span: 5 },
},
{
label: '文件名称',
field: 'documentName',
component: 'Input',
colProps: { span: 8 },
colProps: { span: 5 },
}
];

16
src/views/projectLib/initiatesProjects/initiatesProjects.vue

@ -8,12 +8,25 @@
</div>
</template>
<script lang="ts" name="initiatesProjects" setup>
import { } from 'vue'
import { onMounted } from 'vue'
import { useForm, BasicForm } from '@/components/Form';
import { formSchemas } from '../projectInfo/projectInfo.data';
import { submitProjectInfo } from './initiatesProjects.api'
import { Modal } from 'ant-design-vue';
import { queryProjectInfoById } from '@/views/projectLib/projectInfo/projectInfo.api'
let dataTo = defineProps(["projectid"])
let emit = defineEmits(["close"])
onMounted(async () => {
if (dataTo.projectid) {
let param: any = {
projectid: dataTo.projectid
}
let res = await queryProjectInfoById(param)
console.log("结果是", res)
setFieldsValue(res)
}
})
@ -76,4 +89,3 @@ function clearObjectValues(obj) {
padding-right: 40px
}
</style>

3
src/views/projectLib/projectContract/projectContract.api.ts

@ -10,12 +10,13 @@ export enum Api {
getContractinfoListById="/huzhouContractinfo/getContractinfoListById",
getContractProjectPageList="/huzhouContractinfo/getContractProjectPageList",
isExitTaskNameInPlanInfo="/huzhouContractinfo/isExitTaskNameInPlanInfo",
getTaskNameTypeDict="/huzhouPlan/getTaskNameTypeDict",
}
export const huzhouContractinfoPageList = (params) => defHttp.get({ url: Api.huzhouContractinfoPageList, params })
export const getContractProjectPageList = (params) => defHttp.get({ url: Api.getContractProjectPageList, params })
export const isExitTaskNameInPlanInfo = (params) => defHttp.get({ url: Api.isExitTaskNameInPlanInfo, params })
export const getTaskNameTypeDict = (params) => defHttp.get({ url: Api.getTaskNameTypeDict, params })
export const getContractinfoByProjectId = (params) => defHttp.get({ url: Api.getContractinfoByProjectId, params })
export const isExistContractinfo = (params) => defHttp.get({ url: Api.isExistContractinfo, params })

87
src/views/projectLib/projectContract/projectContract.data.ts

@ -1,6 +1,6 @@
import { FormSchema } from '@/components/Form';
import { BasicColumn } from '@/components/Table';
import { isExitTaskNameInPlanInfo } from "./projectContract.api"
import { getTaskNameTypeDict } from "./projectContract.api"
import { message } from "ant-design-vue"
import dayjs from 'dayjs';
import { currentUser } from '@/api/auth/sysUserPersonal';
@ -245,48 +245,53 @@ export const contractformSchemas: FormSchema[] = [
{
label: '属性',
field: 'taskName',
component: 'Input',
component: 'Select',
componentProps: {
style: { width: '80%' },
},
dynamicRules: ({ values }) => {
console.log('values:', values);//表单所有值
//需要return
return [
{
//默认开启表单检验
required: true,
// value 当前手机号输入的值
validator: (formSchemas, value) => {
console.log("______", formSchemas, value);
//需要return 一个Promise对象
return new Promise((resolve, reject) => {
isExitTaskNameInPlanInfo({ projectid: values.id, taskName: value }).then
(res => {
if (!res) {
console.log("当前项目的计划中没有这个阶段");
reject("当前项目的计划中没有这个阶段");
}
Object.keys(values).forEach(key => {
//判断是否taskName字段的名称是否重复
if (key != formSchemas.field && key.includes("taskName")) {
if (values[key] == value) {
reject("属性值重复");
}
}
})
if (!value) {
reject(`此项不能未空`);
} else {
resolve();
}
})
});
},
},
];
options: [{label:"首付支付",value:"首付支付"}],
},
// componentProps: ({ formModel, formActionType }) => {
// console.log("formModel111122323:", formModel);
// return {
// api:() => getTaskNameTypeDict({ projectid:formModel.id}),
// };
// },
// dynamicRules: ({ values }) => {
// console.log('values:', values);//表单所有值
// //需要return
// return [
// {
// //默认开启表单检验
// required: true,
// // value 当前手机号输入的值
// validator: (formSchemas, value) => {
// console.log("______", formSchemas, value);
// //需要return 一个Promise对象
// return new Promise((resolve, reject) => {
// isExitTaskNameInPlanInfo({ projectid: values.id, taskName: value }).then
// (res => {
// if (!res) {
// console.log("当前项目的计划中没有这个阶段");
// reject("当前项目的计划中没有这个阶段");
// }
// Object.keys(values).forEach(key => {
// //判断是否taskName字段的名称是否重复
// if (key != formSchemas.field && key.includes("taskName")) {
// if (values[key] == value) {
// reject("属性值重复");
// }
// }
// })
// if (!value) {
// reject(`此项不能未空`);
// } else {
// resolve();
// }
// })
// });
// },
// },
// ];
// },
required: true,
colProps: { span: 6,},
helpMessage: '需与项目计划的阶段名称所匹配',

39
src/views/projectLib/projectContract/projectContract.vue

@ -46,6 +46,7 @@ import { FormSchema } from '@/components/Form';
import { message } from 'ant-design-vue';
import { PlusCircleOutlined, MinusCircleOutlined } from '@ant-design/icons-vue';
import { cloneDeep } from 'lodash-es';
import { getTaskNameTypeDict } from "./projectContract.api"
const aaa = ({ values }) => {
// console.log('values:', values);//
@ -119,9 +120,9 @@ const aaa = ({ values }) => {
}
const bbb = ({ schema, formModel, formActionType }) => {
console.log("formModel", schema)
console.log("formMode222222", schema, formModel)
if (schema == undefined || schema.field == undefined) {
console.log("formModel111111",schema )
console.log("formModel111111", schema, formModel)
return {
//
precision: 2,
@ -155,28 +156,36 @@ let isModify = ref()
let projectid = ref()
let payNum = ref(1)
let resMoney = ref()
let taskNameTypeDict = ref()
let tempSchemas = cloneDeep(contractformSchemas) as Array<FormSchema>
tempSchemas.forEach(item => {
if (item.field.indexOf("Money") != -1) {
item.dynamicRules = aaa
item.componentProps = bbb
}
if (item.field == "taskName") {
item.componentProps.options = taskNameTypeDict.value
}
})
const emit = defineEmits(['close']);
async function init(data) {
projectid.value = data.projectid
taskNameTypeDict.value= await getTaskNameTypeDict({ projectid: projectid.value })
payNum.value = 1
tempSchemas = cloneDeep(contractformSchemas) as Array<FormSchema>
tempSchemas.forEach(item => {
if (item.field.indexOf("Money") != -1) {
item.dynamicRules = aaa
item.componentProps = bbb
}
if (item.field == "taskName") {
item.componentProps.options = taskNameTypeDict.value
console.log("item.componentProps.options", item.componentProps.options)
}
})
console.log("datadatadata", data, tempSchemas)
projectid.value = data.projectid
let parammoney: any = {
projectid: data.projectid
}
@ -211,14 +220,17 @@ async function init(data) {
if (tempitem.field.indexOf("Money") != -1) {
tempitem.dynamicRules = aaa
item.componentProps = bbb
}
if (tempitem.field == "payDate") {
tempitem.label = "第" + i + "次支付"
}
if (tempitem.field == "totalMoney") {
tempitem.label = "第" + i + "支付总金额"
if (item.field == "taskName") {
item.componentProps.options = taskNameTypeDict.value
}
// if (tempitem.field == "totalMoney") {
// tempitem.label = "" + i + ""
// }
tempitem.field = tempitem.field + i
tempSchemas.push(tempitem)
})
@ -232,6 +244,7 @@ async function init(data) {
setFieldsValue(obj)
} else {
//id id
resetSchema(tempSchemas)
setFieldsValue({ id: data.projectid })
}
}
@ -292,9 +305,13 @@ async function addFrom() {
if (tempitem.field == "payDate") {
tempitem.label = "第" + payNum.value + "次支付"
}
if (tempitem.field == "totalMoney") {
tempitem.label = "第" + payNum.value + "支付总金额"
if (item.field == "taskName") {
item.componentProps.options = taskNameTypeDict.value
}
// if (tempitem.field == "totalMoney") {
// tempitem.label = "" + payNum.value + ""
// }
tempitem.field = tempitem.field + payNum.value
tempSchemas.push(tempitem)
})
@ -531,6 +548,4 @@ function checkForm() { //校验表单
color: #999;
margin-left: 5px;
}
</style>

4
src/views/projectLib/projectInfo/Detailpage.vue

@ -4,13 +4,13 @@
<ProjectDetails :isEdit="false" :projectid="projectid" />
</el-tab-pane>
<el-tab-pane label="项目资料详情" name="2" v-if="showUploadfileDetail">
<el-divider content-position="left">监理资料详情</el-divider>
<el-divider content-position="left">项目资料详情</el-divider>
<UploadfileDetail :projectid="projectid" :stage="1" />
<el-divider content-position="left">意见文件</el-divider>
<UploadfileDetail :projectid="projectid" :stage="2" />
</el-tab-pane>
<el-tab-pane label="项目变更信息详情" name="3" v-if="fieldChangeDetailList?.length > 0">
<fieldChangeDetail v-for=" (item, index) in fieldChangeDetailList" :fieldChangeid="item.id" :isEdit="false" />
<fieldChangeDetail v-for=" (item, index) in fieldChangeDetailList" :fieldChangeGroupid="item.groupId" :isEdit="false" />
</el-tab-pane>
</el-tabs>
<!-- <ProjectDetails :isEdit="false" :projectid="projectid" />

32
src/views/projectLib/projectInfo/index.vue

@ -37,7 +37,7 @@
<BasicModal @register="registeinitiatesModal" title="发起项目入库申请" width="1200px" :showOkBtn="false">
<initiatesProjects @close="closeinitiatesModal()" />
<initiatesProjects @close="closeinitiatesModal()" :projectid="proid" />
</BasicModal>
<BasicModal @register="registeProjectrModal" title="项目信息详情" width="1200px" :showOkBtn="false">
<Detailpage :projectid="proid" :stage="ProjectStage" :IsModify="IsModify"
@ -53,7 +53,8 @@
<batchImportProjects :projectid="proid" @close="closeBatchImportModal()" />
</BasicModal>
<BasicModal @register="registeProjectrModalModify" title="修改项目信息" width="1200px" :showOkBtn="false">
<modifyfieldInfo :projectid="proid" :isEdit="true" @close="closeProjectrModal" :IsApproval="true" :fatherid="fatherid" />
<modifyfieldInfo :projectid="proid" :isEdit="true" @close="closeProjectrModal" :IsApproval="true"
:fatherid="fatherid" />
</BasicModal>
<BasicModal @register="registeSubProject" title="新增子项目" width="1200px" :showOkBtn="false">
@ -116,7 +117,7 @@ const [registerTable, { reload, getForm, getSelectRows, clearSelectedRowKeys }]
},
beforeFetch(param) {
clearSelectedRowKeys()
param.stage = "1"
param.stage = "0"
},
rowSelection: { type: 'radio' },
@ -132,18 +133,14 @@ function getTableAction(record): ActionItem[] {
return [
{
label: '详情',
// ifShow: () => {
// return record.projectId==null
// },
onClick: handleDetailpage.bind(null, record),
},
{
label: '上传项目资料',
label: '入库申请',
ifShow: () => {
return record.stage >= 2 && isShowByRoles("controler,consult") && record.projectId == null
return record.stage == 0 && isShowByRoles("projectContact")
},
onClick: handleuploadFile.bind(null, record)
onClick: handleadd.bind(null, record)
},
];
}
@ -152,8 +149,13 @@ function getTableAction(record): ActionItem[] {
*/
function getDropDownAction(record): ActionItem[] {
return [
{
label: '上传项目资料',
ifShow: () => {
return record.stage >= 2 && isShowByRoles("controler,consult") && record.projectId == null
},
onClick: handleuploadFile.bind(null, record)
},
];
}
@ -180,8 +182,12 @@ function closeUploadFilesModal() {
closeUploadFiles()
reload()
}
function handleadd(record) {
proid.value = record.id
openinitiate()
}
function handleCreate() {
proid.value = undefined
openinitiate()
}
function closeinitiatesModal() {

55
src/views/projectLib/projectInfo/modifyfieldInfo.vue

@ -21,11 +21,14 @@
import { defineProps, onMounted, ref, reactive } from 'vue'
import { } from './projectInfo.data';
import { getChangeFieldManageDict, submitFieldchange, getRemainingMoneyinfo } from './projectInfo.api'
import { getChangeFieldManageDict, submitFieldchange, getRemainingMoneyinfo, queryProjectInfoById } from './projectInfo.api'
import ProjectDetails from "../../ProcessApprovalSubPage/component/ProjectDetails.vue"
import { useForm, BasicForm } from '@/components/Form';
import { formSchemas } from './projectInfo.data';
import { message } from 'ant-design-vue';
import { cloneDeep } from 'lodash-es';
import { FormSchema } from '@/components/Form';
let dataTo = defineProps(["projectid", "stage", "IsModify", "fatherid"])
let emit = defineEmits(["close"])
console.log("dataTo11111", dataTo)
@ -33,7 +36,7 @@ let selectValue = ref()
let options = ref()
let showupload = ref(false)
let fileList = reactive<Array<any>>([]);
let showFormSchema: FormSchema[] = []
onMounted(async () => {
options.value = await getChangeFieldManageDict()
})
@ -97,13 +100,24 @@ async function handleSubmit(record) {
params.append('file', x.file)
});
}
params.append("projectid", dataTo.projectid)
params.append("id", dataTo.projectid)
params.append("fieldValue", selectValue.value)
if (await validate) {
let newValue = await getFieldsValue()
params.append("newValue", newValue[selectValue.value])
Object.keys(newValue).forEach(key => {
//
if (selectValue.value == "Money" && key.includes("Money")) {
params.append(key, newValue[key])
} else {
//
if (key == selectValue.value) {
params.append(key, newValue[key])
}
}
})
console.log("params", params)
await submitFieldchange(params)
emit("close")
}
}
@ -111,22 +125,44 @@ async function customResetFunc() {
emit("close")
}
async function changeOptions(value, option) {
let formSchemasTemp = JSON.parse(JSON.stringify(formSchemas))
let formSchemasTemp = cloneDeep(formSchemas)
//
if (dataTo.fatherid) {
let subres = await getRemainingMoneyinfo({
projectId: dataTo.fatherid,//id
id: dataTo.projectid//id
})
if (value == "Money") {
//
let moenyform = formSchemasTemp.filter(item => item.field.includes("Money"))
moenyform.forEach(item => {
item.componentProps["max"] = subres[item.field]
showFormSchema.push(item)
})
resetSchema(moenyform)
queryProjectInfoById({
projectid: dataTo.projectid
}).then(res => {
setFieldsValue(res)
})
} else {
formSchemasTemp.forEach(item => {
if (item.field == value) {
if (item.field.includes("Money")) {
item.componentProps["max"] = subres[item.field]
resetSchema(item)
}
})
}
//
} else {
//
if (value == "Money") {
let moenyform = formSchemasTemp.filter(item => item.field.includes("Money"))
resetSchema(moenyform)
queryProjectInfoById({
projectid: dataTo.projectid
}).then(res => {
setFieldsValue(res)
})
} else {
formSchemasTemp.forEach(item => {
@ -135,6 +171,7 @@ async function changeOptions(value, option) {
}
})
}
}
if (option.upload == "1") {
showupload.value = true

4
src/views/projectLib/projectInfo/projectInfo.api.ts

@ -16,7 +16,7 @@ export enum Api {
getChangeFieldManageDict="/huzhouChangefieldmanage/getChangeFieldManageDict",
submitFieldchange="/huzhouFieldchangehistory/submitFieldchange",
getFieldchangeByid="/huzhouFieldchangehistory/getFieldchangeByid",
getFieldchangeByGroupid="/huzhouFieldchangehistory/getFieldchangeByGroupid",
getFieldchangeFileinfoList="/huzhouFieldchangehistory/getFieldchangeFileinfoList",
approvalFieldchange="/huzhouFieldchangehistory/approvalFieldchange",
getFieldchangeListByprojectid="/huzhouFieldchangehistory/getFieldchangeListByprojectid",
@ -43,7 +43,7 @@ export const getProjectInfoPageList = (params?) => defHttp.get({ url: Api.getPro
*/
export const queryProcessInfo = (params?) => defHttp.get({ url: Api.queryProcessInfo, params });
export const getChangeFieldManageDict = (params?) => defHttp.get({ url: Api.getChangeFieldManageDict, params });
export const getFieldchangeByid = (params?) => defHttp.get({ url: Api.getFieldchangeByid, params });
export const getFieldchangeByGroupid = (params?) => defHttp.get({ url: Api.getFieldchangeByGroupid, params });
export const getFieldchangeFileinfoList = (params?) => defHttp.get({ url: Api.getFieldchangeFileinfoList, params });
export const getFieldchangeListByprojectid = (params?) => defHttp.get({ url: Api.getFieldchangeListByprojectid, params });

1
src/views/projectLib/projectInfo/projectInfo.data.ts

@ -450,7 +450,6 @@ export const formSchemas: FormSchema[] = [
showSearch: true,
filterOption: (input: string, option: any) => { return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 },
onChange: async (value, option) => {
let supervisorContactorDict = await getContactorDict({ workPlace: value, workPlaceType: "supervisor" })
// formModel.manageContactor = undefined; // reset city value
const { updateSchema, setFieldsValue } = formActionType;
if (option?.phone) {

2
src/views/projectLib/projectInfoHistory/Detaillist.vue

@ -1,6 +1,6 @@
<template>
<div>
<fieldChangeDetail v-for=" (item,index) in fieldChangeDetailList" :fieldChangeid="item.id" :isEdit="false"/>
<fieldChangeDetail v-for=" (item,index) in fieldChangeDetailList" :fieldChangeGroupid="item.groupId" :isEdit="false"/>
</div>
</template>

17
src/views/projectLib/projectPlan/planinfoFileDetail.vue

@ -7,7 +7,7 @@
<el-divider content-position="left">项目计划审批文件列表</el-divider>
<PlanFileDetail :planinfoid="planinfoid" :stage="2" />
<div v-if="dataTo.isfinish == 1">
<ApprovalDetails :projectid="planinfoid" :stage="name.indexOf(taskName)!=-1?'createPlaninfoFile2':'createPlaninfoFile'" />
<ApprovalDetails :projectid="planinfoid" :stage="getstageName()" />
</div>
</div>
</BasicModal>
@ -20,13 +20,24 @@ import ApprovalDetails from "../../ProcessApprovalSubPage/component/ApprovalDeta
import PlanFileDetail from "@/views/ProcessApprovalSubPage/component/PlanFileDetail.vue";
const [registerModal, { closeModal }] = useModalInner();
let name = ["可研报告初稿编制","初步技术审查","造价评估","可行性研究报告审批","初步设计初稿编制","初步设计技术审查","初步设计审批"]
let names = ["可行性研究报告审批", "初验阶段", "终验阶段"];
let dataTo = defineProps(["planinfoid", "taskName", "isfinish"])
console.log("wwwwwwwwwwww", dataTo)
onMounted(async () => {
})
function getstageName() {
if (dataTo.taskName == "可研报告编制") {
return "feasibilityReportPreparation"
}
if (dataTo.taskName == "联合技术审查") {
return "jointTechnicalReview"
}
if (dataTo.taskName == "集中核验") {
return "centralizedCheck"
}
return "createPlaninfoFile"
}

Loading…
Cancel
Save