更新执行

pull/480/head
admin 2024-06-29 21:13:23 +08:00
parent 35cc594bc3
commit db82694e37
3 changed files with 159 additions and 70 deletions

View File

@ -1,52 +1,53 @@
import request from '@/config/axios'
// 执行 VO
export interface MainVO {
id: number // 主键id
contractId: number // 任务书Id
projectCode: string // 任务书编号
projectName: string // 任务书名称
projectLeader: string // 项目负责人
projectLeaderId: string // 项目负责人ID
undertakingUnitName: string // 承担单位名称
undertakingUnitId: string // 承担单位ID
projectObjectives: string // 项目目标
projectEvaluation: string // 考核指标
processDate: string // 执行时间区段
deviation: string // 是否偏差
reason: string // 偏差原因
schedule: string // 实际进度
}
// 执行 API
export const MainApi = {
// 查询执行分页
getMainPage: async (params: any) => {
return await request.get({ url: `/process/main/page`, params })
},
// 查询执行详情
getMain: async (id: number) => {
return await request.get({ url: `/process/main/get?id=` + id })
},
// 新增执行
createMain: async (data: MainVO) => {
return await request.post({ url: `/process/main/create`, data })
},
// 修改执行
updateMain: async (data: MainVO) => {
return await request.put({ url: `/process/main/update`, data })
},
// 删除执行
deleteMain: async (id: number) => {
return await request.delete({ url: `/process/main/delete?id=` + id })
},
// 导出执行 Excel
exportMain: async (params) => {
return await request.download({ url: `/process/main/export-excel`, params })
},
}
import request from '@/config/axios'
// 执行 VO
export interface MainVO {
id: number // 主键id
contractId: number // 任务书Id
projectCode: string // 任务书编号
projectName: string // 任务书名称
projectLeader: string // 项目负责人
projectLeaderId: string // 项目负责人ID
undertakingUnitName: string // 承担单位名称
undertakingUnitId: string // 承担单位ID
projectObjectives: string // 项目目标
projectEvaluation: string // 考核指标
processDate: string // 执行时间区段
deviation: string // 是否偏差
reason: string // 偏差原因
schedule: string // 实际进度
futurePlan: string // 下一步工作计划
}
// 执行 API
export const MainApi = {
// 查询执行分页
getMainPage: async (params: any) => {
return await request.get({ url: `/process/main/page`, params })
},
// 查询执行详情
getMain: async (id: number) => {
return await request.get({ url: `/process/main/get?id=` + id })
},
// 新增执行
createMain: async (data: MainVO) => {
return await request.post({ url: `/process/main/create`, data })
},
// 修改执行
updateMain: async (data: MainVO) => {
return await request.put({ url: `/process/main/update`, data })
},
// 删除执行
deleteMain: async (id: number) => {
return await request.delete({ url: `/process/main/delete?id=` + id })
},
// 导出执行 Excel
exportMain: async (params) => {
return await request.download({ url: `/process/main/export-excel`, params })
},
}

View File

