This commit is contained in:
zmj 2024-02-27 18:18:14 +08:00
parent 037fc2bf3a
commit 97a3bd2a8a
26 changed files with 2064 additions and 1376 deletions

View File

@ -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/'

View File

@ -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')

View File

@ -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>

View File

@ -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>

View File

@ -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()

View File

@ -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 />

View File

@ -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>

View File

@ -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)
}
//

View File

@ -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">

View File

@ -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>

View File

@ -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({

View File

@ -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')

View File

@ -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)
}
//

View File

@ -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>

View File

@ -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')

View File

@ -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)
}
//

View File

@ -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')

View File

@ -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)
}
//

View File

@ -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')

View File

@ -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)
}
//

View File

@ -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>) => {

View File

@ -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)
}
//

View File

@ -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>

View File

@ -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()

View File

@ -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>

View File

@ -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)
}
//