update
This commit is contained in:
parent
021261a84c
commit
a7a8f4b0f6
@ -1,26 +1,34 @@
|
|||||||
import request from "@/utils/request";
|
import request from "@/utils/request";
|
||||||
|
|
||||||
// 考核模板-考核项列表
|
// 考核模板-考核项列表
|
||||||
export function apiOaExamineTempItemLists(params: any) {
|
export function apiOaExamineTempLists(params: any) {
|
||||||
return request.get({ url: "/jxgl.oa_examine_temp_item/lists", params });
|
return request.get({ url: "/jxgl.oa_examine_temp/lists", params });
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添加考核模板-考核项
|
// 添加考核模板-考核项
|
||||||
export function apiOaExamineTempItemAdd(params: any) {
|
export function apiOaExamineTempAdd(params: any) {
|
||||||
return request.post({ url: "/jxgl.oa_examine_temp_item/add", params });
|
return request.post({ url: "/jxgl.oa_examine_temp/add", params });
|
||||||
}
|
}
|
||||||
|
|
||||||
// 编辑考核模板-考核项
|
// 编辑考核模板-考核项
|
||||||
export function apiOaExamineTempItemEdit(params: any) {
|
export function apiOaExamineTempEdit(params: any) {
|
||||||
return request.post({ url: "/jxgl.oa_examine_temp_item/edit", params });
|
return request.post({ url: "/jxgl.oa_examine_temp/edit", params });
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除考核模板-考核项
|
// 删除考核模板-考核项
|
||||||
export function apiOaExamineTempItemDelete(params: any) {
|
export function apiOaExamineTempDelete(params: any) {
|
||||||
return request.post({ url: "/jxgl.oa_examine_temp_item/delete", params });
|
return request.post({ url: "/jxgl.oa_examine_temp/delete", params });
|
||||||
|
}
|
||||||
|
|
||||||
|
// 考核模板-考核项详情
|
||||||
|
export function apiOaExamineTempDetail(params: any) {
|
||||||
|
return request.get({ url: "/jxgl.oa_examine_temp/detail", params });
|
||||||
}
|
}
|
||||||
|
|
||||||
// 考核模板-考核项详情
|
// 考核模板-考核项详情
|
||||||
export function apiOaExamineTempItemDetail(params: any) {
|
export function apiOaExamineTempItemDetail(params: any) {
|
||||||
return request.get({ url: "/jxgl.oa_examine_temp_item/detail", params });
|
return request.post({
|
||||||
|
url: "/jxgl.oa_examine_temp/delete_item",
|
||||||
|
params,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit"
|
||||||
|
@close="handleClose">
|
||||||
<el-card>
|
<el-card>
|
||||||
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="考核类别" prop="examine_type">
|
<el-form-item label="考核类别" prop="examine_type">
|
||||||
<el-select class="flex-1" v-model="formData.examine_type" clearable placeholder="请选择考核类别">
|
<el-select class="flex-1" v-model="formData.examine_type" clearable
|
||||||
|
placeholder="请选择考核类别">
|
||||||
<el-option v-for="(item, index) in dictData.jxgl_check_type" :key="index"
|
<el-option v-for="(item, index) in dictData.jxgl_check_type" :key="index"
|
||||||
:label="item.name" :value="parseInt(item.value)" />
|
:label="item.name" :value="parseInt(item.value)" />
|
||||||
</el-select>
|
</el-select>
|
||||||
@ -28,25 +30,25 @@
|
|||||||
<template #empty>
|
<template #empty>
|
||||||
暂无数据,点击 <el-button @click="handleAdd" size="small">添加</el-button>
|
暂无数据,点击 <el-button @click="handleAdd" size="small">添加</el-button>
|
||||||
</template>
|
</template>
|
||||||
<el-table-column label="考核项" prop="progress" show-overflow-tooltip>
|
<el-table-column label="考核项" prop="examine_item" show-overflow-tooltip>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-input v-model="row.examine_item" placeholder="请输入考核项" />
|
<el-input v-model="row.examine_item" placeholder="请输入考核项" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="分数" prop="progress" show-overflow-tooltip>
|
<el-table-column label="分数" prop="score" show-overflow-tooltip>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-input v-model="row.score" placeholder="请输入分数" />
|
<el-input v-model="row.score" placeholder="请输入分数" @change="updateScore" type="number" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="考核说明" prop="progress" show-overflow-tooltip>
|
<el-table-column label="考核说明" prop="examine_desc" show-overflow-tooltip>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-input v-model="row.examine_desc" placeholder="请输入考核说明" />
|
<el-input v-model="row.examine_desc" placeholder="请输入考核说明" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" prop="progress" show-overflow-tooltip>
|
<el-table-column label="操作" prop="progress" show-overflow-tooltip>
|
||||||
<template #default="{ row }">
|
<template #default="{ row, $index }">
|
||||||
<el-button @click="handleAdd" size="small">+</el-button>
|
<el-button @click="handleAdd" size="small">+</el-button>
|
||||||
<el-button @click="handleAdd" size="small">-</el-button>
|
<el-button @click="handleDel(row, $index)" size="small">-</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -55,7 +57,7 @@
|
|||||||
<el-card>
|
<el-card>
|
||||||
<el-descriptions :column="3" border>
|
<el-descriptions :column="3" border>
|
||||||
<el-descriptions-item label="考核总分" label-align="left" align="left">
|
<el-descriptions-item label="考核总分" label-align="left" align="left">
|
||||||
{ formData.org_name }
|
{{ formData.total_score }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -66,9 +68,10 @@
|
|||||||
<script lang="ts" setup name="manageProjectEdit">
|
<script lang="ts" setup name="manageProjectEdit">
|
||||||
import type { FormInstance } from 'element-plus'
|
import type { FormInstance } from 'element-plus'
|
||||||
import Popup from '@/components/popup/index.vue'
|
import Popup from '@/components/popup/index.vue'
|
||||||
import { apiOaExamineTempItemAdd, apiOaExamineTempItemEdit } from '@/api/oa_examine_temp_item.ts'
|
import { apiOaExamineTempAdd, apiOaExamineTempEdit, apiOaExamineTempItemDetail } from '@/api/oa_examine_temp_item.ts'
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
|
import { number } from 'echarts'
|
||||||
|
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
@ -95,23 +98,38 @@ const formData = reactive({
|
|||||||
temp_name: '',
|
temp_name: '',
|
||||||
create_user: '',
|
create_user: '',
|
||||||
cretate_time: '',
|
cretate_time: '',
|
||||||
|
total_score: 0,
|
||||||
detail: []
|
detail: []
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const handleAdd = () => {
|
const handleAdd = () => {
|
||||||
formData.detail.push({})
|
formData.detail.push({
|
||||||
|
"examine_item": '',
|
||||||
|
"score": '',
|
||||||
|
"examine_desc": ''
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleDel = async (row, index) => {
|
||||||
|
if (row.id) {
|
||||||
|
await apiOaExamineTempItemDetail({ "id": row.id })
|
||||||
|
}
|
||||||
|
formData.detail.splice(index, 1);
|
||||||
|
updateScore();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const updateScore = () => {
|
||||||
|
formData.total_score = 0;
|
||||||
|
formData.detail.forEach((item) => {
|
||||||
|
formData.total_score += Number(item.score);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({})
|
||||||
project_name: [{
|
|
||||||
required: true,
|
|
||||||
message: '请输入项目名称',
|
|
||||||
trigger: ['blur']
|
|
||||||
}]
|
|
||||||
})
|
|
||||||
|
|
||||||
const setRules = () => {
|
const setRules = () => {
|
||||||
let lists = ['examine_type', 'temp_name', 'create_user', 'cretate_time']
|
let lists = ['examine_type', 'temp_name', 'create_user', 'cretate_time']
|
||||||
@ -143,8 +161,8 @@ const handleSubmit = async () => {
|
|||||||
await formRef.value?.validate()
|
await formRef.value?.validate()
|
||||||
const data = { ...formData, }
|
const data = { ...formData, }
|
||||||
mode.value == 'edit'
|
mode.value == 'edit'
|
||||||
? await apiOaExamineTempItemEdit(data)
|
? await apiOaExamineTempEdit(data)
|
||||||
: await apiOaExamineTempItemAdd(data)
|
: await apiOaExamineTempAdd(data)
|
||||||
popupRef.value?.close()
|
popupRef.value?.close()
|
||||||
emit('success')
|
emit('success')
|
||||||
}
|
}
|
||||||
@ -166,4 +184,3 @@ defineExpose({
|
|||||||
setFormData,
|
setFormData,
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -4,19 +4,15 @@
|
|||||||
<el-form class="mb-[-16px]" :model="queryParams" label-width="80px">
|
<el-form class="mb-[-16px]" :model="queryParams" label-width="80px">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="项目名称" prop="project_name">
|
<el-form-item label="模板名称" prop="temp_name">
|
||||||
<el-input v-model="queryParams.project_name" clearable placeholder="请输入项目名称" />
|
<el-input v-model="queryParams.temp_name" clearable placeholder="请输入模板名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="项目编号" prop="project_code">
|
<el-form-item label="考核类别" prop="examine_type">
|
||||||
<el-input v-model="queryParams.project_code" clearable placeholder="请输入项目编号" />
|
<el-select class="flex-1" v-model="queryParams.examine_type" clearable
|
||||||
</el-form-item>
|
placeholder="请选择考核类别">
|
||||||
</el-col>
|
<el-option v-for="(item, index) in dictData.jxgl_check_type" :key="index"
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="性质" prop="nature">
|
|
||||||
<el-select class="flex-1" v-model="queryParams.nature" clearable placeholder="请选择性质">
|
|
||||||
<el-option v-for="(item, index) in dictData.cost_consultation_industry_nature" :key="index"
|
|
||||||
:label="item.name" :value="parseInt(item.value)" />
|
:label="item.name" :value="parseInt(item.value)" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -42,11 +38,11 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
<el-table border :data="pager.lists" @selection-change="handleSelectionChange">
|
<el-table border :data="pager.lists" @selection-change="handleSelectionChange">
|
||||||
<el-table-column label="考核类别" prop="progress" show-overflow-tooltip />
|
<el-table-column label="考核类别" prop="examine_type_text" show-overflow-tooltip />
|
||||||
<el-table-column label="模版名称" prop="build_area_text" show-overflow-tooltip />
|
<el-table-column label="模版名称" prop="temp_name" show-overflow-tooltip />
|
||||||
<el-table-column label="考核总分" prop="project_level_text" show-overflow-tooltip />
|
<el-table-column label="考核总分" prop="total_score" show-overflow-tooltip />
|
||||||
<el-table-column label="创建人" prop="total_investment" show-overflow-tooltip width="120" />
|
<el-table-column label="创建人" prop="create_user" show-overflow-tooltip width="120" />
|
||||||
<el-table-column label="创建时间" prop="engineering_status_text" show-overflow-tooltip />
|
<el-table-column label="创建时间" prop="create_time" show-overflow-tooltip />
|
||||||
<el-table-column label="操作" width="170" fixed="right">
|
<el-table-column label="操作" width="170" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button type="primary" link @click="handleEdit(row)">
|
<el-button type="primary" link @click="handleEdit(row)">
|
||||||
@ -63,8 +59,7 @@
|
|||||||
<pagination v-model="pager" @change="getLists" />
|
<pagination v-model="pager" @change="getLists" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="success()" @close="showEdit = false"
|
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists()" @close="showEdit = false" />
|
||||||
:deptList="deptList" />
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -72,7 +67,7 @@
|
|||||||
<script lang="ts" setup name="manageProjectLists">
|
<script lang="ts" setup name="manageProjectLists">
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import { useDictData } from '@/hooks/useDictOptions'
|
import { useDictData } from '@/hooks/useDictOptions'
|
||||||
import { apiOaExamineTempItemLists, apiOaExamineTempItemAdd, apiOaExamineTempItemDetail } from '@/api/oa_examine_temp_item.ts'
|
import { apiOaExamineTempLists, apiOaExamineTempDetail, apiOaExamineTempDelete } from '@/api/oa_examine_temp_item.ts'
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import EditPopup from './edit.vue'
|
import EditPopup from './edit.vue'
|
||||||
|
|
||||||
@ -87,13 +82,8 @@ const showDetail = ref(false)
|
|||||||
|
|
||||||
// 查询条件
|
// 查询条件
|
||||||
const queryParams = reactive({
|
const queryParams = reactive({
|
||||||
project_name: '',
|
examine_type: '',
|
||||||
project_code: '',
|
temp_name: '',
|
||||||
nature: '',
|
|
||||||
industry: '',
|
|
||||||
build_area: '',
|
|
||||||
project_level: '',
|
|
||||||
engineering_status: ''
|
|
||||||
})
|
})
|
||||||
|
|
||||||
// 选中数据
|
// 选中数据
|
||||||
@ -109,7 +99,7 @@ const { dictData } = useDictData('jxgl_check_type')
|
|||||||
|
|
||||||
// 分页相关
|
// 分页相关
|
||||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||||
fetchFun: apiOaExamineTempItemLists,
|
fetchFun: apiOaExamineTempLists,
|
||||||
params: queryParams
|
params: queryParams
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -122,7 +112,7 @@ const handleAdd = async () => {
|
|||||||
|
|
||||||
// 编辑
|
// 编辑
|
||||||
const handleEdit = async (data: any) => {
|
const handleEdit = async (data: any) => {
|
||||||
let res = await apiOaExamineTempItemDetail({ id: data.id })
|
let res = await apiOaExamineTempDetail({ id: data.id })
|
||||||
showEdit.value = true
|
showEdit.value = true
|
||||||
await nextTick()
|
await nextTick()
|
||||||
editRef.value?.open('edit')
|
editRef.value?.open('edit')
|
||||||
@ -132,7 +122,7 @@ const handleEdit = async (data: any) => {
|
|||||||
// 删除
|
// 删除
|
||||||
const handleDelete = async (id: number | any[]) => {
|
const handleDelete = async (id: number | any[]) => {
|
||||||
await feedback.confirm('确定要删除?')
|
await feedback.confirm('确定要删除?')
|
||||||
await apiManageProjectDelete({ id })
|
await apiOaExamineTempDelete({ id })
|
||||||
getLists()
|
getLists()
|
||||||
}
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user