add
This commit is contained in:
parent
037fc2bf3a
commit
97a3bd2a8a
@ -1,4 +1,4 @@
|
||||
NODE_ENV = 'development'
|
||||
|
||||
VITE_APP_BASE_URL = 'https://ceshi-engineering.lihaink.cn/'
|
||||
# VITE_APP_BASE_URL = 'http://192.168.1.7:9090/'
|
||||
# VITE_APP_BASE_URL = 'http://192.168.1.11:9090/'
|
@ -64,12 +64,14 @@ import { defineEmits } from "vue"
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
project_id: Number,
|
||||
task_allocation: Number
|
||||
})
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
project_name: '',
|
||||
project_num: '',
|
||||
task_allocation: props.task_allocation || ''
|
||||
});
|
||||
const { dictData } = useDictData('consultation_type,cost_consultation_industry_nature')
|
||||
|
||||
|
@ -0,0 +1,74 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
|
||||
<el-form-item label="资质名称" prop="qualification_name">
|
||||
<el-input class="w-[280px]" v-model="queryParams.qualification_name" clearable placeholder="请输入资质名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质编号" prop="qualification_number">
|
||||
<el-input class="w-[280px]" v-model="queryParams.qualification_number" clearable
|
||||
placeholder="请输入资质编号" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @cell-click="handleCurrentChange">
|
||||
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
|
||||
<el-table-column label="所属单位" prop="company_id" show-overflow-tooltip />
|
||||
<el-table-column label="资质名称" prop="qualification_name" show-overflow-tooltip />
|
||||
<el-table-column label="资质编号" prop="qualification_number" show-overflow-tooltip />
|
||||
<el-table-column label="发证日期" prop="get_date" show-overflow-tooltip />
|
||||
<el-table-column label="有效日期" prop="effective_date" show-overflow-tooltip />
|
||||
<el-table-column label="资质状态" prop="qualification_status_text" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||
</el-table>
|
||||
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { usePaging } from "@/hooks/usePaging"
|
||||
// import { apiSupervisionParticipatingUnitsLists, } from '@/api/supervision_participating_units'
|
||||
import { apiSupervisionParticipatingUnitsQualificationsLists } from '@/api/supervision_participating_units_qualifications'
|
||||
|
||||
|
||||
|
||||
|
||||
import { defineEmits } from "vue"
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
qualification_name: '',
|
||||
qualification_number: "",
|
||||
project_id: props.project_id || ''
|
||||
|
||||
});
|
||||
|
||||
// 选中数据
|
||||
const emits = defineEmits(["customEvent"]);
|
||||
|
||||
// 选中数据子父传递
|
||||
const handleCurrentChange = (value: any) => {
|
||||
emits("customEvent", value);
|
||||
};
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiSupervisionParticipatingUnitsQualificationsLists,
|
||||
params: queryParams,
|
||||
});
|
||||
|
||||
getLists();
|
||||
</script>
|
@ -1,57 +1,55 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup
|
||||
ref="popupRef"
|
||||
:title="popupTitle"
|
||||
:async="true"
|
||||
width="550px"
|
||||
@confirm="handleSubmit"
|
||||
@close="handleClose"
|
||||
>
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="" prop="dataid">
|
||||
<el-input v-model="formData.dataid" clearable placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input v-model="formData.num" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input v-model="formData.project" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input v-model="formData.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务名称" prop="task">
|
||||
<el-input v-model="formData.task" clearable placeholder="请输入任务名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工序" prop="processes">
|
||||
<el-input v-model="formData.processes" clearable placeholder="请输入工序" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资料份数" prop="number">
|
||||
<el-input v-model="formData.number" clearable placeholder="请输入资料份数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="登记日期" prop="apptime">
|
||||
<el-input v-model="formData.apptime" clearable placeholder="请输入登记日期" />
|
||||
</el-form-item>
|
||||
<el-form-item label="登记人" prop="person">
|
||||
<el-input v-model="formData.person" clearable placeholder="请输入登记人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="tips">
|
||||
<el-input v-model="formData.tips" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="多行文本框1" prop="fd_1">
|
||||
<el-input class="flex-1" v-model="formData.fd_1" type="textarea" rows="4" clearable placeholder="请输入多行文本框1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="多行文本框2" prop="fd_2">
|
||||
<el-input class="flex-1" v-model="formData.fd_2" type="textarea" rows="4" clearable placeholder="请输入多行文本框2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="多行文本框3" prop="fd_3">
|
||||
<el-input class="flex-1" v-model="formData.fd_3" type="textarea" rows="4" clearable placeholder="请输入多行文本框3" />
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input v-model="formData.num" clearable placeholder="系统自动填写" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||
@click="showDialog = true" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input v-model="formData.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务名称" prop="task">
|
||||
<el-input v-model="formData.task" clearable placeholder="请输入任务名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工序" prop="processes">
|
||||
<el-input v-model="formData.processes" clearable placeholder="请输入工序" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资料份数" prop="number">
|
||||
<el-input v-model="formData.number" clearable placeholder="请输入资料份数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="登记日期" prop="apptime">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.apptime" clearable type="date"
|
||||
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="登记人" prop="person">
|
||||
<el-input v-model="formData.person" clearable placeholder="请输入登记人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="tips">
|
||||
<el-input v-model="formData.tips" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="多行文本框1" prop="fd_1">
|
||||
<el-input class="flex-1" v-model="formData.fd_1" type="textarea" rows="4" clearable
|
||||
placeholder="请输入多行文本框1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="多行文本框2" prop="fd_2">
|
||||
<el-input class="flex-1" v-model="formData.fd_2" type="textarea" rows="4" clearable
|
||||
placeholder="请输入多行文本框2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="多行文本框3" prop="fd_3">
|
||||
<el-input class="flex-1" v-model="formData.fd_3" type="textarea" rows="4" clearable
|
||||
placeholder="请输入多行文本框3" />
|
||||
</el-form-item>
|
||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||
<cost_project @customEvent="customEvent" :task_allocation="1"></cost_project>
|
||||
</el-dialog>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="approvalIssuanceAchievementDocumentsEdit">
|
||||
@ -61,41 +59,49 @@ import { apiApprovalIssuanceAchievementDocumentsAdd, apiApprovalIssuanceAchievem
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
const showDialog = ref(false)
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑成果文件审定、签发' : '新增成果文件审定、签发'
|
||||
return mode.value == 'edit' ? '编辑成果文件审定、签发' : '新增成果文件审定、签发'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
dataid: '',
|
||||
num: '',
|
||||
project: '',
|
||||
project_num: '',
|
||||
task: '',
|
||||
processes: '',
|
||||
number: '',
|
||||
apptime: '',
|
||||
person: '',
|
||||
tips: '',
|
||||
fd_1: '',
|
||||
fd_2: '',
|
||||
fd_3: '',
|
||||
id: '',
|
||||
dataid: '',
|
||||
num: '',
|
||||
project_id: '',
|
||||
project_name: "",
|
||||
project_num: '',
|
||||
task: '',
|
||||
processes: '',
|
||||
number: '',
|
||||
apptime: '',
|
||||
person: '',
|
||||
tips: '',
|
||||
fd_1: '',
|
||||
fd_2: '',
|
||||
fd_3: '',
|
||||
projectInfo: {}
|
||||
|
||||
})
|
||||
|
||||
const customEvent = (e) => {
|
||||
formData.project_id = e.id
|
||||
formData.project_name = e.project_name
|
||||
formData.project_num = e.project_num
|
||||
showDialog.value = false
|
||||
}
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
@ -105,51 +111,54 @@ const formRules = reactive<any>({
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
}
|
||||
formData.project_name = formData.projectInfo?.project_name
|
||||
formData.project_num = formData.projectInfo?.project_num
|
||||
formData.project = formData.projectInfo?.id
|
||||
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiApprovalIssuanceAchievementDocumentsDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
const data = await apiApprovalIssuanceAchievementDocumentsDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiApprovalIssuanceAchievementDocumentsEdit(data)
|
||||
: await apiApprovalIssuanceAchievementDocumentsAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiApprovalIssuanceAchievementDocumentsEdit(data)
|
||||
: await apiApprovalIssuanceAchievementDocumentsAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
}
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
emit('close')
|
||||
}
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
})
|
||||
</script>
|
||||
|
@ -1,83 +1,68 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form
|
||||
class="mb-[-16px]"
|
||||
:model="queryParams"
|
||||
inline
|
||||
>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['approval_issuance_achievement_documents/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['approval_issuance_achievement_documents/delete']"
|
||||
:disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="" prop="dataid" show-overflow-tooltip />
|
||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="project" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="project_num" show-overflow-tooltip />
|
||||
<el-table-column label="任务名称" prop="task" show-overflow-tooltip />
|
||||
<el-table-column label="工序" prop="processes" show-overflow-tooltip />
|
||||
<el-table-column label="资料份数" prop="number" show-overflow-tooltip />
|
||||
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="登记人" prop="person" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="tips" show-overflow-tooltip />
|
||||
<el-table-column label="多行文本框1" prop="fd_1" show-overflow-tooltip />
|
||||
<el-table-column label="多行文本框2" prop="fd_2" show-overflow-tooltip />
|
||||
<el-table-column label="多行文本框3" prop="fd_3" show-overflow-tooltip />
|
||||
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
v-perms="['approval_issuance_achievement_documents/edit']"
|
||||
type="primary"
|
||||
link
|
||||
@click="handleEdit(row)"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['approval_issuance_achievement_documents/delete']"
|
||||
type="danger"
|
||||
link
|
||||
@click="handleDelete(row.id)"
|
||||
>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['approval_issuance_achievement_documents/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['approval_issuance_achievement_documents/delete']" :disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<!-- <el-table-column label="" prop="dataid" show-overflow-tooltip /> -->
|
||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||
<el-table-column label="任务名称" prop="task" show-overflow-tooltip />
|
||||
<el-table-column label="工序" prop="processes" show-overflow-tooltip />
|
||||
<el-table-column label="资料份数" prop="number" show-overflow-tooltip />
|
||||
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="登记人" prop="person" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="tips" show-overflow-tooltip />
|
||||
<el-table-column label="多行文本框1" prop="fd_1" show-overflow-tooltip />
|
||||
<el-table-column label="多行文本框2" prop="fd_2" show-overflow-tooltip />
|
||||
<el-table-column label="多行文本框3" prop="fd_3" show-overflow-tooltip />
|
||||
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['approval_issuance_achievement_documents/edit']" type="primary" link
|
||||
@click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['approval_issuance_achievement_documents/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="approvalIssuanceAchievementDocumentsLists">
|
||||
@ -95,8 +80,8 @@ const showEdit = ref(false)
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
project: '',
|
||||
project_num: '',
|
||||
project: '',
|
||||
project_num: '',
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
@ -104,7 +89,7 @@ const selectData = ref<any[]>([])
|
||||
|
||||
// 表格选择后回调事件
|
||||
const handleSelectionChange = (val: any[]) => {
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
}
|
||||
|
||||
// 获取字典数据
|
||||
@ -112,30 +97,30 @@ const { dictData } = useDictData('')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiApprovalIssuanceAchievementDocumentsLists,
|
||||
params: queryParams
|
||||
fetchFun: apiApprovalIssuanceAchievementDocumentsLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
}
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiApprovalIssuanceAchievementDocumentsDelete({ id })
|
||||
getLists()
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiApprovalIssuanceAchievementDocumentsDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
|
@ -53,8 +53,8 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="所在省份" prop="province" show-overflow-tooltip />
|
||||
<el-table-column label="所在市区" prop="city" show-overflow-tooltip />
|
||||
<el-table-column label="具体地址" prop="address" show-overflow-tooltip />
|
||||
<!-- <el-table-column label="所在市区" prop="city" show-overflow-tooltip />
|
||||
<el-table-column label="具体地址" prop="address" show-overflow-tooltip /> -->
|
||||
<el-table-column label="计划开始日期" prop="starting" show-overflow-tooltip />
|
||||
<el-table-column label="计划结束日期" prop="endtime" show-overflow-tooltip />
|
||||
<el-table-column label="计划工期(天)" prop="jhgq" show-overflow-tooltip />
|
||||
|
@ -1,113 +1,228 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup
|
||||
ref="popupRef"
|
||||
:title="popupTitle"
|
||||
:async="true"
|
||||
width="550px"
|
||||
@confirm="handleSubmit"
|
||||
@close="handleClose"
|
||||
>
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="" prop="dataid">
|
||||
<el-input v-model="formData.dataid" clearable placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input v-model="formData.num" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input v-model="formData.project" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input v-model="formData.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="登记日期" prop="apptime">
|
||||
<el-input v-model="formData.apptime" clearable placeholder="请输入登记日期" />
|
||||
</el-form-item>
|
||||
<el-form-item label="登记人" prop="person">
|
||||
<el-input v-model="formData.person" clearable placeholder="请输入登记人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资料份数" prop="number">
|
||||
<el-input v-model="formData.number" clearable placeholder="请输入资料份数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="存放位置" prop="position">
|
||||
<el-input v-model="formData.position" clearable placeholder="请输入存放位置" />
|
||||
</el-form-item>
|
||||
<el-form-item label="说明" prop="tips">
|
||||
<el-input v-model="formData.tips" clearable placeholder="请输入说明" />
|
||||
</el-form-item>
|
||||
<el-form-item label="投标文件" prop="bidding_file">
|
||||
<material-picker v-model="formData.bidding_file" />
|
||||
</el-form-item>
|
||||
<el-form-item label="招标控制价文件" prop="zbkzj_file">
|
||||
<material-picker v-model="formData.zbkzj_file" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工程造价合同" prop="gczjht_file">
|
||||
<material-picker v-model="formData.gczjht_file" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目变更、签证资料" prop="xmbgqzzl_file">
|
||||
<material-picker v-model="formData.xmbgqzzl_file" />
|
||||
</el-form-item>
|
||||
<el-form-item label="送审概算、预算、结算资料" prop="ssgsysjs_file">
|
||||
<material-picker v-model="formData.ssgsysjs_file" />
|
||||
</el-form-item>
|
||||
<el-form-item label="往来函件" prop="wlhj_file">
|
||||
<material-picker v-model="formData.wlhj_file" />
|
||||
</el-form-item>
|
||||
<el-form-item label="其他资料" prop="other_file">
|
||||
<material-picker v-model="formData.other_file" />
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="60vw" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input v-model="formData.num" clearable placeholder="系统自动填写" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||
@click="showDialog = true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input v-model="formData.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="登记日期" prop="apptime">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.apptime" clearable type="date"
|
||||
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="登记人" prop="person">
|
||||
<el-input v-model="formData.person" clearable placeholder="请输入登记人" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资料份数" prop="number">
|
||||
<el-input v-model="formData.number" clearable placeholder="请输入资料份数" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="存放位置" prop="position">
|
||||
<el-input v-model="formData.position" clearable placeholder="请输入存放位置" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="说明" prop="tips">
|
||||
<el-input v-model="formData.tips" clearable placeholder="请输入说明" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="投标文件" prop="bidding_file">
|
||||
<annexUpload :annex="formData.bidding_file" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||
@delFile="delFileFn" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="招标控制价文件" prop="zbkzj_file" label-width="140px">
|
||||
<annexUpload :annex="formData.zbkzj_file" @handleAvatarSuccess="handleAvatarSuccess_four1"
|
||||
@delFile="delFileFn1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="工程造价合同" prop="gczjht_file" label-width="120px">
|
||||
<annexUpload :annex="formData.gczjht_file" @handleAvatarSuccess="handleAvatarSuccess_four2"
|
||||
@delFile="delFileFn2" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目变更、签证资料" prop="xmbgqzzl_file" label-width="170px">
|
||||
<annexUpload :annex="formData.xmbgqzzl_file" @handleAvatarSuccess="handleAvatarSuccess_four3"
|
||||
@delFile="delFileFn3" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="送审概算、预算、结算资料" prop="ssgsysjs_file" label-width="200px">
|
||||
<!-- <material-picker v-model="formData.ssgsysjs_file" /> -->
|
||||
<annexUpload :annex="formData.ssgsysjs_file" @handleAvatarSuccess="handleAvatarSuccess_four4"
|
||||
@delFile="delFileFn4" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="往来函件" prop="wlhj_file">
|
||||
<annexUpload :annex="formData.wlhj_file" @handleAvatarSuccess="handleAvatarSuccess_four5"
|
||||
@delFile="delFileFn5" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="其他资料" prop="other_file">
|
||||
<!-- <material-picker v-model="formData.other_file" /> -->
|
||||
<annexUpload :annex="formData.other_file" @handleAvatarSuccess="handleAvatarSuccess_four6"
|
||||
@delFile="delFileFn6" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||
<cost_project @customEvent="customEvent" :task_allocation="1"></cost_project>
|
||||
</el-dialog>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="dataReceptionEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiDataReceptionAdd, apiDataReceptionEdit, apiDataReceptionDetail } from '@/api/data_reception'
|
||||
import { apiDataReceptionAdd, apiDataReceptionEdit, } from '@/api/data_reception'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
const showDialog = ref(false)
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑资料接收' : '新增资料接收'
|
||||
return mode.value == 'edit' ? '编辑资料接收' : '新增资料接收'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
dataid: '',
|
||||
num: '',
|
||||
project: '',
|
||||
project_num: '',
|
||||
apptime: '',
|
||||
person: '',
|
||||
number: '',
|
||||
position: '',
|
||||
tips: '',
|
||||
bidding_file: '',
|
||||
zbkzj_file: '',
|
||||
gczjht_file: '',
|
||||
xmbgqzzl_file: '',
|
||||
ssgsysjs_file: '',
|
||||
wlhj_file: '',
|
||||
other_file: '',
|
||||
id: '',
|
||||
dataid: '',
|
||||
num: '',
|
||||
project_id: '',
|
||||
project_name: "",
|
||||
project_num: "",
|
||||
apptime: '',
|
||||
person: '',
|
||||
number: '',
|
||||
position: '',
|
||||
tips: '',
|
||||
bidding_file: [],
|
||||
zbkzj_file: [],
|
||||
gczjht_file: [],
|
||||
xmbgqzzl_file: [],
|
||||
ssgsysjs_file: [],
|
||||
wlhj_file: [],
|
||||
other_file: [],
|
||||
projectInfo: {}
|
||||
|
||||
})
|
||||
|
||||
const customEvent = (e) => {
|
||||
formData.project_id = e.id
|
||||
formData.project_name = e.project_name
|
||||
formData.project_num = e.project_num
|
||||
showDialog.value = false
|
||||
}
|
||||
|
||||
const handleAvatarSuccess_four = (response: any) => {
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.bidding_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
const delFileFn = (index: number) => { formData.bidding_file.splice(index, 1) }
|
||||
|
||||
|
||||
const handleAvatarSuccess_four1 = (response: any) => {
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.zbkzj_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
const delFileFn1 = (index: number) => { formData.zbkzj_file.splice(index, 1) }
|
||||
|
||||
const handleAvatarSuccess_four2 = (response: any) => {
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.gczjht_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
const delFileFn2 = (index: number) => { formData.gczjht_file.splice(index, 1) }
|
||||
|
||||
const handleAvatarSuccess_four3 = (response: any) => {
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.xmbgqzzl_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
const delFileFn3 = (index: number) => { formData.xmbgqzzl_file.splice(index, 1) }
|
||||
|
||||
const handleAvatarSuccess_four4 = (response: any) => {
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.ssgsysjs_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
const delFileFn4 = (index: number) => { formData.ssgsysjs_file.splice(index, 1) }
|
||||
|
||||
|
||||
const handleAvatarSuccess_four5 = (response: any) => {
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.wlhj_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
const delFileFn5 = (index: number) => { formData.wlhj_file.splice(index, 1) }
|
||||
|
||||
const handleAvatarSuccess_four6 = (response: any) => {
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.other_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
const delFileFn6 = (index: number) => { formData.other_file.splice(index, 1) }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
@ -117,51 +232,53 @@ const formRules = reactive<any>({
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
formData.project_name = formData.projectInfo?.project_name
|
||||
formData.project_id = formData.projectInfo?.id
|
||||
formData.project_num = formData.projectInfo?.project_num
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiDataReceptionDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
const data = await apiDataReceptionDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiDataReceptionEdit(data)
|
||||
: await apiDataReceptionAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiDataReceptionEdit(data)
|
||||
: await apiDataReceptionAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
}
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
emit('close')
|
||||
}
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
})
|
||||
</script>
|
||||
|
@ -1,11 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form
|
||||
class="mb-[-16px]"
|
||||
:model="queryParams"
|
||||
inline
|
||||
>
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
@ -29,20 +25,15 @@
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['data_reception/delete']"
|
||||
:disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)"
|
||||
>
|
||||
<el-button v-perms="['data_reception/delete']" :disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="" prop="dataid" show-overflow-tooltip />
|
||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="project" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="project_num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="登记人" prop="person" show-overflow-tooltip />
|
||||
<el-table-column label="资料份数" prop="number" show-overflow-tooltip />
|
||||
@ -51,27 +42,17 @@
|
||||
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
v-perms="['data_reception/edit']"
|
||||
type="primary"
|
||||
link
|
||||
@click="handleEdit(row)"
|
||||
>
|
||||
<el-button v-perms="['data_reception/edit']" type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['data_reception/delete']"
|
||||
type="danger"
|
||||
link
|
||||
@click="handleDelete(row.id)"
|
||||
>
|
||||
<el-button v-perms="['data_reception/delete']" type="danger" link @click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
@ -82,7 +63,7 @@
|
||||
<script lang="ts" setup name="dataReceptionLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiDataReceptionLists, apiDataReceptionDelete } from '@/api/data_reception'
|
||||
import { apiDataReceptionLists, apiDataReceptionDelete, apiDataReceptionDetail } from '@/api/data_reception'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
@ -125,10 +106,11 @@ const handleAdd = async () => {
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
let res = await apiDataReceptionDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
editRef.value?.setFormData(res)
|
||||
}
|
||||
|
||||
// 删除
|
||||
|
@ -35,6 +35,8 @@
|
||||
|
||||
<el-table-column label="岗位名称" prop="name" min-width="100" />
|
||||
<el-table-column label="排序" prop="sort" min-width="100" />
|
||||
<el-table-column label="组织" prop="org_name" min-width="100" />
|
||||
<el-table-column label="所属部门" prop="dept_name" min-width="100" />
|
||||
<el-table-column label="备注" prop="remark" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column label="添加时间" prop="create_time" min-width="180" />
|
||||
<el-table-column label="状态" prop="status" min-width="100">
|
||||
|
@ -1,63 +1,99 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup
|
||||
ref="popupRef"
|
||||
:title="popupTitle"
|
||||
:async="true"
|
||||
width="550px"
|
||||
@confirm="handleSubmit"
|
||||
@close="handleClose"
|
||||
>
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="" prop="dataid">
|
||||
<el-input v-model="formData.dataid" clearable placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input v-model="formData.num" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input v-model="formData.project" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input v-model="formData.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目负责人" prop="head">
|
||||
<el-input v-model="formData.head" clearable placeholder="请输入项目负责人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="关联合同" prop="affcontract">
|
||||
<el-input v-model="formData.affcontract" clearable placeholder="请输入关联合同" />
|
||||
</el-form-item>
|
||||
<el-form-item label="行业" prop="industry">
|
||||
<el-input v-model="formData.industry" clearable placeholder="请输入行业" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目回款总额" prop="hk">
|
||||
<el-input v-model="formData.hk" clearable placeholder="请输入项目回款总额" />
|
||||
</el-form-item>
|
||||
<el-form-item label="提成比例(%)" prop="rate">
|
||||
<el-input v-model="formData.rate" clearable placeholder="请输入提成比例(%)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="应提成总金额" prop="ticheng">
|
||||
<el-input v-model="formData.ticheng" clearable placeholder="请输入应提成总金额" />
|
||||
</el-form-item>
|
||||
<el-form-item label="已支付总额" prop="paid_amount">
|
||||
<el-input v-model="formData.paid_amount" clearable placeholder="请输入已支付总额" />
|
||||
</el-form-item>
|
||||
<el-form-item label="本次支付总额" prop="bczfze">
|
||||
<el-input v-model="formData.bczfze" clearable placeholder="请输入本次支付总额" />
|
||||
</el-form-item>
|
||||
<el-form-item label="登记人" prop="djr">
|
||||
<el-input v-model="formData.djr" clearable placeholder="请输入登记人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="登记日期" prop="apptime">
|
||||
<el-input v-model="formData.apptime" clearable placeholder="请输入登记日期" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input v-model="formData.num" clearable placeholder="系统自动生成" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||
@click="showDialog = true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input v-model="formData.project_num" clearable placeholder="请输入项目编号" readonly />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目负责人" prop="head">
|
||||
<el-input v-model="formData.head" clearable placeholder="请输入项目负责人" readonly />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="关联合同" prop="affcontract">
|
||||
<el-input v-model="formData.affcontract" clearable placeholder="请输入关联合同" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="行业" prop="industry">
|
||||
<el-select class="flex-1" v-model="formData.industry" clearable placeholder="请选择行业类型">
|
||||
<el-option v-for="(item, index) in dictData.supervision_project_industry" :key="index"
|
||||
:label="item.name" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目回款总额" prop="hk" label-width="120px">
|
||||
<el-input v-model="formData.hk" clearable placeholder="请输入项目回款总额" type="number" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="提成比例(%)" prop="rate" label-width="120px">
|
||||
<el-input v-model="formData.rate" clearable placeholder="请输入提成比例(%)" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="应提成总金额" prop="ticheng" label-width="120px">
|
||||
<el-input v-model="formData.ticheng" clearable placeholder="请输入应提成总金额" type="number" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="已支付总额" prop="paid_amount">
|
||||
<el-input v-model="formData.paid_amount" clearable placeholder="请输入已支付总额" type="number" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="本次支付总额" prop="bczfze" label-width="120px">
|
||||
<el-input v-model="formData.bczfze" clearable placeholder="请输入本次支付总额" type="number" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="登记人" prop="djr">
|
||||
<el-input v-model="formData.djr" clearable placeholder="请输入登记人" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="登记日期" prop="apptime">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.apptime" clearable type="date"
|
||||
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||
<cost_project @customEvent="customEvent"></cost_project>
|
||||
</el-dialog>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="projectCommissionEdit">
|
||||
@ -67,42 +103,54 @@ import { apiProjectCommissionAdd, apiProjectCommissionEdit, apiProjectCommission
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
const showDialog = ref(false)
|
||||
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑项目提成' : '新增项目提成'
|
||||
return mode.value == 'edit' ? '编辑项目提成' : '新增项目提成'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
dataid: '',
|
||||
num: '',
|
||||
project: '',
|
||||
project_num: '',
|
||||
head: '',
|
||||
affcontract: '',
|
||||
industry: '',
|
||||
hk: '',
|
||||
rate: '',
|
||||
ticheng: '',
|
||||
paid_amount: '',
|
||||
bczfze: '',
|
||||
djr: '',
|
||||
apptime: '',
|
||||
remark: '',
|
||||
id: '',
|
||||
dataid: '',
|
||||
num: '',
|
||||
project_id: '',
|
||||
project_name: '',
|
||||
project_num: '',
|
||||
head: '',
|
||||
affcontract: '',
|
||||
industry: '',
|
||||
hk: '',
|
||||
rate: '',
|
||||
ticheng: '',
|
||||
paid_amount: '',
|
||||
bczfze: '',
|
||||
djr: '',
|
||||
apptime: '',
|
||||
remark: '',
|
||||
project_commission_detail: {}
|
||||
|
||||
})
|
||||
const customEvent = (e) => {
|
||||
console.log(e)
|
||||
formData.project_id = e.id
|
||||
formData.project_name = e.project_name
|
||||
formData.project_num = e.project_num
|
||||
formData.head = e.principal
|
||||
showDialog.value = false
|
||||
}
|
||||
|
||||
|
||||
// 表单验证
|
||||
@ -113,51 +161,51 @@ const formRules = reactive<any>({
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiProjectCommissionDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
const data = await apiProjectCommissionDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiProjectCommissionEdit(data)
|
||||
: await apiProjectCommissionAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiProjectCommissionEdit(data)
|
||||
: await apiProjectCommissionAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
}
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
emit('close')
|
||||
}
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
})
|
||||
</script>
|
||||
|
@ -1,11 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form
|
||||
class="mb-[-16px]"
|
||||
:model="queryParams"
|
||||
inline
|
||||
>
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
@ -29,17 +25,13 @@
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['project_commission/delete']"
|
||||
:disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)"
|
||||
>
|
||||
<el-button v-perms="['project_commission/delete']" :disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="" prop="dataid" show-overflow-tooltip />
|
||||
<!-- <el-table-column label="" prop="dataid" show-overflow-tooltip /> -->
|
||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="project" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="project_num" show-overflow-tooltip />
|
||||
@ -57,27 +49,17 @@
|
||||
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
v-perms="['project_commission/edit']"
|
||||
type="primary"
|
||||
link
|
||||
@click="handleEdit(row)"
|
||||
>
|
||||
<el-button v-perms="['project_commission/edit']" type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['project_commission/delete']"
|
||||
type="danger"
|
||||
link
|
||||
@click="handleDelete(row.id)"
|
||||
>
|
||||
<el-button v-perms="['project_commission/delete']" type="danger" link @click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
@ -114,7 +96,7 @@ const handleSelectionChange = (val: any[]) => {
|
||||
}
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('')
|
||||
const { dictData } = useDictData('supervision_project_industry')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
|
@ -1,77 +1,150 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup
|
||||
ref="popupRef"
|
||||
:title="popupTitle"
|
||||
:async="true"
|
||||
width="550px"
|
||||
@confirm="handleSubmit"
|
||||
@close="handleClose"
|
||||
>
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="60vw" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input v-model="formData.project_id" clearable placeholder="请输入项目id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input v-model="formData.name" clearable placeholder="请输入姓名" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属单位" prop="company_id">
|
||||
<el-input v-model="formData.company_id" clearable placeholder="请输入所属单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证" prop="id_card">
|
||||
<el-input v-model="formData.id_card" clearable placeholder="请输入身份证" />
|
||||
</el-form-item>
|
||||
<el-form-item label="技术职称" prop="technical_title">
|
||||
<el-input v-model="formData.technical_title" clearable placeholder="请输入技术职称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="岗位" prop="job">
|
||||
<el-input v-model="formData.job" clearable placeholder="请输入岗位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质名称1" prop="qualification_name_one">
|
||||
<el-input v-model="formData.qualification_name_one" clearable placeholder="请输入资质名称1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="认证机构1" prop="certification_body_one">
|
||||
<el-input v-model="formData.certification_body_one" clearable placeholder="请输入认证机构1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质编号1" prop="qualification_number_one">
|
||||
<el-input v-model="formData.qualification_number_one" clearable placeholder="请输入资质编号1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发证日期1" prop="get_date_one">
|
||||
<el-input v-model="formData.get_date_one" clearable placeholder="请输入发证日期1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="有效日期1" prop="effective_date_one">
|
||||
<el-input v-model="formData.effective_date_one" clearable placeholder="请输入有效日期1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质1状态 0-有效 1-无效" prop="qualification_one_status">
|
||||
<el-input v-model="formData.qualification_one_status" clearable placeholder="请输入资质1状态 0-有效 1-无效" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质名称2" prop="qualification_name_two">
|
||||
<el-input v-model="formData.qualification_name_two" clearable placeholder="请输入资质名称2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="认证机构2" prop="certification_body_two">
|
||||
<el-input v-model="formData.certification_body_two" clearable placeholder="请输入认证机构2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质编号2" prop="qualification_number_two">
|
||||
<el-input v-model="formData.qualification_number_two" clearable placeholder="请输入资质编号2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发证日期2" prop="get_date_two">
|
||||
<el-input v-model="formData.get_date_two" clearable placeholder="请输入发证日期2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="有效日期2" prop="effective_date_two">
|
||||
<el-input v-model="formData.effective_date_two" clearable placeholder="请输入有效日期2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质2状态 0-有效 1-无效" prop="qualification_two_status">
|
||||
<el-input v-model="formData.qualification_two_status" clearable placeholder="请输入资质2状态 0-有效 1-无效" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="annex">
|
||||
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="create_user">
|
||||
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />
|
||||
</el-form-item>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="所属单位" prop="unit_qualification_id">
|
||||
<el-input v-model="formData.company_name" clearable placeholder="请输入所属单位"
|
||||
@click="showDialog1 = true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input v-model="formData.name" clearable placeholder="请输入姓名" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="身份证" prop="id_card">
|
||||
<el-input v-model="formData.id_card" clearable placeholder="请输入身份证" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="创建人" prop="create_user">
|
||||
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="技术职称" prop="technical_title">
|
||||
<el-input v-model="formData.technical_title" clearable placeholder="请输入技术职称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="岗位" prop="job">
|
||||
<el-input v-model="formData.job" clearable placeholder="请输入岗位" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质名称1" prop="qualification_name_one">
|
||||
<el-input v-model="formData.qualification_name_one" clearable placeholder="请输入资质名称1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="认证机构1" prop="certification_body_one">
|
||||
<el-input v-model="formData.certification_body_one" clearable placeholder="请输入认证机构1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质编号1" prop="qualification_number_one">
|
||||
<el-input v-model="formData.qualification_number_one" clearable placeholder="请输入资质编号1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="发证日期1" prop="get_date_one">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.get_date_one" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="有效日期1" prop="effective_date_one">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.effective_date_one" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质1状态" prop="qualification_one_status">
|
||||
<el-select class="flex-1" v-model="formData.qualification_one_status" clearable
|
||||
placeholder="请选择">
|
||||
<el-option label="有效" :value="0" />
|
||||
<el-option label="无效" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质名称2" prop="qualification_name_two">
|
||||
<el-input v-model="formData.qualification_name_two" clearable placeholder="请输入资质名称2" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="认证机构2" prop="certification_body_two">
|
||||
<el-input v-model="formData.certification_body_two" clearable placeholder="请输入认证机构2" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质编号2" prop="qualification_number_two">
|
||||
<el-input v-model="formData.qualification_number_two" clearable placeholder="请输入资质编号2" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="发证日期2" prop="get_date_two">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.get_date_two" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="有效日期2" prop="effective_date_two">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.effective_date_two" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质2状态" prop="qualification_two_status">
|
||||
<el-select class="flex-1" v-model="formData.qualification_two_status" clearable
|
||||
placeholder="请选择">
|
||||
<el-option label="有效" :value="0" />
|
||||
<el-option label="无效" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="附件" prop="annex">
|
||||
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||
@delFile="delFileFn" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||
<supervision_project @customEvent="customEvent"></supervision_project>
|
||||
</el-dialog>
|
||||
<div v-if="showDialog1">
|
||||
<el-dialog v-model="showDialog1" title="选择单位" width="70%">
|
||||
<supervision_participating_units_qualifications @customEvent="customEvent1">
|
||||
</supervision_participating_units_qualifications>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
@ -80,7 +153,7 @@
|
||||
<script lang="ts" setup name="supervisionConstructionManagementPersonnelEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiSupervisionConstructionManagementPersonnelAdd, apiSupervisionConstructionManagementPersonnelEdit, apiSupervisionConstructionManagementPersonnelDetail } from '@/api/supervision_construction_management_personnel'
|
||||
import { apiSupervisionConstructionManagementPersonnelAdd, apiSupervisionConstructionManagementPersonnelEdit, } from '@/api/supervision_construction_management_personnel'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
@ -93,8 +166,20 @@ const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
const showDialog = ref(false)
|
||||
const showDialog1 = ref(false)
|
||||
|
||||
|
||||
|
||||
const handleAvatarSuccess_four = (response: any) => {
|
||||
if (!Array.isArray(formData.annex)) formData.annex = []
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑工程监理--施工管理人员' : '新增工程监理--施工管理人员'
|
||||
@ -104,8 +189,10 @@ const popupTitle = computed(() => {
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
project_id: '',
|
||||
project_name: "",
|
||||
name: '',
|
||||
company_id: '',
|
||||
unit_qualification_id: '',
|
||||
company_name: '',
|
||||
id_card: '',
|
||||
technical_title: '',
|
||||
job: '',
|
||||
@ -125,7 +212,16 @@ const formData = reactive({
|
||||
annex: '',
|
||||
create_user: '',
|
||||
})
|
||||
|
||||
const customEvent = (e) => {
|
||||
formData.project_id = e.id
|
||||
formData.project_name = e.project_name
|
||||
showDialog.value = false
|
||||
}
|
||||
const customEvent1 = (e) => {
|
||||
formData.unit_qualification_id = e.id
|
||||
formData.company_name = e.project_name
|
||||
showDialog1.value = false
|
||||
}
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
@ -139,7 +235,7 @@ const formRules = reactive<any>({
|
||||
message: '请输入姓名',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
company_id: [{
|
||||
unit_qualification_id: [{
|
||||
required: true,
|
||||
message: '请输入所属单位',
|
||||
trigger: ['blur']
|
||||
@ -240,8 +336,8 @@ const setFormData = async (data: Record<any, any>) => {
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
@ -255,9 +351,9 @@ const getDetail = async (row: Record<string, any>) => {
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionConstructionManagementPersonnelEdit(data)
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionConstructionManagementPersonnelEdit(data)
|
||||
: await apiSupervisionConstructionManagementPersonnelAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
|
@ -1,25 +1,17 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form
|
||||
class="mb-[-16px]"
|
||||
:model="queryParams"
|
||||
inline
|
||||
>
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_id" clearable placeholder="请输入项目id" />
|
||||
</el-form-item>
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input class="w-[280px]" v-model="queryParams.name" clearable placeholder="请输入姓名" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属单位" prop="company_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.company_id" clearable placeholder="请输入所属单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质名称1" prop="qualification_name_one">
|
||||
<el-input class="w-[280px]" v-model="queryParams.qualification_name_one" clearable placeholder="请输入资质名称1" />
|
||||
<el-input class="w-[280px]" v-model="queryParams.qualification_name_one" clearable
|
||||
placeholder="请输入资质名称1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质名称2" prop="qualification_name_two">
|
||||
<el-input class="w-[280px]" v-model="queryParams.qualification_name_two" clearable placeholder="请输入资质名称2" />
|
||||
<el-input class="w-[280px]" v-model="queryParams.qualification_name_two" clearable
|
||||
placeholder="请输入资质名称2" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
@ -28,25 +20,22 @@
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['supervision_qualification_review.supervision_construction_management_personnel/add']" type="primary" @click="handleAdd">
|
||||
<el-button v-perms="['supervision_qualification_review.supervision_construction_management_personnel/add']"
|
||||
type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['supervision_qualification_review.supervision_construction_management_personnel/delete']"
|
||||
:disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)"
|
||||
>
|
||||
<el-button v-perms="['supervision_qualification_review.supervision_construction_management_personnel/delete']"
|
||||
:disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="项目id" prop="project_id" show-overflow-tooltip />
|
||||
<el-table-column label="姓名" prop="name" show-overflow-tooltip />
|
||||
<el-table-column label="所属单位" prop="company_id" show-overflow-tooltip />
|
||||
<el-table-column label="所属单位" prop="company_name" show-overflow-tooltip />
|
||||
<el-table-column label="身份证" prop="id_card" show-overflow-tooltip />
|
||||
<el-table-column label="技术职称" prop="technical_title" show-overflow-tooltip />
|
||||
<el-table-column label="岗位" prop="job" show-overflow-tooltip />
|
||||
@ -55,39 +44,32 @@
|
||||
<el-table-column label="资质编号1" prop="qualification_number_one" show-overflow-tooltip />
|
||||
<el-table-column label="发证日期1" prop="get_date_one" show-overflow-tooltip />
|
||||
<el-table-column label="有效日期1" prop="effective_date_one" show-overflow-tooltip />
|
||||
<el-table-column label="资质1状态 0-有效 1-无效" prop="qualification_one_status" show-overflow-tooltip />
|
||||
<el-table-column label="资质1状态" prop="qualification_one_status_text" show-overflow-tooltip />
|
||||
<el-table-column label="资质名称2" prop="qualification_name_two" show-overflow-tooltip />
|
||||
<el-table-column label="认证机构2" prop="certification_body_two" show-overflow-tooltip />
|
||||
<el-table-column label="资质编号2" prop="qualification_number_two" show-overflow-tooltip />
|
||||
<el-table-column label="发证日期2" prop="get_date_two" show-overflow-tooltip />
|
||||
<el-table-column label="有效日期2" prop="effective_date_two" show-overflow-tooltip />
|
||||
<el-table-column label="资质2状态 0-有效 1-无效" prop="qualification_two_status" show-overflow-tooltip />
|
||||
<el-table-column label="资质2状态 " prop="qualification_two_status_text" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="附件" prop="annex" show-overflow-tooltip />
|
||||
<el-table-column label="创建人" prop="create_user" show-overflow-tooltip />
|
||||
<el-table-column label="创建人" prop="create_user_name" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
<el-button
|
||||
v-perms="['supervision_qualification_review.supervision_construction_management_personnel/edit']"
|
||||
type="primary"
|
||||
link
|
||||
@click="handleEdit(row)"
|
||||
>
|
||||
type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['supervision_qualification_review.supervision_construction_management_personnel/delete']"
|
||||
type="danger"
|
||||
link
|
||||
@click="handleDelete(row.id)"
|
||||
>
|
||||
type="danger" link @click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
@ -98,7 +80,7 @@
|
||||
<script lang="ts" setup name="supervisionConstructionManagementPersonnelLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiSupervisionConstructionManagementPersonnelLists, apiSupervisionConstructionManagementPersonnelDelete } from '@/api/supervision_construction_management_personnel'
|
||||
import { apiSupervisionConstructionManagementPersonnelLists, apiSupervisionConstructionManagementPersonnelDelete, apiSupervisionConstructionManagementPersonnelDetail } from '@/api/supervision_construction_management_personnel'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
@ -143,10 +125,11 @@ const handleAdd = async () => {
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
let res = await apiSupervisionConstructionManagementPersonnelDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
editRef.value?.setFormData(res)
|
||||
}
|
||||
|
||||
// 删除
|
||||
|
@ -56,7 +56,7 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
|
@ -1,68 +1,132 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup
|
||||
ref="popupRef"
|
||||
:title="popupTitle"
|
||||
:async="true"
|
||||
width="550px"
|
||||
@confirm="handleSubmit"
|
||||
@close="handleClose"
|
||||
>
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="60vw" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input v-model="formData.project_id" clearable placeholder="请输入项目id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属单位" prop="company_id">
|
||||
<el-input v-model="formData.company_id" clearable placeholder="请输入所属单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="设备名称" prop="name">
|
||||
<el-input v-model="formData.name" clearable placeholder="请输入设备名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质名称1" prop="qualification_name_one">
|
||||
<el-input v-model="formData.qualification_name_one" clearable placeholder="请输入资质名称1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="认证机构1" prop="certification_body_one">
|
||||
<el-input v-model="formData.certification_body_one" clearable placeholder="请输入认证机构1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质编号1" prop="qualification_number_one">
|
||||
<el-input v-model="formData.qualification_number_one" clearable placeholder="请输入资质编号1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发证日期1" prop="get_date_one">
|
||||
<el-input v-model="formData.get_date_one" clearable placeholder="请输入发证日期1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="有效日期1" prop="effective_date_one">
|
||||
<el-input v-model="formData.effective_date_one" clearable placeholder="请输入有效日期1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质1状态 0-有效 1-无效" prop="qualification_one_status">
|
||||
<el-input v-model="formData.qualification_one_status" clearable placeholder="请输入资质1状态 0-有效 1-无效" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质名称2" prop="qualification_name_two">
|
||||
<el-input v-model="formData.qualification_name_two" clearable placeholder="请输入资质名称2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="认证机构2" prop="certification_body_two">
|
||||
<el-input v-model="formData.certification_body_two" clearable placeholder="请输入认证机构2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质编号2" prop="qualification_number_two">
|
||||
<el-input v-model="formData.qualification_number_two" clearable placeholder="请输入资质编号2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发证日期2" prop="get_date_two">
|
||||
<el-input v-model="formData.get_date_two" clearable placeholder="请输入发证日期2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="有效日期2" prop="effective_date_two">
|
||||
<el-input v-model="formData.effective_date_two" clearable placeholder="请输入有效日期2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质2状态 0-有效 1-无效" prop="qualification_two_status">
|
||||
<el-input v-model="formData.qualification_two_status" clearable placeholder="请输入资质2状态 0-有效 1-无效" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="annex">
|
||||
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="create_user">
|
||||
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />
|
||||
</el-form-item>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="所属单位" prop="unit_qualification_id">
|
||||
<el-input v-model="formData.company_name" clearable placeholder="请输入所属单位"
|
||||
@click="showDialog1 = true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="设备名称" prop="name">
|
||||
<el-input v-model="formData.name" clearable placeholder="请输入设备名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质名称1" prop="qualification_name_one">
|
||||
<el-input v-model="formData.qualification_name_one" clearable placeholder="请输入资质名称1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="认证机构1" prop="certification_body_one">
|
||||
<el-input v-model="formData.certification_body_one" clearable placeholder="请输入认证机构1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质编号1" prop="qualification_number_one">
|
||||
<el-input v-model="formData.qualification_number_one" clearable placeholder="请输入资质编号1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="发证日期1" prop="get_date_one">
|
||||
<!-- <el-input v-model="formData.get_date_one" clearable placeholder="请输入发证日期1" /> -->
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.get_date_one" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="有效日期1" prop="effective_date_one">
|
||||
<!-- <el-input v-model="formData.effective_date_one" clearable placeholder="请输入有效日期1" /> -->
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.effective_date_one" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质1状态 " prop="qualification_one_status">
|
||||
<el-select class="flex-1" v-model="formData.qualification_one_status" clearable
|
||||
placeholder="请选择">
|
||||
<el-option label="有效" :value="0" />
|
||||
<el-option label="无效" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质名称2" prop="qualification_name_two">
|
||||
<el-input v-model="formData.qualification_name_two" clearable placeholder="请输入资质名称2" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="认证机构2" prop="certification_body_two">
|
||||
<el-input v-model="formData.certification_body_two" clearable placeholder="请输入认证机构2" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质编号2" prop="qualification_number_two">
|
||||
<el-input v-model="formData.qualification_number_two" clearable placeholder="请输入资质编号2" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="发证日期2" prop="get_date_two">
|
||||
<!-- <el-input v-model="formData.get_date_two" clearable placeholder="请输入发证日期2" /> -->
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.get_date_two" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="有效日期2" prop="effective_date_two">
|
||||
<!-- <el-input v-model="formData.effective_date_two" clearable placeholder="请输入有效日期2" /> -->
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.effective_date_two" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质2状态" prop="qualification_two_status">
|
||||
<el-select class="flex-1" v-model="formData.qualification_two_status" clearable
|
||||
placeholder="请选择">
|
||||
<el-option label="有效" :value="0" />
|
||||
<el-option label="无效" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="创建人" prop="create_user">
|
||||
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="附件" prop="annex">
|
||||
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||
@delFile="delFileFn" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-dialog v-model="showDialog1" title="选择单位" width="70%">
|
||||
<supervision_participating_units_qualifications @customEvent="customEvent1">
|
||||
</supervision_participating_units_qualifications>
|
||||
</el-dialog>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
@ -71,7 +135,7 @@
|
||||
<script lang="ts" setup name="supervisionLargeEquipmentEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiSupervisionLargeEquipmentAdd, apiSupervisionLargeEquipmentEdit, apiSupervisionLargeEquipmentDetail } from '@/api/supervision_large_equipment'
|
||||
import { apiSupervisionLargeEquipmentAdd, apiSupervisionLargeEquipmentEdit } from '@/api/supervision_large_equipment'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
@ -84,6 +148,7 @@ const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
const showDialog1 = ref(false)
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
@ -91,11 +156,19 @@ const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑工程监理--大型设备及仪器具' : '新增工程监理--大型设备及仪器具'
|
||||
})
|
||||
|
||||
const handleAvatarSuccess_four = (response: any) => {
|
||||
if (!Array.isArray(formData.annex)) formData.annex = []
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
project_id: '',
|
||||
company_id: '',
|
||||
unit_qualification_id: '',
|
||||
company_name: "",
|
||||
name: '',
|
||||
qualification_name_one: '',
|
||||
certification_body_one: '',
|
||||
@ -113,20 +186,19 @@ const formData = reactive({
|
||||
annex: '',
|
||||
create_user: '',
|
||||
})
|
||||
|
||||
const customEvent1 = (e) => {
|
||||
formData.unit_qualification_id = e.id
|
||||
formData.company_name = e.project_name
|
||||
showDialog1.value = false
|
||||
}
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
project_id: [{
|
||||
unit_qualification_id: [{
|
||||
required: true,
|
||||
message: '请输入项目id',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
company_id: [{
|
||||
required: true,
|
||||
message: '请输入所属单位',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
name: [{
|
||||
required: true,
|
||||
message: '请输入设备名称',
|
||||
@ -213,8 +285,8 @@ const setFormData = async (data: Record<any, any>) => {
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
@ -228,9 +300,9 @@ const getDetail = async (row: Record<string, any>) => {
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionLargeEquipmentEdit(data)
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionLargeEquipmentEdit(data)
|
||||
: await apiSupervisionLargeEquipmentAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
|
@ -1,25 +1,18 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form
|
||||
class="mb-[-16px]"
|
||||
:model="queryParams"
|
||||
inline
|
||||
>
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_id" clearable placeholder="请输入项目id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属单位" prop="company_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.company_id" clearable placeholder="请输入所属单位" />
|
||||
</el-form-item>
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
|
||||
<el-form-item label="设备名称" prop="name">
|
||||
<el-input class="w-[280px]" v-model="queryParams.name" clearable placeholder="请输入设备名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质名称1" prop="qualification_name_one">
|
||||
<el-input class="w-[280px]" v-model="queryParams.qualification_name_one" clearable placeholder="请输入资质名称1" />
|
||||
<el-input class="w-[280px]" v-model="queryParams.qualification_name_one" clearable
|
||||
placeholder="请输入资质名称1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质名称2" prop="qualification_name_two">
|
||||
<el-input class="w-[280px]" v-model="queryParams.qualification_name_two" clearable placeholder="请输入资质名称2" />
|
||||
<el-input class="w-[280px]" v-model="queryParams.qualification_name_two" clearable
|
||||
placeholder="请输入资质名称2" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
@ -28,63 +21,51 @@
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['supervision_qualification_review.supervision_large_equipment/add']" type="primary" @click="handleAdd">
|
||||
<el-button v-perms="['supervision_qualification_review.supervision_large_equipment/add']" type="primary"
|
||||
@click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['supervision_qualification_review.supervision_large_equipment/delete']"
|
||||
:disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)"
|
||||
>
|
||||
<el-button v-perms="['supervision_qualification_review.supervision_large_equipment/delete']"
|
||||
:disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="项目id" prop="project_id" show-overflow-tooltip />
|
||||
<el-table-column label="所属单位" prop="company_id" show-overflow-tooltip />
|
||||
<el-table-column label="所属单位" prop="company_name" show-overflow-tooltip />
|
||||
<el-table-column label="设备名称" prop="name" show-overflow-tooltip />
|
||||
<el-table-column label="资质名称1" prop="qualification_name_one" show-overflow-tooltip />
|
||||
<el-table-column label="认证机构1" prop="certification_body_one" show-overflow-tooltip />
|
||||
<el-table-column label="资质编号1" prop="qualification_number_one" show-overflow-tooltip />
|
||||
<el-table-column label="发证日期1" prop="get_date_one" show-overflow-tooltip />
|
||||
<el-table-column label="有效日期1" prop="effective_date_one" show-overflow-tooltip />
|
||||
<el-table-column label="资质1状态 0-有效 1-无效" prop="qualification_one_status" show-overflow-tooltip />
|
||||
<el-table-column label="资质1状态" prop="qualification_one_status_text" show-overflow-tooltip />
|
||||
<el-table-column label="资质名称2" prop="qualification_name_two" show-overflow-tooltip />
|
||||
<el-table-column label="认证机构2" prop="certification_body_two" show-overflow-tooltip />
|
||||
<el-table-column label="资质编号2" prop="qualification_number_two" show-overflow-tooltip />
|
||||
<el-table-column label="发证日期2" prop="get_date_two" show-overflow-tooltip />
|
||||
<el-table-column label="有效日期2" prop="effective_date_two" show-overflow-tooltip />
|
||||
<el-table-column label="资质2状态 0-有效 1-无效" prop="qualification_two_status" show-overflow-tooltip />
|
||||
<el-table-column label="资质2状态" prop="qualification_two_status_text" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="附件" prop="annex" show-overflow-tooltip />
|
||||
<el-table-column label="创建人" prop="create_user" show-overflow-tooltip />
|
||||
<el-table-column label="创建人" prop="create_user_name" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
v-perms="['supervision_qualification_review.supervision_large_equipment/edit']"
|
||||
type="primary"
|
||||
link
|
||||
@click="handleEdit(row)"
|
||||
>
|
||||
<el-button v-perms="['supervision_qualification_review.supervision_large_equipment/edit']"
|
||||
type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['supervision_qualification_review.supervision_large_equipment/delete']"
|
||||
type="danger"
|
||||
link
|
||||
@click="handleDelete(row.id)"
|
||||
>
|
||||
<el-button v-perms="['supervision_qualification_review.supervision_large_equipment/delete']"
|
||||
type="danger" link @click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
@ -95,7 +76,7 @@
|
||||
<script lang="ts" setup name="supervisionLargeEquipmentLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiSupervisionLargeEquipmentLists, apiSupervisionLargeEquipmentDelete } from '@/api/supervision_large_equipment'
|
||||
import { apiSupervisionLargeEquipmentLists, apiSupervisionLargeEquipmentDelete, apiSupervisionLargeEquipmentDetail } from '@/api/supervision_large_equipment'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
@ -140,10 +121,11 @@ const handleAdd = async () => {
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
let res = await apiSupervisionLargeEquipmentDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
editRef.value?.setFormData(res)
|
||||
}
|
||||
|
||||
// 删除
|
||||
|
@ -1,86 +1,161 @@
|
||||
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup
|
||||
ref="popupRef"
|
||||
:title="popupTitle"
|
||||
:async="true"
|
||||
width="550px"
|
||||
@confirm="handleSubmit"
|
||||
@close="handleClose"
|
||||
>
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="60vw" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input v-model="formData.project_id" clearable placeholder="请输入项目id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input v-model="formData.name" clearable placeholder="请输入姓名" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属单位" prop="company_id">
|
||||
<el-input v-model="formData.company_id" clearable placeholder="请输入所属单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证" prop="id_card">
|
||||
<el-input v-model="formData.id_card" clearable placeholder="请输入身份证" />
|
||||
</el-form-item>
|
||||
<el-form-item label="技术职称" prop="technical_title">
|
||||
<el-input v-model="formData.technical_title" clearable placeholder="请输入技术职称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="岗位" prop="job">
|
||||
<el-input v-model="formData.job" clearable placeholder="请输入岗位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质名称1" prop="qualification_name_one">
|
||||
<el-input v-model="formData.qualification_name_one" clearable placeholder="请输入资质名称1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="认证机构1" prop="certification_body_one">
|
||||
<el-input v-model="formData.certification_body_one" clearable placeholder="请输入认证机构1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质编号1" prop="qualification_number_one">
|
||||
<el-input v-model="formData.qualification_number_one" clearable placeholder="请输入资质编号1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发证日期1" prop="get_date_one">
|
||||
<el-input v-model="formData.get_date_one" clearable placeholder="请输入发证日期1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="有效日期1" prop="effective_date_one">
|
||||
<el-input v-model="formData.effective_date_one" clearable placeholder="请输入有效日期1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质1状态 0-有效 1-无效" prop="qualification_one_status">
|
||||
<el-input v-model="formData.qualification_one_status" clearable placeholder="请输入资质1状态 0-有效 1-无效" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质名称2" prop="qualification_name_two">
|
||||
<el-input v-model="formData.qualification_name_two" clearable placeholder="请输入资质名称2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="认证机构2" prop="certification_body_two">
|
||||
<el-input v-model="formData.certification_body_two" clearable placeholder="请输入认证机构2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质编号2" prop="qualification_number_two">
|
||||
<el-input v-model="formData.qualification_number_two" clearable placeholder="请输入资质编号2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发证日期2" prop="get_date_two">
|
||||
<el-input v-model="formData.get_date_two" clearable placeholder="请输入发证日期2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="有效日期2" prop="effective_date_two">
|
||||
<el-input v-model="formData.effective_date_two" clearable placeholder="请输入有效日期2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质2状态 0-有效 1-无效" prop="qualification_two_status">
|
||||
<el-input v-model="formData.qualification_two_status" clearable placeholder="请输入资质2状态 0-有效 1-无效" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="annex">
|
||||
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="create_user">
|
||||
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />
|
||||
</el-form-item>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="所属单位" prop="unit_qualification_id">
|
||||
<el-input v-model="formData.company_name" clearable placeholder="请输入所属单位"
|
||||
@click="showDialog1 = true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input v-model="formData.name" clearable placeholder="请输入姓名" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="身份证" prop="id_card">
|
||||
<el-input v-model="formData.id_card" clearable placeholder="请输入身份证" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="创建人" prop="create_user">
|
||||
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="技术职称" prop="technical_title">
|
||||
<el-input v-model="formData.technical_title" clearable placeholder="请输入技术职称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="岗位" prop="job">
|
||||
<el-input v-model="formData.job" clearable placeholder="请输入岗位" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质名称1" prop="qualification_name_one">
|
||||
<el-input v-model="formData.qualification_name_one" clearable placeholder="请输入资质名称1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="认证机构1" prop="certification_body_one">
|
||||
<el-input v-model="formData.certification_body_one" clearable placeholder="请输入认证机构1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质编号1" prop="qualification_number_one">
|
||||
<el-input v-model="formData.qualification_number_one" clearable placeholder="请输入资质编号1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="发证日期1" prop="get_date_one">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.get_date_one" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="有效日期1" prop="effective_date_one">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.effective_date_one" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质1状态" prop="qualification_one_status">
|
||||
<el-select class="flex-1" v-model="formData.qualification_one_status" clearable
|
||||
placeholder="请选择">
|
||||
<el-option label="有效" :value="0" />
|
||||
<el-option label="无效" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质名称2" prop="qualification_name_two">
|
||||
<el-input v-model="formData.qualification_name_two" clearable placeholder="请输入资质名称2" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="认证机构2" prop="certification_body_two">
|
||||
<el-input v-model="formData.certification_body_two" clearable placeholder="请输入认证机构2" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质编号2" prop="qualification_number_two">
|
||||
<el-input v-model="formData.qualification_number_two" clearable placeholder="请输入资质编号2" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="发证日期2" prop="get_date_two">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.get_date_two" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="有效日期2" prop="effective_date_two">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.effective_date_two" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质2状态" prop="qualification_two_status">
|
||||
<el-select class="flex-1" v-model="formData.qualification_two_status" clearable
|
||||
placeholder="请选择">
|
||||
<el-option label="有效" :value="0" />
|
||||
<el-option label="无效" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="附件" prop="annex">
|
||||
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||
@delFile="delFileFn" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||
<supervision_project @customEvent="customEvent"></supervision_project>
|
||||
</el-dialog>
|
||||
<div v-if="showDialog1">
|
||||
<el-dialog v-model="showDialog1" title="选择单位" width="70%">
|
||||
<supervision_participating_units_qualifications @customEvent="customEvent1">
|
||||
</supervision_participating_units_qualifications>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="supervisionSafetyManagementPersonnelEdit">
|
||||
<script lang="ts" setup name="supervisionConstructionManagementPersonnelEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiSupervisionSafetyManagementPersonnelAdd, apiSupervisionSafetyManagementPersonnelEdit, apiSupervisionSafetyManagementPersonnelDetail } from '@/api/supervision_safety_management_personnel'
|
||||
import { apiSupervisionSafetyManagementPersonnelAdd, apiSupervisionSafetyManagementPersonnelEdit, } from '@/api/supervision_safety_management_personnel'
|
||||
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
@ -93,19 +168,33 @@ const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
const showDialog = ref(false)
|
||||
const showDialog1 = ref(false)
|
||||
|
||||
|
||||
|
||||
const handleAvatarSuccess_four = (response: any) => {
|
||||
if (!Array.isArray(formData.annex)) formData.annex = []
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑工程监理--安全管理人员' : '新增工程监理--安全管理人员'
|
||||
return mode.value == 'edit' ? '编辑工程监理--施工管理人员' : '新增工程监理--施工管理人员'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
project_id: '',
|
||||
project_name: "",
|
||||
name: '',
|
||||
company_id: '',
|
||||
unit_qualification_id: '',
|
||||
company_name: '',
|
||||
id_card: '',
|
||||
technical_title: '',
|
||||
job: '',
|
||||
@ -125,7 +214,16 @@ const formData = reactive({
|
||||
annex: '',
|
||||
create_user: '',
|
||||
})
|
||||
|
||||
const customEvent = (e) => {
|
||||
formData.project_id = e.id
|
||||
formData.project_name = e.project_name
|
||||
showDialog.value = false
|
||||
}
|
||||
const customEvent1 = (e) => {
|
||||
formData.unit_qualification_id = e.id
|
||||
formData.company_name = e.project_name
|
||||
showDialog1.value = false
|
||||
}
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
@ -139,7 +237,7 @@ const formRules = reactive<any>({
|
||||
message: '请输入姓名',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
company_id: [{
|
||||
unit_qualification_id: [{
|
||||
required: true,
|
||||
message: '请输入所属单位',
|
||||
trigger: ['blur']
|
||||
@ -240,12 +338,12 @@ const setFormData = async (data: Record<any, any>) => {
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiSupervisionSafetyManagementPersonnelDetail({
|
||||
const data = await apiSupervisionConstructionManagementPersonnelDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
@ -255,9 +353,9 @@ const getDetail = async (row: Record<string, any>) => {
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionSafetyManagementPersonnelEdit(data)
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionSafetyManagementPersonnelEdit(data)
|
||||
: await apiSupervisionSafetyManagementPersonnelAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
|
@ -1,25 +1,21 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form
|
||||
class="mb-[-16px]"
|
||||
:model="queryParams"
|
||||
inline
|
||||
>
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_id" clearable placeholder="请输入项目id" />
|
||||
</el-form-item>
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input class="w-[280px]" v-model="queryParams.name" clearable placeholder="请输入姓名" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属单位" prop="company_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.company_id" clearable placeholder="请输入所属单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质名称1" prop="qualification_name_one">
|
||||
<el-input class="w-[280px]" v-model="queryParams.qualification_name_one" clearable placeholder="请输入资质名称1" />
|
||||
<el-input class="w-[280px]" v-model="queryParams.qualification_name_one" clearable
|
||||
placeholder="请输入资质名称1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资质名称2" prop="qualification_name_two">
|
||||
<el-input class="w-[280px]" v-model="queryParams.qualification_name_two" clearable placeholder="请输入资质名称2" />
|
||||
<el-input class="w-[280px]" v-model="queryParams.qualification_name_two" clearable
|
||||
placeholder="请输入资质名称2" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
@ -28,25 +24,22 @@
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['supervision_qualification_review.supervision_safety_management_personnel/add']" type="primary" @click="handleAdd">
|
||||
<el-button v-perms="['supervision_qualification_review.supervision_safety_management_personnel/add']"
|
||||
type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['supervision_qualification_review.supervision_safety_management_personnel/delete']"
|
||||
:disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)"
|
||||
>
|
||||
<el-button v-perms="['supervision_qualification_review.supervision_safety_management_personnel/delete']"
|
||||
:disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="项目id" prop="project_id" show-overflow-tooltip />
|
||||
<el-table-column label="姓名" prop="name" show-overflow-tooltip />
|
||||
<el-table-column label="所属单位" prop="company_id" show-overflow-tooltip />
|
||||
<el-table-column label="所属单位" prop="company_name" show-overflow-tooltip />
|
||||
<el-table-column label="身份证" prop="id_card" show-overflow-tooltip />
|
||||
<el-table-column label="技术职称" prop="technical_title" show-overflow-tooltip />
|
||||
<el-table-column label="岗位" prop="job" show-overflow-tooltip />
|
||||
@ -55,39 +48,32 @@
|
||||
<el-table-column label="资质编号1" prop="qualification_number_one" show-overflow-tooltip />
|
||||
<el-table-column label="发证日期1" prop="get_date_one" show-overflow-tooltip />
|
||||
<el-table-column label="有效日期1" prop="effective_date_one" show-overflow-tooltip />
|
||||
<el-table-column label="资质1状态 0-有效 1-无效" prop="qualification_one_status" show-overflow-tooltip />
|
||||
<el-table-column label="资质1状态" prop="qualification_one_status_text" show-overflow-tooltip />
|
||||
<el-table-column label="资质名称2" prop="qualification_name_two" show-overflow-tooltip />
|
||||
<el-table-column label="认证机构2" prop="certification_body_two" show-overflow-tooltip />
|
||||
<el-table-column label="资质编号2" prop="qualification_number_two" show-overflow-tooltip />
|
||||
<el-table-column label="发证日期2" prop="get_date_two" show-overflow-tooltip />
|
||||
<el-table-column label="有效日期2" prop="effective_date_two" show-overflow-tooltip />
|
||||
<el-table-column label="资质2状态 0-有效 1-无效" prop="qualification_two_status" show-overflow-tooltip />
|
||||
<el-table-column label="资质2状态 " prop="qualification_two_status_text" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="附件" prop="annex" show-overflow-tooltip />
|
||||
<el-table-column label="创建人" prop="create_user" show-overflow-tooltip />
|
||||
<el-table-column label="创建人" prop="create_user_name" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
<el-button
|
||||
v-perms="['supervision_qualification_review.supervision_safety_management_personnel/edit']"
|
||||
type="primary"
|
||||
link
|
||||
@click="handleEdit(row)"
|
||||
>
|
||||
type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['supervision_qualification_review.supervision_safety_management_personnel/delete']"
|
||||
type="danger"
|
||||
link
|
||||
@click="handleDelete(row.id)"
|
||||
>
|
||||
type="danger" link @click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
@ -98,7 +84,7 @@
|
||||
<script lang="ts" setup name="supervisionSafetyManagementPersonnelLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiSupervisionSafetyManagementPersonnelLists, apiSupervisionSafetyManagementPersonnelDelete } from '@/api/supervision_safety_management_personnel'
|
||||
import { apiSupervisionSafetyManagementPersonnelLists, apiSupervisionSafetyManagementPersonnelDelete, apiSupervisionSafetyManagementPersonnelDetail } from '@/api/supervision_safety_management_personnel'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
@ -143,10 +129,11 @@ const handleAdd = async () => {
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
let res = await apiSupervisionSafetyManagementPersonnelDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
editRef.value?.setFormData(res)
|
||||
}
|
||||
|
||||
// 删除
|
||||
|
@ -1,50 +1,57 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup
|
||||
ref="popupRef"
|
||||
:title="popupTitle"
|
||||
:async="true"
|
||||
width="550px"
|
||||
@confirm="handleSubmit"
|
||||
@close="handleClose"
|
||||
>
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="项目名称" prop="project_id">
|
||||
<el-input v-model="formData.project_id" clearable placeholder="请输入项目名称" />
|
||||
|
||||
<el-form-item label="所属单位" prop="unit_qualification_id">
|
||||
<el-input v-model="formData.company_name" clearable placeholder="请输入所属单位" @click="showDialog1 = true" />
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input v-model="formData.name" clearable placeholder="请输入姓名" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属单位" prop="company_id">
|
||||
<el-input v-model="formData.company_id" clearable placeholder="请输入所属单位" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="工种" prop="work_type">
|
||||
<el-input v-model="formData.work_type" clearable placeholder="请输入工种" />
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证" prop="id_card">
|
||||
<el-input v-model="formData.id_card" clearable placeholder="请输入身份证" />
|
||||
</el-form-item>
|
||||
<el-form-item label="资格有效期" prop="validity_period">
|
||||
<el-input v-model="formData.validity_period" clearable placeholder="请输入资格有效期" />
|
||||
<el-form-item label="资格有效期" prop="validity_period" label-width="100px">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.validity_period" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="进场时间" prop="enter_time">
|
||||
<el-input v-model="formData.enter_time" clearable placeholder="请输入进场时间" />
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.enter_time" clearable type="datetime"
|
||||
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择时间" />
|
||||
</el-form-item>
|
||||
<el-form-item label="离场时间" prop="leave_time">
|
||||
<el-input v-model="formData.leave_time" clearable placeholder="请输入离场时间" />
|
||||
<!-- <el-date-picker class="flex-1 !flex" v-model="formData.leave_time" clearable type="date"
|
||||
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
|
||||
</el-date-picker> -->
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.leave_time" clearable type="datetime"
|
||||
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择时间" />
|
||||
</el-form-item>
|
||||
<el-form-item label="状态 0-有效 1-无效" prop="status">
|
||||
<el-input v-model="formData.status" clearable placeholder="请输入状态 0-有效 1-无效" />
|
||||
<el-form-item label="状态" prop="status">
|
||||
<el-select class="flex-1" v-model="formData.status" clearable placeholder="请选择">
|
||||
<el-option label="有效" :value="0" />
|
||||
<el-option label="无效" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="annex">
|
||||
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
|
||||
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||
@delFile="delFileFn" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="create_user">
|
||||
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />
|
||||
</el-form-item>
|
||||
<el-dialog v-model="showDialog1" title="选择单位" width="70%">
|
||||
<supervision_participating_units_qualifications @customEvent="customEvent1">
|
||||
</supervision_participating_units_qualifications>
|
||||
</el-dialog>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
@ -53,7 +60,7 @@
|
||||
<script lang="ts" setup name="supervisionSpecialOperationPersonnelEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiSupervisionSpecialOperationPersonnelAdd, apiSupervisionSpecialOperationPersonnelEdit, apiSupervisionSpecialOperationPersonnelDetail } from '@/api/supervision_special_operation_personnel'
|
||||
import { apiSupervisionSpecialOperationPersonnelAdd, apiSupervisionSpecialOperationPersonnelEdit, } from '@/api/supervision_special_operation_personnel'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
@ -66,6 +73,7 @@ const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
const showDialog1 = ref(false)
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
@ -78,7 +86,8 @@ const formData = reactive({
|
||||
id: '',
|
||||
project_id: '',
|
||||
name: '',
|
||||
company_id: '',
|
||||
unit_qualification_id: '',
|
||||
company_name: "",
|
||||
work_type: '',
|
||||
id_card: '',
|
||||
validity_period: '',
|
||||
@ -89,21 +98,31 @@ const formData = reactive({
|
||||
annex: '',
|
||||
create_user: '',
|
||||
})
|
||||
const handleAvatarSuccess_four = (response: any) => {
|
||||
if (!Array.isArray(formData.annex)) formData.annex = []
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
|
||||
|
||||
const customEvent1 = (e) => {
|
||||
formData.unit_qualification_id = e.id
|
||||
formData.company_name = e.project_name
|
||||
showDialog1.value = false
|
||||
}
|
||||
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
project_id: [{
|
||||
required: true,
|
||||
message: '请输入项目名称',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
|
||||
name: [{
|
||||
required: true,
|
||||
message: '请输入姓名',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
company_id: [{
|
||||
unit_qualification_id: [{
|
||||
required: true,
|
||||
message: '请输入所属单位',
|
||||
trigger: ['blur']
|
||||
@ -159,8 +178,8 @@ const setFormData = async (data: Record<any, any>) => {
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
@ -174,9 +193,9 @@ const getDetail = async (row: Record<string, any>) => {
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionSpecialOperationPersonnelEdit(data)
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionSpecialOperationPersonnelEdit(data)
|
||||
: await apiSupervisionSpecialOperationPersonnelAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
|
@ -1,20 +1,13 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form
|
||||
class="mb-[-16px]"
|
||||
:model="queryParams"
|
||||
inline
|
||||
>
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="项目名称" prop="project_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_id" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input class="w-[280px]" v-model="queryParams.name" clearable placeholder="请输入姓名" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属单位" prop="company_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.company_id" clearable placeholder="请输入所属单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="create_user">
|
||||
<el-input class="w-[280px]" v-model="queryParams.create_user" clearable placeholder="请输入创建人" />
|
||||
</el-form-item>
|
||||
@ -25,57 +18,47 @@
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['supervision_qualification_review.supervision_special_operation_personnel/add']" type="primary" @click="handleAdd">
|
||||
<el-button v-perms="['supervision_qualification_review.supervision_special_operation_personnel/add']"
|
||||
type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['supervision_qualification_review.supervision_special_operation_personnel/delete']"
|
||||
:disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)"
|
||||
>
|
||||
<el-button v-perms="['supervision_qualification_review.supervision_special_operation_personnel/delete']"
|
||||
:disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="项目名称" prop="project_id" show-overflow-tooltip />
|
||||
<el-table-column label="姓名" prop="name" show-overflow-tooltip />
|
||||
<el-table-column label="所属单位" prop="company_id" show-overflow-tooltip />
|
||||
<el-table-column label="所属单位" prop="company_name" show-overflow-tooltip />
|
||||
<el-table-column label="工种" prop="work_type" show-overflow-tooltip />
|
||||
<el-table-column label="身份证" prop="id_card" show-overflow-tooltip />
|
||||
<el-table-column label="资格有效期" prop="validity_period" show-overflow-tooltip />
|
||||
<el-table-column label="进场时间" prop="enter_time" show-overflow-tooltip />
|
||||
<el-table-column label="离场时间" prop="leave_time" show-overflow-tooltip />
|
||||
<el-table-column label="状态 0-有效 1-无效" prop="status" show-overflow-tooltip />
|
||||
<el-table-column label="状态" prop="status_text" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="附件" prop="annex" show-overflow-tooltip />
|
||||
<el-table-column label="创建人" prop="create_user" show-overflow-tooltip />
|
||||
<el-table-column label="创建人" prop="create_user_name" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
<el-button
|
||||
v-perms="['supervision_qualification_review.supervision_special_operation_personnel/edit']"
|
||||
type="primary"
|
||||
link
|
||||
@click="handleEdit(row)"
|
||||
>
|
||||
type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['supervision_qualification_review.supervision_special_operation_personnel/delete']"
|
||||
type="danger"
|
||||
link
|
||||
@click="handleDelete(row.id)"
|
||||
>
|
||||
type="danger" link @click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
@ -86,7 +69,7 @@
|
||||
<script lang="ts" setup name="supervisionSpecialOperationPersonnelLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiSupervisionSpecialOperationPersonnelLists, apiSupervisionSpecialOperationPersonnelDelete } from '@/api/supervision_special_operation_personnel'
|
||||
import { apiSupervisionSpecialOperationPersonnelLists, apiSupervisionSpecialOperationPersonnelDelete, apiSupervisionSpecialOperationPersonnelDetail } from '@/api/supervision_special_operation_personnel'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
@ -130,10 +113,11 @@ const handleAdd = async () => {
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
let res = await apiSupervisionSpecialOperationPersonnelDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
editRef.value?.setFormData(res)
|
||||
}
|
||||
|
||||
// 删除
|
||||
|
@ -23,12 +23,11 @@
|
||||
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" @delFile="delFileFn" />
|
||||
</el-form-item>
|
||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||
<cost_project @customEvent="customEvent"></cost_project>
|
||||
<cost_project @customEvent="customEvent" :task_allocation="1"></cost_project>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="showDialog1" title="选择任务" width="70%">
|
||||
<task_type @customEvent="customEvent1"></task_type>
|
||||
</el-dialog>
|
||||
|
||||
<div v-if="showDialog3">
|
||||
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||
</personnelselector>
|
||||
@ -47,22 +46,23 @@
|
||||
<el-table-column label="任务名称" prop="task_name" width="200px">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.task_name" readonly @click="showDialog1 = true, tableIndex = scope.$index"
|
||||
placeholder="点击选择" />
|
||||
placeholder="点击选择" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务次级" prop="level" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.level" :readonly="mode == 'edit'" />
|
||||
<el-input v-model="row.level" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工序" prop="process" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.process" :readonly="mode == 'edit'" />
|
||||
<el-input v-model="row.process" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务类型" prop="task_type_id" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-select class="flex-1" v-model="row.task_type_id" clearable placeholder="请选择任务类型">
|
||||
<el-select class="flex-1" v-model="row.task_type_id" clearable placeholder="请选择任务类型"
|
||||
:disabled="mode != 'add'">
|
||||
<el-option v-for="(item, index) in dictData.task_type" :key="index" :label="item.name"
|
||||
:value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
@ -70,7 +70,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="专业类型" prop="professional_type" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-select class="flex-1" v-model="row.professional_type" clearable placeholder="请选择专业类型">
|
||||
<el-select class="flex-1" v-model="row.professional_type" clearable placeholder="请选择专业类型"
|
||||
:disabled="mode != 'add'">
|
||||
<el-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
@ -78,80 +79,80 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="工程师" prop="engineer" width="200px">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.engineer" :readonly="mode == 'edit'"
|
||||
<el-input v-model="scope.row.engineer" :disabled="mode != 'add'"
|
||||
@click="userclick(scope.$index, 'engineer')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="一级审核人" prop="first_reviewer" width="200px">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.first_reviewer" :readonly="mode == 'edit'"
|
||||
<el-input v-model="scope.row.first_reviewer" :disabled="mode != 'add'"
|
||||
@click="userclick(scope.$index, 'first_reviewer')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="二级审核人" prop="secondary_reviewer" width="200px">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.secondary_reviewer" :readonly="mode == 'edit'"
|
||||
<el-input v-model="scope.row.secondary_reviewer" :disabled="mode != 'add'"
|
||||
@click="userclick(scope.$index, 'secondary_reviewer')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="三级审核人" prop="third_level_reviewer" width="200px">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.third_level_reviewer" :readonly="mode == 'edit'"
|
||||
<el-input v-model="scope.row.third_level_reviewer" :disabled="mode != 'add'"
|
||||
@click="userclick(scope.$index, 'third_level_reviewer')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="天数" prop="days" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.days" :readonly="mode == 'edit'" />
|
||||
<el-input v-model="row.days" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="开始日期" prop="start_date" width="220px">
|
||||
<template #default="{ row }">
|
||||
<el-date-picker v-model="row.start_date" clearable type="date" value-format="YYYY-MM-DD"
|
||||
placeholder="请选择日期">
|
||||
:disabled="mode != 'add'" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="结束日期" prop="end_date" width="220px">
|
||||
<template #default="{ row }">
|
||||
<el-date-picker v-model="row.end_date" clearable type="date" value-format="YYYY-MM-DD"
|
||||
placeholder="请选择日期">
|
||||
:disabled="mode != 'add'" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="中标金额(元)" prop="bid_winning_amount" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.bid_winning_amount" :readonly="mode == 'edit'" />
|
||||
<el-input v-model="row.bid_winning_amount" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="送审造价(元)" prop="cost" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.cost" :readonly="mode == 'edit'" />
|
||||
<el-input v-model="row.cost" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="第三方核定金额(元)" prop="approved_amount" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.approved_amount" :readonly="mode == 'edit'" />
|
||||
<el-input v-model="row.approved_amount" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="施工单位" prop="construction_unit" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.construction_unit" :readonly="mode == 'edit'" />
|
||||
<el-input v-model="row.construction_unit" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="联系人" prop="contact" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.contact" :readonly="mode == 'edit'" />
|
||||
<el-input v-model="row.contact" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="联系电话" prop="contact_phone" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.contact_phone" :readonly="mode == 'edit'" />
|
||||
<el-input v-model="row.contact_phone" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" prop="remark" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.remark" :readonly="mode == 'edit'" />
|
||||
<el-input v-model="row.remark" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -164,7 +165,7 @@
|
||||
<script lang="ts" setup name="taskAllocationEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiTaskAllocationAdd, apiTaskAllocationEdit, apiTaskAllocationDetail } from '@/api/task_allocation'
|
||||
import { apiTaskAllocationAdd, apiTaskAllocationEdit, } from '@/api/task_allocation'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
@ -172,9 +173,7 @@ defineProps({
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const a = (e) => {
|
||||
console.log(e.$index)
|
||||
}
|
||||
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
@ -202,7 +201,7 @@ const formData = reactive({
|
||||
id: '',
|
||||
dataid: '',
|
||||
num: '',
|
||||
project: '',
|
||||
project_id: '',
|
||||
project_name: "",
|
||||
project_num: '',
|
||||
head: '',
|
||||
@ -234,7 +233,8 @@ const formData = reactive({
|
||||
start_date: '',
|
||||
end_date: '',
|
||||
remark: '',
|
||||
}]
|
||||
}],
|
||||
projectInfo: {}
|
||||
})
|
||||
|
||||
const handleAdd = () => {
|
||||
@ -277,10 +277,9 @@ const handleDelete = (row: any) => {
|
||||
const tableIndex = ref(0)
|
||||
|
||||
const customEvent = (e) => {
|
||||
formData.project = e.id
|
||||
formData.project_id = e.id
|
||||
formData.project_name = e.project_name
|
||||
formData.project_num = e.project_num
|
||||
|
||||
showDialog.value = false
|
||||
}
|
||||
|
||||
@ -324,8 +323,10 @@ const setFormData = async (data: Record<any, any>) => {
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
formData.project_name = formData.projectInfo?.project_name || ""
|
||||
formData.project_num = formData.projectInfo?.project_num || ""
|
||||
formData.project_id = formData.projectInfo?.project_id || ""
|
||||
formData.head = formData.projectInfo?.principal || ""
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
|
@ -32,7 +32,7 @@
|
||||
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人" prop="projectInfo.principal" show-overflow-tooltip />
|
||||
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="附件" prop="annex" show-overflow-tooltip>
|
||||
<!-- <el-table-column label="附件" prop="annex" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<div v-if="row.annex && row.annex.length > 0">
|
||||
<div v-for="(item, i) in row.annex " :key='i'>
|
||||
@ -43,7 +43,7 @@
|
||||
暂无文件
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
@ -68,7 +68,7 @@
|
||||
<script lang="ts" setup name="taskAllocationLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiTaskAllocationLists, apiTaskAllocationDelete } from '@/api/task_allocation'
|
||||
import { apiTaskAllocationLists, apiTaskAllocationDelete, apiTaskAllocationDetail } from '@/api/task_allocation'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
@ -109,10 +109,11 @@ const handleAdd = async () => {
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
let res = await apiTaskAllocationDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
editRef.value?.setFormData(res)
|
||||
}
|
||||
|
||||
// 删除
|
||||
|
@ -1,84 +1,145 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="60%" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :inline="true" :model="formData" label-width="120px" :rules="formRules">
|
||||
<el-form-item label="工序" prop="process">
|
||||
<el-input v-model="formData.process" clearable placeholder="请输入工序" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务类型" prop="task_type_id">
|
||||
<el-select class="flex-1" v-model="formData.task_type_id" clearable placeholder="请选择任务类型">
|
||||
<el-option v-for="(item, index) in dictData.task_type" :key="index" :label="item.name"
|
||||
:value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="专业类型" prop="professional_type">
|
||||
<el-select class="flex-1" v-model="formData.professional_type" clearable placeholder="请选择专业类型">
|
||||
<el-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工程师" prop="engineer">
|
||||
<el-input v-model="formData.engineer" clearable placeholder="请输入工程师" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工程师id" prop="engineer_id">
|
||||
<el-input v-model="formData.engineer_id" clearable placeholder="请输入工程师id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务级次" prop="level">
|
||||
<el-input v-model="formData.level" clearable placeholder="请输入任务级次" />
|
||||
</el-form-item>
|
||||
<el-form-item label="一级审核人" prop="first_reviewer">
|
||||
<el-input v-model="formData.first_reviewer" clearable placeholder="请输入一级审核人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="一级审核人id" prop="first_reviewer_id">
|
||||
<el-input v-model="formData.first_reviewer_id" clearable placeholder="请输入一级审核人id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="二级审核人" prop="secondary_reviewer">
|
||||
<el-input v-model="formData.secondary_reviewer" clearable placeholder="请输入二级审核人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="二级审核人id" prop="secondary_reviewer_id">
|
||||
<el-input v-model="formData.secondary_reviewer_id" clearable placeholder="请输入二级审核人id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="三级审核人" prop="third_level_reviewer">
|
||||
<el-input v-model="formData.third_level_reviewer" clearable placeholder="请输入三级审核人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="三级审核人id" prop="third_level_reviewer_id">
|
||||
<el-input v-model="formData.third_level_reviewer_id" clearable placeholder="请输入三级审核人id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="中标金额" prop="bid_winning_amount">
|
||||
<el-input v-model="formData.bid_winning_amount" clearable placeholder="请输入中标金额(元)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="送审造价" prop="cost">
|
||||
<el-input v-model="formData.cost" clearable placeholder="请输入送审造价(元)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="第三方核定金额" prop="approved_amount">
|
||||
<el-input v-model="formData.approved_amount" clearable placeholder="请输入第三方核定金额(元)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="施工单位" prop="construction_unit">
|
||||
<el-input v-model="formData.construction_unit" clearable placeholder="请输入施工单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="施工单位id" prop="construction_unit_id">
|
||||
<el-input v-model="formData.construction_unit_id" clearable placeholder="请输入施工单位id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="联系人" prop="contact">
|
||||
<el-input v-model="formData.contact" clearable placeholder="请输入联系人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话" prop="contact_phone">
|
||||
<el-input v-model="formData.contact_phone" clearable placeholder="请输入联系电话" />
|
||||
</el-form-item>
|
||||
<el-form-item label="天数" prop="days">
|
||||
<el-input v-model="formData.days" clearable placeholder="请输入天数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="开始日期" prop="start_date">
|
||||
<el-input v-model="formData.start_date" clearable placeholder="请输入开始日期" />
|
||||
</el-form-item>
|
||||
<el-form-item label="结束日期" prop="end_date">
|
||||
<el-input v-model="formData.end_date" clearable placeholder="请输入结束日期" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="60%" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="100px" :rules="formRules">
|
||||
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="工序" prop="process">
|
||||
<el-input v-model="formData.process" clearable placeholder="请输入工序" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="任务类型" prop="task_type_id">
|
||||
<el-select class="flex-1" v-model="formData.task_type_id" clearable placeholder="请选择任务类型">
|
||||
<el-option v-for="(item, index) in dictData.task_type" :key="index" :label="item.name"
|
||||
:value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="专业类型" prop="professional_type">
|
||||
<el-select class="flex-1" v-model="formData.professional_type" clearable placeholder="请选择专业类型">
|
||||
<el-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="工程师" prop="engineer">
|
||||
<el-input v-model="formData.engineer" clearable placeholder="请输入工程师"
|
||||
@click="userclick('engineer')" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="任务级次" prop="level">
|
||||
<el-input v-model="formData.level" clearable placeholder="请输入任务级次" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="一级审核人" prop="first_reviewer">
|
||||
<el-input v-model="formData.first_reviewer" clearable placeholder="请输入一级审核人"
|
||||
@click="userclick('first_reviewer')" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- <el-form-item label="一级审核人id" prop="first_reviewer_id">
|
||||
<el-input v-model="formData.first_reviewer_id" clearable placeholder="请输入一级审核人id" />
|
||||
</el-form-item> -->
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="二级审核人" prop="secondary_reviewer">
|
||||
<el-input v-model="formData.secondary_reviewer" clearable placeholder="请输入二级审核人"
|
||||
@click="userclick('secondary_reviewer')" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="二级审核人id" prop="secondary_reviewer_id">
|
||||
<el-input v-model="formData.secondary_reviewer_id" clearable placeholder="请输入二级审核人id" />
|
||||
</el-form-item> -->
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="三级审核人" prop="third_level_reviewer">
|
||||
<el-input v-model="formData.third_level_reviewer" clearable placeholder="请输入三级审核人"
|
||||
@click="userclick('third_level_reviewer')" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="三级审核人id" prop="third_level_reviewer_id">
|
||||
<el-input v-model="formData.third_level_reviewer_id" clearable placeholder="请输入三级审核人id" />
|
||||
</el-form-item> -->
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="中标金额" prop="bid_winning_amount">
|
||||
<el-input v-model="formData.bid_winning_amount" clearable placeholder="请输入中标金额(元)" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="送审造价" prop="cost">
|
||||
<el-input v-model="formData.cost" clearable placeholder="请输入送审造价(元)" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="第三方核定金额" prop="approved_amount" label-width="140px">
|
||||
<el-input v-model="formData.approved_amount" clearable placeholder="请输入第三方核定金额(元)" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="施工单位" prop="construction_unit">
|
||||
<el-input v-model="formData.construction_unit" clearable placeholder="请输入施工单位" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- <el-form-item label="施工单位id" prop="construction_unit_id">
|
||||
<el-input v-model="formData.construction_unit_id" clearable placeholder="请输入施工单位id" />
|
||||
</el-form-item> -->
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="联系人" prop="contact">
|
||||
<el-input v-model="formData.contact" clearable placeholder="请输入联系人" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="联系电话" prop="contact_phone">
|
||||
<el-input v-model="formData.contact_phone" clearable placeholder="请输入联系电话" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="天数" prop="days">
|
||||
<el-input v-model="formData.days" clearable placeholder="请输入天数" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="开始日期" prop="start_date">
|
||||
<!-- <el-input v-model="formData.start_date" clearable placeholder="请输入开始日期" /> -->
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.start_date" clearable type="date"
|
||||
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="结束日期" prop="end_date">
|
||||
<!-- <el-input v-model="formData.end_date" clearable placeholder="请输入结束日期" /> -->
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.end_date" clearable type="date"
|
||||
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div v-if="showDialog3">
|
||||
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||
</personnelselector>
|
||||
</div>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="taskDetailEdit">
|
||||
@ -88,51 +149,67 @@ import { apiTaskDetailAdd, apiTaskDetailEdit, apiTaskDetailDetail } from '@/api/
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
|
||||
const showDialog3 = ref(false)
|
||||
const personnel = ref<any>()
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑任务明细' : '新增任务明细'
|
||||
return mode.value == 'edit' ? '编辑任务明细' : '新增任务明细'
|
||||
})
|
||||
|
||||
const tableKey = ref('')
|
||||
//打开弹窗
|
||||
const userclick = async (key) => {
|
||||
tableKey.value = key
|
||||
showDialog3.value = true
|
||||
await nextTick()
|
||||
personnel.value.open()
|
||||
}
|
||||
|
||||
//确认
|
||||
const submituser = (e: any) => {
|
||||
formData[tableKey.value] = e.name
|
||||
formData[tableKey.value + '_id'] = e.id
|
||||
showDialog3.value = false
|
||||
}
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
task_allocation_dataid: '',
|
||||
task_name: '',
|
||||
task_name_id: '',
|
||||
process: '',
|
||||
task_type_id: '',
|
||||
professional_type: '',
|
||||
engineer: '',
|
||||
engineer_id: '',
|
||||
level: '',
|
||||
first_reviewer: '',
|
||||
first_reviewer_id: '',
|
||||
secondary_reviewer: '',
|
||||
secondary_reviewer_id: '',
|
||||
third_level_reviewer: '',
|
||||
third_level_reviewer_id: '',
|
||||
bid_winning_amount: '',
|
||||
cost: '',
|
||||
approved_amount: '',
|
||||
construction_unit: '',
|
||||
construction_unit_id: '',
|
||||
contact: '',
|
||||
contact_phone: '',
|
||||
days: '',
|
||||
start_date: '',
|
||||
end_date: '',
|
||||
remark: '',
|
||||
id: '',
|
||||
task_allocation_dataid: '',
|
||||
task_name: '',
|
||||
task_name_id: '',
|
||||
process: '',
|
||||
task_type_id: '',
|
||||
professional_type: '',
|
||||
engineer: '',
|
||||
engineer_id: '',
|
||||
level: '',
|
||||
first_reviewer: '',
|
||||
first_reviewer_id: '',
|
||||
secondary_reviewer: '',
|
||||
secondary_reviewer_id: '',
|
||||
third_level_reviewer: '',
|
||||
third_level_reviewer_id: '',
|
||||
bid_winning_amount: '',
|
||||
cost: '',
|
||||
approved_amount: '',
|
||||
construction_unit: '',
|
||||
construction_unit_id: '',
|
||||
contact: '',
|
||||
contact_phone: '',
|
||||
days: '',
|
||||
start_date: '',
|
||||
end_date: '',
|
||||
remark: '',
|
||||
|
||||
})
|
||||
|
||||
@ -145,51 +222,51 @@ const formRules = reactive<any>({
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiTaskDetailDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
const data = await apiTaskDetailDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiTaskDetailEdit(data)
|
||||
: await apiTaskDetailAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiTaskDetailEdit(data)
|
||||
: await apiTaskDetailAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
}
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
emit('close')
|
||||
}
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
})
|
||||
</script>
|
||||
|
@ -1,97 +1,75 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form
|
||||
class="mb-[-16px]"
|
||||
:model="queryParams"
|
||||
inline
|
||||
>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['task_detail/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['task_detail/delete']"
|
||||
:disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="主表标识" prop="taskAllocation.dataid" show-overflow-tooltip />
|
||||
<el-table-column label="任务名称" prop="taskTypeInfo.name" show-overflow-tooltip />
|
||||
<el-table-column label="工序" prop="process" show-overflow-tooltip />
|
||||
<el-table-column label="任务类型" prop="task_type_id">
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.task_type" :value="row.task_type_id" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业类型" prop="professional_type">
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.major_type" :value="row.professional_type" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工程师" prop="engineer" show-overflow-tooltip />
|
||||
<el-table-column label="工程师id" prop="engineer_id" show-overflow-tooltip />
|
||||
<el-table-column label="任务级次" prop="level" show-overflow-tooltip />
|
||||
<el-table-column label="一级审核人" prop="first_reviewer" show-overflow-tooltip />
|
||||
<el-table-column label="一级审核人id" prop="first_reviewer_id" show-overflow-tooltip />
|
||||
<el-table-column label="二级审核人" prop="secondary_reviewer" show-overflow-tooltip />
|
||||
<el-table-column label="二级审核人id" prop="secondary_reviewer_id" show-overflow-tooltip />
|
||||
<el-table-column label="三级审核人" prop="third_level_reviewer" show-overflow-tooltip />
|
||||
<el-table-column label="三级审核人id" prop="third_level_reviewer_id" show-overflow-tooltip />
|
||||
<el-table-column label="中标金额(元)" prop="bid_winning_amount" show-overflow-tooltip />
|
||||
<el-table-column label="送审造价(元)" prop="cost" show-overflow-tooltip />
|
||||
<el-table-column label="第三方核定金额(元)" prop="approved_amount" show-overflow-tooltip />
|
||||
<el-table-column label="施工单位" prop="construction_unit" show-overflow-tooltip />
|
||||
<el-table-column label="施工单位id" prop="construction_unit_id" show-overflow-tooltip />
|
||||
<el-table-column label="联系人" prop="contact" show-overflow-tooltip />
|
||||
<el-table-column label="联系电话" prop="contact_phone" show-overflow-tooltip />
|
||||
<el-table-column label="天数" prop="days" show-overflow-tooltip />
|
||||
<el-table-column label="开始日期" prop="start_date" show-overflow-tooltip />
|
||||
<el-table-column label="结束日期" prop="end_date" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
v-perms="['task_detail/edit']"
|
||||
type="primary"
|
||||
link
|
||||
@click="handleEdit(row)"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['task_detail/delete']"
|
||||
type="danger"
|
||||
link
|
||||
@click="handleDelete(row.id)"
|
||||
>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<!-- <el-button v-perms="['task_detail/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['task_detail/delete']" :disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</el-button> -->
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="主表标识" prop="taskAllocation.dataid" show-overflow-tooltip />
|
||||
<el-table-column label="任务名称" prop="taskTypeInfo.name" show-overflow-tooltip />
|
||||
<el-table-column label="工序" prop="process" show-overflow-tooltip />
|
||||
<el-table-column label="任务类型" prop="task_type_id">
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.task_type" :value="row.task_type_id" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业类型" prop="professional_type">
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.major_type" :value="row.professional_type" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工程师" prop="engineer" show-overflow-tooltip />
|
||||
<el-table-column label="任务级次" prop="level" show-overflow-tooltip />
|
||||
<el-table-column label="一级审核人" prop="first_reviewer" show-overflow-tooltip />
|
||||
<el-table-column label="二级审核人" prop="secondary_reviewer" show-overflow-tooltip />
|
||||
<el-table-column label="三级审核人" prop="third_level_reviewer" show-overflow-tooltip />
|
||||
<el-table-column label="中标金额(元)" prop="bid_winning_amount" show-overflow-tooltip />
|
||||
<el-table-column label="送审造价(元)" prop="cost" show-overflow-tooltip />
|
||||
<el-table-column label="第三方核定金额(元)" prop="approved_amount" show-overflow-tooltip />
|
||||
<el-table-column label="施工单位" prop="construction_unit" show-overflow-tooltip />
|
||||
<el-table-column label="施工单位id" prop="construction_unit_id" show-overflow-tooltip />
|
||||
<el-table-column label="联系人" prop="contact" show-overflow-tooltip />
|
||||
<el-table-column label="联系电话" prop="contact_phone" show-overflow-tooltip />
|
||||
<el-table-column label="天数" prop="days" show-overflow-tooltip />
|
||||
<el-table-column label="开始日期" prop="start_date" show-overflow-tooltip />
|
||||
<el-table-column label="结束日期" prop="end_date" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['task_detail/edit']" type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['task_detail/delete']" type="danger" link @click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="taskDetailLists">
|
||||
@ -117,7 +95,7 @@ const selectData = ref<any[]>([])
|
||||
|
||||
// 表格选择后回调事件
|
||||
const handleSelectionChange = (val: any[]) => {
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
}
|
||||
|
||||
// 获取字典数据
|
||||
@ -125,30 +103,30 @@ const { dictData } = useDictData('task_type,major_type')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiTaskDetailLists,
|
||||
params: queryParams
|
||||
fetchFun: apiTaskDetailLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
}
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiTaskDetailDelete({ id })
|
||||
getLists()
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiTaskDetailDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
|
@ -1,198 +1,400 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup
|
||||
ref="popupRef"
|
||||
:title="popupTitle"
|
||||
:async="true"
|
||||
width="60%"
|
||||
@confirm="handleSubmit"
|
||||
@close="handleClose"
|
||||
>
|
||||
<el-form ref="formRef" :inline="true" :model="formData" label-width="130px" :rules="formRules">
|
||||
<el-form-item label="标识" prop="dataid">
|
||||
<el-input v-model="formData.dataid" clearable placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input v-model="formData.num" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input v-model="formData.project" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input v-model="formData.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务名称" prop="task">
|
||||
<el-input v-model="formData.task" clearable placeholder="请输入任务名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工序" prop="processes">
|
||||
<el-input v-model="formData.processes" clearable placeholder="请输入工序" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务类型" prop="rtype">
|
||||
<el-input v-model="formData.rtype" clearable placeholder="请输入任务类型" />
|
||||
</el-form-item>
|
||||
<el-form-item label="专业类型" prop="zType">
|
||||
<el-input v-model="formData.zType" clearable placeholder="请输入专业类型" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工程师" prop="engineer">
|
||||
<el-input v-model="formData.engineer" clearable placeholder="请输入工程师" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目负责人" prop="head">
|
||||
<el-input v-model="formData.head" clearable placeholder="请输入项目负责人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="审核流程" prop="examine">
|
||||
<el-input v-model="formData.examine" clearable placeholder="请输入审核流程" />
|
||||
</el-form-item>
|
||||
<el-form-item label="一级审核人" prop="one">
|
||||
<el-input v-model="formData.one" clearable placeholder="请输入一级审核人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="二级审核人" prop="two">
|
||||
<el-input v-model="formData.two" clearable placeholder="请输入二级审核人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="三级审核人" prop="three">
|
||||
<el-input v-model="formData.three" clearable placeholder="请输入三级审核人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="登记日期" prop="apptime">
|
||||
<el-input v-model="formData.apptime" clearable placeholder="请输入登记日期" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务级次" prop="level">
|
||||
<el-input v-model="formData.level" clearable placeholder="请输入任务级次" />
|
||||
</el-form-item>
|
||||
<el-form-item label="建筑面积" prop="area">
|
||||
<el-input v-model="formData.area" clearable placeholder="请输入建筑面积" />
|
||||
</el-form-item>
|
||||
<el-form-item label="建筑结构类型" prop="type">
|
||||
<el-input v-model="formData.type" clearable placeholder="请输入建筑结构类型" />
|
||||
</el-form-item>
|
||||
<el-form-item label="建筑用途" prop="use">
|
||||
<el-input v-model="formData.use" clearable placeholder="请输入建筑用途" />
|
||||
</el-form-item>
|
||||
<el-form-item label="施工单位" prop="construction">
|
||||
<el-input v-model="formData.construction" clearable placeholder="请输入施工单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="编制要求" prop="ask">
|
||||
<el-input v-model="formData.ask" clearable placeholder="请输入编制要求" />
|
||||
</el-form-item>
|
||||
<el-form-item label="造价依据" prop="according">
|
||||
<el-input v-model="formData.according" clearable placeholder="请输入造价依据" />
|
||||
</el-form-item>
|
||||
<el-form-item label="材料补差" prop="clbc">
|
||||
<el-input v-model="formData.clbc" clearable placeholder="请输入材料补差" />
|
||||
</el-form-item>
|
||||
<el-form-item label="送审金额" prop="ssje">
|
||||
<el-input v-model="formData.ssje" clearable placeholder="请输入送审金额" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工程师核定价" prop="gcshd">
|
||||
<el-input v-model="formData.gcshd" clearable placeholder="请输入工程师核定价" />
|
||||
</el-form-item>
|
||||
<el-form-item label="核增/核减金额" prop="hzhj">
|
||||
<el-input v-model="formData.hzhj" clearable placeholder="请输入核增/核减金额" />
|
||||
</el-form-item>
|
||||
<el-form-item label="人工单价" prop="rg">
|
||||
<el-input v-model="formData.rg" clearable placeholder="请输入人工单价" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目负责人核定价" prop="xmhd">
|
||||
<el-input v-model="formData.xmhd" clearable placeholder="请输入项目负责人核定价" />
|
||||
</el-form-item>
|
||||
<el-form-item label="部门负责人核定价" prop="bmhd">
|
||||
<el-input v-model="formData.bmhd" clearable placeholder="请输入部门负责人核定价" />
|
||||
</el-form-item>
|
||||
<el-form-item label="审核部核定价" prop="shbhd">
|
||||
<el-input v-model="formData.shbhd" clearable placeholder="请输入审核部核定价" />
|
||||
</el-form-item>
|
||||
<el-form-item label="开工日期" prop="kaigong">
|
||||
<el-input v-model="formData.kaigong" clearable placeholder="请输入开工日期" />
|
||||
</el-form-item>
|
||||
<el-form-item label="竣工日期" prop="jungong">
|
||||
<el-input v-model="formData.jungong" clearable placeholder="请输入竣工日期" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="bz">
|
||||
<el-input v-model="formData.bz" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="结果文件" prop="result_file">
|
||||
<material-picker :type="'file'" v-model="formData.result_file" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目负责人附件" prop="master_annex">
|
||||
<material-picker :type="'file'" v-model="formData.master_annex" />
|
||||
</el-form-item>
|
||||
<el-form-item label="部门负责人附件" prop="bm_annex">
|
||||
<material-picker :type="'file'" v-model="formData.bm_annex" />
|
||||
</el-form-item>
|
||||
<el-form-item label="审核部附件" prop="shb_annex">
|
||||
<material-picker :type="'file'" v-model="formData.shb_annex" />
|
||||
</el-form-item>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="标识" prop="dataid">
|
||||
<el-input v-model="formData.dataid" clearable placeholder="系统自动生成" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input v-model="formData.num" clearable placeholder="系统自动生成" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目名称" prop="project_id">
|
||||
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||
@click="showDialog = true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input v-model="formData.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="任务名称" prop="task">
|
||||
<el-input v-model="formData.task" clearable placeholder="请输入任务名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="工序" prop="processes">
|
||||
<el-input v-model="formData.processes" clearable placeholder="请输入工序" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="任务类型" prop="rtype">
|
||||
<el-select class="flex-1" v-model="formData.rtype" clearable placeholder="请选择任务类型">
|
||||
<el-option v-for="(item, index) in dictData.task_type" :key="index" :label="item.name"
|
||||
:value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="专业类型" prop="zType">
|
||||
<!-- <el-input v-model="formData.zType" clearable placeholder="请输入专业类型" /> -->
|
||||
<el-select class="flex-1" v-model="formData.zType" clearable placeholder="请选择专业类型">
|
||||
<el-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name"
|
||||
:value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="工程师" prop="engineer">
|
||||
<el-input v-model="formData.engineer" clearable placeholder="请输入工程师"
|
||||
@click="userclick('engineer')" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目负责人" prop="head">
|
||||
<el-input v-model="formData.head" clearable placeholder="请输入项目负责人" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="审核流程" prop="examine">
|
||||
<el-select class="flex-1" v-model="formData.examine" clearable placeholder="请选择审核流程">
|
||||
<el-option v-for="(item, index) in dictData.review_process " :key="index" :label="item.name"
|
||||
:value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="一级审核人" prop="one">
|
||||
<el-input v-model="formData.one" clearable placeholder="请输入一级审核人" @click="userclick('one')" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="二级审核人" prop="two">
|
||||
<el-input v-model="formData.two" clearable placeholder="请输入二级审核人" @click="userclick('two')" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="三级审核人" prop="three">
|
||||
<el-input v-model="formData.three" clearable placeholder="请输入三级审核人"
|
||||
@click="userclick('three')" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="登记日期" prop="apptime">
|
||||
<!-- <el-input v-model="formData.apptime" clearable placeholder="请输入登记日期" /> -->
|
||||
<el-date-picker v-model="formData.apptime" clearable type="date" value-format="YYYY-MM-DD"
|
||||
class="!flex flex-1" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="任务级次" prop="level">
|
||||
<el-input v-model="formData.level" clearable placeholder="请输入任务级次" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="建筑面积" prop="area">
|
||||
<el-input v-model="formData.area" clearable placeholder="请输入建筑面积" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="建筑结构类型" prop="type" label-width="120px">
|
||||
<el-select class="flex-1" v-model="formData.type" clearable placeholder="请选择建筑结构类型">
|
||||
<el-option v-for="(item, index) in dictData.building_structure_type " :key="index"
|
||||
:label="item.name" :value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="建筑用途" prop="use">
|
||||
<el-input v-model="formData.use" clearable placeholder="请输入建筑用途" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="施工单位" prop="construction">
|
||||
<el-input v-model="formData.construction" clearable placeholder="请输入施工单位" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="编制要求" prop="ask">
|
||||
<!-- <el-input v-model="formData.ask" clearable placeholder="请输入编制要求" /> -->
|
||||
<el-select class="flex-1" v-model="formData.ask" clearable placeholder="请选择建筑结构类型">
|
||||
<el-option v-for="(item, index) in dictData.preparation_requirements " :key="index"
|
||||
:label="item.name" :value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="造价依据" prop="according">
|
||||
<!-- <el-input v-model="formData.according" clearable placeholder="请输入造价依据" /> -->
|
||||
<el-select class="flex-1" v-model="formData.according" clearable placeholder="请选择造价依据">
|
||||
<el-option v-for="(item, index) in dictData.cost_sentence " :key="index" :label="item.name"
|
||||
:value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="材料补差" prop="clbc">
|
||||
<!-- <el-input v-model="formData.clbc" clearable placeholder="请输入材料补差" /> -->
|
||||
<el-select class="flex-1" v-model="formData.clbc" clearable placeholder="请选择材料补差">
|
||||
<el-option v-for="(item, index) in dictData.material_compensation " :key="index"
|
||||
:label="item.name" :value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="送审金额" prop="ssje">
|
||||
<el-input v-model="formData.ssje" clearable placeholder="请输入送审金额" type="number" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="工程师核定价" prop="gcshd" label-width="120px">
|
||||
<el-input v-model="formData.gcshd" clearable placeholder="请输入工程师核定价" type="number" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="核增/核减金额" prop="hzhj" label-width="130px">
|
||||
<el-input v-model="formData.hzhj" clearable placeholder="请输入核增/核减金额" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="人工单价" prop="rg">
|
||||
<el-input v-model="formData.rg" clearable placeholder="请输入人工单价" type="number" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目负责人核定价" prop="xmhd" label-width="160px">
|
||||
<el-input v-model="formData.xmhd" clearable placeholder="请输入项目负责人核定价" type="number" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="部门负责人核定价" prop="bmhd" label-width="140px">
|
||||
<el-input v-model="formData.bmhd" clearable placeholder="请输入部门负责人核定价" type="number" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="审核部核定价" prop="shbhd" label-width="120px">
|
||||
<el-input v-model="formData.shbhd" clearable placeholder="请输入审核部核定价" type="number" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="开工日期" prop="kaigong">
|
||||
<!-- <el-input v-model="formData.kaigong" clearable placeholder="请输入开工日期" /> -->
|
||||
<el-date-picker v-model="formData.kaigong" clearable type="date" class="!flex flex-1"
|
||||
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="竣工日期" prop="jungong">
|
||||
<!-- <el-input v-model="formData.jungong" clearable placeholder="请输入竣工日期" /> -->
|
||||
<el-date-picker v-model="formData.jungong" clearable type="date" value-format="YYYY-MM-DD"
|
||||
class="!flex flex-1" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="备注" prop="bz">
|
||||
<el-input v-model="formData.bz" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="结果文件" prop="result_file">
|
||||
<annexUpload :annex="formData.result_file" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||
@delFile="delFileFn" />
|
||||
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="项目负责人附件" prop="master_annex" label-width="140px">
|
||||
<annexUpload :annex="formData.master_annex" @handleAvatarSuccess="handleAvatarSuccess"
|
||||
@delFile="delFileFn1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="部门负责人附件" prop="bm_annex" label-width="140px">
|
||||
<annexUpload :annex="formData.bm_annex" @handleAvatarSuccess="handleAvatarSuccess2"
|
||||
@delFile="delFileFn2" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="审核部附件" prop="shb_annex">
|
||||
<annexUpload :annex="formData.shb_annex" @handleAvatarSuccess="handleAvatarSuccess3"
|
||||
@delFile="delFileFn3" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||
<cost_project @customEvent="customEvent"></cost_project>
|
||||
</el-dialog>
|
||||
<div v-if="showDialog3">
|
||||
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||
</personnelselector>
|
||||
</div>
|
||||
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="taskHandlingThreeLevelReviewEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiTaskHandlingThreeLevelReviewAdd, apiTaskHandlingThreeLevelReviewEdit, apiTaskHandlingThreeLevelReviewDetail } from '@/api/task_handling_three_level_review'
|
||||
import { apiTaskHandlingThreeLevelReviewAdd, apiTaskHandlingThreeLevelReviewEdit, } from '@/api/task_handling_three_level_review'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
import file from "@/components/material/file.vue";
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
const showDialog = ref(false)
|
||||
const showDialog3 = ref(false)
|
||||
const personnel = ref<any>()
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑任务办理与三级审核' : '新增任务办理与三级审核'
|
||||
return mode.value == 'edit' ? '编辑任务办理与三级审核' : '新增任务办理与三级审核'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
dataid: '',
|
||||
num: '',
|
||||
project: '',
|
||||
project_num: '',
|
||||
task: '',
|
||||
processes: '',
|
||||
rtype: '',
|
||||
zType: '',
|
||||
engineer: '',
|
||||
head: '',
|
||||
examine: '',
|
||||
one: '',
|
||||
two: '',
|
||||
three: '',
|
||||
apptime: '',
|
||||
level: '',
|
||||
area: '',
|
||||
type: '',
|
||||
use: '',
|
||||
construction: '',
|
||||
ask: '',
|
||||
according: '',
|
||||
clbc: '',
|
||||
ssje: '',
|
||||
gcshd: '',
|
||||
hzhj: '',
|
||||
rg: '',
|
||||
xmhd: '',
|
||||
bmhd: '',
|
||||
shbhd: '',
|
||||
kaigong: '',
|
||||
jungong: '',
|
||||
bz: '',
|
||||
result_file: [],
|
||||
master_annex: [],
|
||||
bm_annex: [],
|
||||
shb_annex: [],
|
||||
id: '',
|
||||
dataid: '',
|
||||
num: '',
|
||||
project_id: '',
|
||||
project_name: '',
|
||||
project_num: '',
|
||||
task: '',
|
||||
processes: '',
|
||||
rtype: '',
|
||||
zType: '',
|
||||
engineer: '',
|
||||
head: '',
|
||||
examine: '',
|
||||
one: '',
|
||||
two: '',
|
||||
three: '',
|
||||
apptime: '',
|
||||
level: '',
|
||||
area: '',
|
||||
type: '',
|
||||
use: '',
|
||||
construction: '',
|
||||
ask: '',
|
||||
according: '',
|
||||
clbc: '',
|
||||
ssje: '',
|
||||
gcshd: '',
|
||||
hzhj: '',
|
||||
rg: '',
|
||||
xmhd: '',
|
||||
bmhd: '',
|
||||
shbhd: '',
|
||||
kaigong: '',
|
||||
jungong: '',
|
||||
bz: '',
|
||||
result_file: [],
|
||||
master_annex: [],
|
||||
bm_annex: [],
|
||||
shb_annex: [],
|
||||
projectInfo: {}
|
||||
|
||||
})
|
||||
|
||||
const handleAvatarSuccess_four = (response: any) => {
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.result_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
const delFileFn = (index: number) => { formData.result_file.splice(index, 1) }
|
||||
|
||||
|
||||
|
||||
const handleAvatarSuccess = (response: any) => {
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.master_annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
const delFileFn1 = (index: number) => { formData.master_annex.splice(index, 1) }
|
||||
|
||||
const handleAvatarSuccess2 = (response: any) => {
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.bm_annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
const delFileFn2 = (index: number) => { formData.bm_annex.splice(index, 1) }
|
||||
|
||||
|
||||
const handleAvatarSuccess3 = (response: any) => {
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.shb_annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
const delFileFn3 = (index: number) => { formData.shb_annex.splice(index, 1) }
|
||||
|
||||
//确认
|
||||
const submituser = (e: any) => {
|
||||
formData[tableKey.value] = e.name
|
||||
showDialog3.value = false
|
||||
}
|
||||
|
||||
const tableKey = ref('')
|
||||
//打开弹窗
|
||||
const userclick = async (key) => {
|
||||
tableKey.value = key
|
||||
showDialog3.value = true
|
||||
await nextTick()
|
||||
personnel.value.open()
|
||||
|
||||
}
|
||||
|
||||
const customEvent = (e) => {
|
||||
formData.project_id = e.id
|
||||
formData.project_name = e.project_name
|
||||
formData.project_num = e.project_num
|
||||
showDialog.value = false
|
||||
}
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
@ -202,51 +404,52 @@ const formRules = reactive<any>({
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
formData.project_name = formData.projectInfo?.project_name
|
||||
formData.project_num = formData.projectInfo.project_num
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiTaskHandlingThreeLevelReviewDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
const data = await apiTaskHandlingThreeLevelReviewDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiTaskHandlingThreeLevelReviewEdit(data)
|
||||
: await apiTaskHandlingThreeLevelReviewAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiTaskHandlingThreeLevelReviewEdit(data)
|
||||
: await apiTaskHandlingThreeLevelReviewAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
}
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
emit('close')
|
||||
}
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
})
|
||||
</script>
|
||||
|
@ -1,12 +1,11 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form
|
||||
class="mb-[-16px]"
|
||||
:model="queryParams"
|
||||
inline
|
||||
>
|
||||
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="时间段">
|
||||
<el-date-picker v-model="queryTime" type="daterange" unlink-panels range-separator="-" start-placeholder="开始时间"
|
||||
end-placeholder="结束时间" @change="changeTime" value-format="YYYY-MM-DD" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
@ -20,39 +19,47 @@
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['task_handling_three_level_review/delete']"
|
||||
:disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)"
|
||||
>
|
||||
<el-button v-perms="['task_handling_three_level_review/delete']" :disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="" prop="dataid" show-overflow-tooltip />
|
||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="project" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="project_num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||
<el-table-column label="任务名称" prop="task" show-overflow-tooltip />
|
||||
<el-table-column label="工序" prop="processes" show-overflow-tooltip />
|
||||
<el-table-column label="任务类型" prop="rtype" show-overflow-tooltip />
|
||||
<el-table-column label="专业类型" prop="zType" show-overflow-tooltip />
|
||||
<el-table-column label="任务类型" prop="rtype" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.task_type" :value="row.rtype" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业类型" prop="zType" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.major_type" :value="row.zType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工程师" prop="engineer" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人" prop="head" show-overflow-tooltip />
|
||||
<el-table-column label="审核流程" prop="examine" show-overflow-tooltip />
|
||||
<el-table-column label="审核流程" prop="examine" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.review_process" :value="row.examine" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="一级审核人" prop="one" show-overflow-tooltip />
|
||||
<el-table-column label="二级审核人" prop="two" show-overflow-tooltip />
|
||||
<el-table-column label="三级审核人" prop="three" show-overflow-tooltip />
|
||||
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="任务级次" prop="level" show-overflow-tooltip />
|
||||
<el-table-column label="建筑面积" prop="area" show-overflow-tooltip />
|
||||
<el-table-column label="建筑结构类型" prop="type" show-overflow-tooltip />
|
||||
<!-- <el-table-column label="建筑结构类型" prop="type" show-overflow-tooltip /> -->
|
||||
<el-table-column label="建筑用途" prop="use" show-overflow-tooltip />
|
||||
<el-table-column label="施工单位" prop="construction" show-overflow-tooltip />
|
||||
<el-table-column label="编制要求" prop="ask" show-overflow-tooltip />
|
||||
<el-table-column label="造价依据" prop="according" show-overflow-tooltip />
|
||||
<el-table-column label="材料补差" prop="clbc" show-overflow-tooltip />
|
||||
<!-- <el-table-column label="编制要求" prop="ask" show-overflow-tooltip /> -->
|
||||
<!-- <el-table-column label="造价依据" prop="according" show-overflow-tooltip /> -->
|
||||
<!-- <el-table-column label="材料补差" prop="clbc" show-overflow-tooltip /> -->
|
||||
<el-table-column label="送审金额" prop="ssje" show-overflow-tooltip />
|
||||
<el-table-column label="工程师核定价" prop="gcshd" show-overflow-tooltip />
|
||||
<el-table-column label="核增/核减金额" prop="hzhj" show-overflow-tooltip />
|
||||
@ -66,27 +73,18 @@
|
||||
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
v-perms="['task_handling_three_level_review/edit']"
|
||||
type="primary"
|
||||
link
|
||||
@click="handleEdit(row)"
|
||||
>
|
||||
<el-button v-perms="['task_handling_three_level_review/edit']" type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['task_handling_three_level_review/delete']"
|
||||
type="danger"
|
||||
link
|
||||
@click="handleDelete(row.id)"
|
||||
>
|
||||
<el-button v-perms="['task_handling_three_level_review/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
@ -97,7 +95,7 @@
|
||||
<script lang="ts" setup name="taskHandlingThreeLevelReviewLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiTaskHandlingThreeLevelReviewLists, apiTaskHandlingThreeLevelReviewDelete } from '@/api/task_handling_three_level_review'
|
||||
import { apiTaskHandlingThreeLevelReviewLists, apiTaskHandlingThreeLevelReviewDelete, apiTaskHandlingThreeLevelReviewDetail } from '@/api/task_handling_three_level_review'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
@ -109,9 +107,16 @@ const showEdit = ref(false)
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
|
||||
start_time: "",
|
||||
end_time: ""
|
||||
})
|
||||
|
||||
const queryTime = ref('')
|
||||
const changeTime = () => {
|
||||
queryParams.start_time = queryTime.value[0]
|
||||
queryParams.end_time = queryTime.value[1]
|
||||
}
|
||||
|
||||
// 选中数据
|
||||
const selectData = ref<any[]>([])
|
||||
|
||||
@ -121,7 +126,7 @@ const handleSelectionChange = (val: any[]) => {
|
||||
}
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('')
|
||||
const { dictData } = useDictData('review_process,task_type,building_structure_type,preparation_requirements,cost_sentence,material_compensation,major_type')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
@ -138,10 +143,11 @@ const handleAdd = async () => {
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
let res = await apiTaskHandlingThreeLevelReviewDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
editRef.value?.setFormData(res)
|
||||
}
|
||||
|
||||
// 删除
|
||||
|
Loading…
x
Reference in New Issue
Block a user