@ -73,6 +73,9 @@
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button type="primary" plain @click="handleInsert">
<Icon icon="ep:plus" class="mr-5px" /> 新增1
</el-button>
<el-button
type="success"
plain
@ -85,7 +88,6 @@
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
@ -152,6 +154,30 @@
/>
</ContentWrap>
<Dialog title="选择任务书" v-model="dialogVisible">
<ContentWrap>
<el-table v-loading="loading1" :data="list1" :stripe="true" :show-overflow-tooltip="true" highlight-current-row>
<el-table-column align="center" width="65">
<template #default="scope">
<el-checkbox :label="scope.row.id" v-model="currentRowValue" @change="handleCurrentChange(scope.row)">
&nbsp;
</el-checkbox>
</template>
</el-table-column>
<el-table-column label="项目编号" align="center" prop="projectCode" />
<el-table-column label="项目名称" align="center" prop="projectName" />
<el-table-column label="项目负责人" align="center" prop="projectLeaderName" />
<el-table-column label="审核状态" align="center" prop="state" />
</el-table>
<Pagination :total="total1" v-model:page="queryParams1.pageNo" v-model:limit="queryParams1.pageSize"
@pagination="getList1" />
</ContentWrap>
<template #footer>
<el-button :disabled="!currentRow" type="primary" @click="submitForm"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
<!-- 表单弹窗添加/修改 -->
<MainForm ref="formRef" @success="getList" />
</template>
@ -167,11 +193,16 @@ import MainForm from './MainForm.vue'
defineOptions({ name: 'ChangeMain' })
const message = useMessage() //
const dialogVisible = ref(false) //
const { t } = useI18n() //
const loading = ref(true) //
const list = ref<MainVO[]>([]) //
const total = ref(0) //
const loading1 = ref(true) //
const list1 = ref<MainVO[]>([]) //
const total1 = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
@ -202,6 +233,39 @@ const queryParams = reactive({
const queryFormRef = ref() //
const exportLoading = ref(false) //
/** 选中行 */
const currentRowValue = ref(undefined) // value
const currentRow = ref(undefined) //
const handleCurrentChange = (row) => {
currentRow.value = row.id
}
const queryParams1 = reactive({
pageNo: 1,
pageSize: 10,
projectName: undefined,
projectLeader: undefined,
projectCode: undefined,
technicalField: undefined,
year: undefined,
})
const submitForm = async () => {
try {
await MainApi.generateChange({ ids: currentRow.value })
message.success("生成成功")
} finally {
//
currentRow.value = undefined
currentRowValue.value = undefined
dialogVisible.value = false
}
}
/** 查询在研合同*/
const handleInsert = async () => {
currentRowValue.value = undefined
dialogVisible.value = true
getList1()
}
/** 查询列表 */
const getList = async () => {
loading.value = true
@ -245,6 +309,17 @@ const handleDelete = async (id: number) => {
} catch {}
}
const getList1 = async () => {
loading1.value = true
try {
const data = await MainApi.getListPage(queryParams1)
list1.value = data.list
total1.value = data.total
} finally {
loading1.value = false
}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {

View File

@ -14,16 +14,19 @@
<el-col :span="4">
<el-form-item label="任务书编号" prop="projectCode">
<el-input v-model="formData.projectCode" placeholder="请输入任务书编号" />
{{formData.projectCode}}
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="任务书名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入任务书名称" />
{{formData.projectName}}
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="项目负责人" prop="projectLeader">
<el-input v-model="formData.projectLeader" placeholder="请输入项目负责人" />
{{formData.projectLeader}}
</el-form-item>
</el-col>
<el-form-item label="项目负责人ID" prop="projectLeaderId" v-if="false">
@ -32,6 +35,7 @@
<el-col :span="5">
<el-form-item label="牵头单位" prop="undertakingUnitName">
<el-input v-model="formData.undertakingUnitName" placeholder="请输入牵头单位" />
{{formData.undertakingUnitName}}
</el-form-item>
</el-col>
<el-form-item label="牵头单位ID" prop="undertakingUnitId" v-if="false">
@ -48,7 +52,7 @@
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="执行时间" prop="processDate">
<el-form-item label="执行时间" prop="processDate" disabled="disabled">
<el-date-picker
v-model="formData.processDate"
type="month"
@ -87,6 +91,12 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="下一步工作计划" prop="futurePlan">
<el-input v-model="formData.futurePlan" type="textarea" :autosize="{minRows:6,maxRows:10}" placeholder="请输入下一步工作计划" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
@ -110,35 +120,38 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
contractId: undefined,
projectCode: undefined,
projectName: undefined,
projectLeader: undefined,
projectLeaderId: undefined,
undertakingUnitName: undefined,
undertakingUnitId: undefined,
// id: undefined,
// contractId: undefined,
// projectCode: undefined,
// projectName: undefined,
// projectLeader: undefined,
// projectLeaderId: undefined,
// undertakingUnitName: undefined,
// undertakingUnitId: undefined,
projectObjectives: undefined,
projectEvaluation: undefined,
processDate: undefined,
deviation: undefined,
reason: undefined,
schedule: undefined,
futurePlan: undefined
})
const formRules = reactive({
// contractId: [{ required: true, message: 'Id', trigger: 'blur' }],
projectCode: [{ required: true, message: '任务书编号不能为空', trigger: 'blur' }],
projectName: [{ required: true, message: '任务书名称不能为空', trigger: 'blur' }],
projectLeader: [{ required: true, message: '项目负责人不能为空', trigger: 'blur' }],
// projectLeaderId: [{ required: true, message: 'ID', trigger: 'blur' }],
undertakingUnitName: [{ required: true, message: '承担单位名称不能为空', trigger: 'blur' }],
// undertakingUnitId: [{ required: true, message: 'ID', trigger: 'blur' }],
projectObjectives: [{ required: true, message: '项目目标不能为空', trigger: 'blur' }],
projectEvaluation: [{ required: true, message: '考核指标不能为空', trigger: 'blur' }],
// projectCode: [{ required: true, message: '', trigger: 'blur' }],
// projectName: [{ required: true, message: '', trigger: 'blur' }],
// projectLeader: [{ required: true, message: '', trigger: 'blur' }],
// // projectLeaderId: [{ required: true, message: 'ID', trigger: 'blur' }],
// undertakingUnitName: [{ required: true, message: '', trigger: 'blur' }],
// // undertakingUnitId: [{ required: true, message: 'ID', trigger: 'blur' }],
// projectObjectives: [{ required: true, message: '', trigger: 'blur' }],
// projectEvaluation: [{ required: true, message: '', trigger: 'blur' }],
processDate: [{ required: true, message: '执行时间不能为空', trigger: 'blur' }],
deviation: [{ required: true, message: '是否偏差不能为空', trigger: 'blur' }],
reason: [{ required: true, message: '偏差原因不能为空', trigger: 'blur' }],
schedule: [{ required: true, message: '实际进度不能为空', trigger: 'blur' }],
futurePlan: [{ required: true, message: '下一步工作计划不能为空', trigger: 'blur' }],
})
const formRef = ref() // Ref