This commit is contained in:
zmj 2024-03-11 15:48:12 +08:00
parent fc55378f28
commit 2217f5c813
55 changed files with 1294 additions and 297 deletions
src
api
components/dialogTable
views
consult_new_start_project
consult_project
cost_projects
data_report_collection
data_report_commission
data_report_course
data_report_department
data_report_process
data_report_profit
supervision_accept
supervision_check_item
supervision_commencement_report
supervision_company_check
supervision_construction_management_personnel
supervision_dangerous_engineering_case
supervision_dangerous_engineering_eliminate
supervision_dangerous_engineering_monitoring
supervision_device_entry
supervision_diary
supervision_entity_parallel_testing
supervision_excess_risk_security_monitoring
supervision_high_risk_security_monitoring
supervision_inspection
supervision_large_equipment
supervision_large_mechanical_equipment
supervision_material_entry
supervision_material_equipment_info
supervision_meeting_minutes
supervision_project_data_archiving
supervision_project_info_report
supervision_project_milestones
supervision_project_monthly_report
supervision_project_personnel
supervision_safety_management_personnel
supervision_safety_warning_sign
supervision_side_station
supervision_special_operation_personnel
supervision_test_blocks_specimens
supervision_work_contact
stats.html

@ -0,0 +1,26 @@
import request from '@/utils/request'
// 项目咨询--新开工项目管理列表
export function apiConsultNewStartProjectLists(params: any) {
return request.get({ url: '/consult_basic.consult_new_start_project/lists', params })
}
// 添加项目咨询--新开工项目管理
export function apiConsultNewStartProjectAdd(params: any) {
return request.post({ url: '/consult_basic.consult_new_start_project/add', params })
}
// 编辑项目咨询--新开工项目管理
export function apiConsultNewStartProjectEdit(params: any) {
return request.post({ url: '/consult_basic.consult_new_start_project/edit', params })
}
// 删除项目咨询--新开工项目管理
export function apiConsultNewStartProjectDelete(params: any) {
return request.post({ url: '/consult_basic.consult_new_start_project/delete', params })
}
// 项目咨询--新开工项目管理详情
export function apiConsultNewStartProjectDetail(params: any) {
return request.get({ url: '/consult_basic.consult_new_start_project/detail', params })
}

@ -0,0 +1,26 @@
import request from '@/utils/request'
// 项目咨询--基本信息列表
export function apiConsultProjectLists(params: any) {
return request.get({ url: '/consult_basic.consult_project/lists', params })
}
// 添加项目咨询--基本信息
export function apiConsultProjectAdd(params: any) {
return request.post({ url: '/consult_basic.consult_project/add', params })
}
// 编辑项目咨询--基本信息
export function apiConsultProjectEdit(params: any) {
return request.post({ url: '/consult_basic.consult_project/edit', params })
}
// 删除项目咨询--基本信息
export function apiConsultProjectDelete(params: any) {
return request.post({ url: '/consult_basic.consult_project/delete', params })
}
// 项目咨询--基本信息详情
export function apiConsultProjectDetail(params: any) {
return request.get({ url: '/consult_basic.consult_project/detail', params })
}

@ -2,20 +2,22 @@ import request from '@/utils/request'
export function cost_approved_project_list(params: any) {
return request.post({ url: '/cost_consultation_report/cost_approved_project_list', params })
return request.get({ url: '/cost_consultation_report/cost_approved_project_list', params })
}
// 获取首页文章数据
export function cost_project_report(params?: any) {
return request.get({ url: '/cost_consultation_report/cost_project_report', params })
}
// 底部导航详情
export function project_trace(params?: any) {
return request.get({ url: '/cost_consultation_report/project_trace', params })
}
// 底部导航保存
export function setDecorateTabbar(params: any) {
return request.post({ url: '/decorate.tabbar/save', params })
export function apiproject_invoice_receipt(params?: any) {
return request.get({ url: '/cost_consultation_report/project_invoice_receipt', params })
}
export function apidistribution_project_departments(params?: any) {
return request.get({ url: '/cost_consultation_report/distribution_project_departments', params })
}

@ -22,6 +22,7 @@ import { apiSupervisionParticipatingUnitsQualificationsLists } from '@/api/super
import { apiCostApprovedProjectLists } from '@/api/cost_approved_project'
import { apiCostProjectLists } from '@/api/cost_project'
import { apiTaskTypeLists } from '@/api/task_type'
import {apiSupervisionMaterialEquipmentInfoLists}from "@/api/supervision_material_equipment_info"
@ -201,7 +202,7 @@ export const supervision_material_entry:Iconfig = {
}
export const supervision_material_equipment_info:Iconfig = {
fetchFn: apiSupervisionMaterialEntryLists,
fetchFn: apiSupervisionMaterialEquipmentInfoLists,
serchList: [
{
label: '材料/设备名称',
@ -213,15 +214,30 @@ export const supervision_material_equipment_info:Iconfig = {
},
{
label:"合同约定品牌",
value:'brand',
value:'contract_brand',
select:[
{
name:"否",
value:"0"
value:0
},
{
name:"是",
value:"1"
value:1
},
]
},
{
label:"类型",
value:'type',
select:[
{
name:"材料",
value:0
},
{
name:"设备",
value:1
},
]
@ -254,7 +270,7 @@ export const supervision_participating_units_qualifications:Iconfig = {
],
tableList: [
{ project_name: "项目名称" },
{ company_id: "所属单位" },
{ company_name: "所属单位" },
{ qualification_name: "资质名称" },
{ qualification_number: "资质编号" },
{ get_date: "发证日期" },

@ -0,0 +1,307 @@
<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="项目id" prop="project_id">
<el-input v-model="formData.project_id" clearable placeholder="请输入项目id" />
</el-form-item>
<el-form-item label="工程地点" prop="address">
<el-input v-model="formData.address" clearable placeholder="请输入工程地点" />
</el-form-item>
<el-form-item label="服务范围" prop="service_scope">
<el-input v-model="formData.service_scope" 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="invest">
<el-input v-model="formData.invest" clearable placeholder="请输入投资(万元)" />
</el-form-item>
<el-form-item label="基础类型" prop="basic_type">
<el-input v-model="formData.basic_type" clearable placeholder="请输入基础类型" />
</el-form-item>
<el-form-item label="工期" prop="duration">
<el-input v-model="formData.duration" clearable placeholder="请输入工期" />
</el-form-item>
<el-form-item label="结构类型" prop="structure_type">
<el-input v-model="formData.structure_type" clearable placeholder="请输入结构类型" />
</el-form-item>
<el-form-item label="地上层数" prop="land_floors">
<el-input v-model="formData.land_floors" clearable placeholder="请输入地上层数" />
</el-form-item>
<el-form-item label="地下层数" prop="underground_floors">
<el-input v-model="formData.underground_floors" clearable placeholder="请输入地下层数" />
</el-form-item>
<el-form-item label="业主单位" prop="owner_unit">
<el-input v-model="formData.owner_unit" clearable placeholder="请输入业主单位" />
</el-form-item>
<el-form-item label="业主单位联系人及电话" prop="owner_unit_contact">
<el-input v-model="formData.owner_unit_contact" clearable placeholder="请输入业主单位联系人及电话" />
</el-form-item>
<el-form-item label="设计单位" prop="design_unit">
<el-input v-model="formData.design_unit" clearable placeholder="请输入设计单位" />
</el-form-item>
<el-form-item label="设计单位联系人及电话" prop="design_unit_contact">
<el-input v-model="formData.design_unit_contact" clearable placeholder="请输入设计单位联系人及电话" />
</el-form-item>
<el-form-item label="勘察单位" prop="survey_unit">
<el-input v-model="formData.survey_unit" clearable placeholder="请输入勘察单位" />
</el-form-item>
<el-form-item label="勘察单位联系人及电话" prop="survey_unit_contact">
<el-input v-model="formData.survey_unit_contact" clearable placeholder="请输入勘察单位联系人及电话" />
</el-form-item>
<el-form-item label="施工单位" prop="build_unit">
<el-input v-model="formData.build_unit" clearable placeholder="请输入施工单位" />
</el-form-item>
<el-form-item label="施工单位联系人及电话" prop="build_unit_contact">
<el-input v-model="formData.build_unit_contact" clearable placeholder="请输入施工单位联系人及电话" />
</el-form-item>
<el-form-item label="项目经理" prop="project_manager">
<el-input v-model="formData.project_manager" clearable placeholder="请输入项目经理" />
</el-form-item>
<el-form-item label="项目副经理" prop="deputy_project_manager">
<el-input v-model="formData.deputy_project_manager" 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="content">
<el-input v-model="formData.content" 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-form>
</popup>
</div>
</template>
<script lang="ts" setup name="consultNewStartProjectEdit">
import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import { apiConsultNewStartProjectAdd, apiConsultNewStartProjectEdit, apiConsultNewStartProjectDetail } from '@/api/consult_new_start_project'
import { timeFormat } from '@/utils/util'
import type { PropType } from 'vue'
defineProps({
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 popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑项目咨询--新开工项目管理' : '新增项目咨询--新开工项目管理'
})
//
const formData = reactive({
id: '',
project_id: '',
address: '',
service_scope: '',
area: '',
invest: '',
basic_type: '',
duration: '',
structure_type: '',
land_floors: '',
underground_floors: '',
owner_unit: '',
owner_unit_contact: '',
design_unit: '',
design_unit_contact: '',
survey_unit: '',
survey_unit_contact: '',
build_unit: '',
build_unit_contact: '',
project_manager: '',
deputy_project_manager: '',
engineer: '',
content: '',
create_user: '',
})
//
const formRules = reactive<any>({
project_id: [{
required: true,
message: '请输入项目id',
trigger: ['blur']
}],
address: [{
required: true,
message: '请输入工程地点',
trigger: ['blur']
}],
service_scope: [{
required: true,
message: '请输入服务范围',
trigger: ['blur']
}],
area: [{
required: true,
message: '请输入建筑面积',
trigger: ['blur']
}],
invest: [{
required: true,
message: '请输入投资(万元)',
trigger: ['blur']
}],
basic_type: [{
required: true,
message: '请输入基础类型',
trigger: ['blur']
}],
duration: [{
required: true,
message: '请输入工期',
trigger: ['blur']
}],
structure_type: [{
required: true,
message: '请输入结构类型',
trigger: ['blur']
}],
land_floors: [{
required: true,
message: '请输入地上层数',
trigger: ['blur']
}],
underground_floors: [{
required: true,
message: '请输入地下层数',
trigger: ['blur']
}],
owner_unit: [{
required: true,
message: '请输入业主单位',
trigger: ['blur']
}],
owner_unit_contact: [{
required: true,
message: '请输入业主单位联系人及电话',
trigger: ['blur']
}],
design_unit: [{
required: true,
message: '请输入设计单位',
trigger: ['blur']
}],
design_unit_contact: [{
required: true,
message: '请输入设计单位联系人及电话',
trigger: ['blur']
}],
survey_unit: [{
required: true,
message: '请输入勘察单位',
trigger: ['blur']
}],
survey_unit_contact: [{
required: true,
message: '请输入勘察单位联系人及电话',
trigger: ['blur']
}],
build_unit: [{
required: true,
message: '请输入施工单位',
trigger: ['blur']
}],
build_unit_contact: [{
required: true,
message: '请输入施工单位联系人及电话',
trigger: ['blur']
}],
project_manager: [{
required: true,
message: '请输入项目经理',
trigger: ['blur']
}],
deputy_project_manager: [{
required: true,
message: '请输入项目副经理',
trigger: ['blur']
}],
engineer: [{
required: true,
message: '请输入专业工程师',
trigger: ['blur']
}],
content: [{
required: true,
message: '请输入其他事项情况说明',
trigger: ['blur']
}],
create_user: [{
required: true,
message: '请输入填表人',
trigger: ['blur']
}]
})
//
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]
}
}
}
const getDetail = async (row: Record<string, any>) => {
const data = await apiConsultNewStartProjectDetail({
id: row.id
})
setFormData(data)
}
//
const handleSubmit = async () => {
await formRef.value?.validate()
const data = { ...formData, }
mode.value == 'edit'
? await apiConsultNewStartProjectEdit(data)
: await apiConsultNewStartProjectAdd(data)
popupRef.value?.close()
emit('success')
}
//
const open = (type = 'add') => {
mode.value = type
popupRef.value?.open()
}
//
const handleClose = () => {
emit('close')
}
defineExpose({
open,
setFormData,
getDetail
})
</script>

@ -0,0 +1,147 @@
<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="address">
<el-input class="w-[280px]" v-model="queryParams.address" clearable placeholder="请输入工程地点" />
</el-form-item>
<el-form-item label="服务范围" prop="service_scope">
<el-input class="w-[280px]" v-model="queryParams.service_scope" clearable placeholder="请输入服务范围" />
</el-form-item>
<el-form-item label="基础类型" prop="basic_type">
<el-input class="w-[280px]" v-model="queryParams.basic_type" clearable placeholder="请输入基础类型" />
</el-form-item>
<el-form-item label="工期" prop="duration">
<el-input class="w-[280px]" v-model="queryParams.duration" 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="['consult_basic.consult_new_start_project/add']" type="primary" @click="handleAdd">
<template #icon>
<icon name="el-icon-Plus" />
</template>
新增
</el-button>
<el-button
v-perms="['consult_basic.consult_new_start_project/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="address" show-overflow-tooltip />
<el-table-column label="服务范围" prop="service_scope" show-overflow-tooltip />
<el-table-column label="建筑面积" prop="area" show-overflow-tooltip />
<el-table-column label="投资(万元)" prop="invest" show-overflow-tooltip />
<el-table-column label="基础类型" prop="basic_type" show-overflow-tooltip />
<el-table-column label="工期" prop="duration" show-overflow-tooltip />
<el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }">
<el-button
v-perms="['consult_basic.consult_new_start_project/edit']"
type="primary"
link
@click="handleEdit(row)"
>
编辑
</el-button>
<el-button
v-perms="['consult_basic.consult_new_start_project/delete']"
type="danger"
link
@click="handleDelete(row.id)"
>
删除
</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>
</template>
<script lang="ts" setup name="consultNewStartProjectLists">
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
import { apiConsultNewStartProjectLists, apiConsultNewStartProjectDelete } from '@/api/consult_new_start_project'
import { timeFormat } from '@/utils/util'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
//
const showEdit = ref(false)
//
const queryParams = reactive({
project_id: '',
address: '',
service_scope: '',
basic_type: '',
duration: ''
})
//
const selectData = ref<any[]>([])
//
const handleSelectionChange = (val: any[]) => {
selectData.value = val.map(({ id }) => id)
}
//
const { dictData } = useDictData('')
//
const { pager, getLists, resetParams, resetPage } = usePaging({
fetchFun: apiConsultNewStartProjectLists,
params: queryParams
})
//
const handleAdd = async () => {
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)
}
//
const handleDelete = async (id: number | any[]) => {
await feedback.confirm('确定要删除?')
await apiConsultNewStartProjectDelete({ id })
getLists()
}
getLists()
</script>

@ -0,0 +1,363 @@
<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="project_name">
<el-input v-model="formData.project_name" clearable placeholder="请输入项目名称" />
</el-form-item>
<el-form-item label="项目编号" prop="project_code">
<el-input v-model="formData.project_code" 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="nature">
<el-input v-model="formData.nature" clearable placeholder="请输入性质" />
</el-form-item>
<el-form-item label="委托单位" prop="company">
<el-input v-model="formData.company" clearable placeholder="请输入委托单位" />
</el-form-item>
<el-form-item label="建设区域" prop="build_area">
<el-input v-model="formData.build_area" clearable placeholder="请输入建设区域" />
</el-form-item>
<el-form-item label="项目地址" prop="address">
<el-input v-model="formData.address" clearable placeholder="请输入项目地址" />
</el-form-item>
<el-form-item label="项目级别" prop="project_level">
<el-input v-model="formData.project_level" clearable placeholder="请输入项目级别" />
</el-form-item>
<el-form-item label="总投资(万元)" prop="total_investment">
<el-input v-model="formData.total_investment" clearable placeholder="请输入总投资(万元)" />
</el-form-item>
<el-form-item label="立项日期" prop="initiation_date">
<el-input v-model="formData.initiation_date" clearable placeholder="请输入立项日期" />
</el-form-item>
<el-form-item label="关联合同" prop="contract">
<el-input v-model="formData.contract" clearable placeholder="请输入关联合同" />
</el-form-item>
<el-form-item label="合同金额" prop="contract_amount">
<el-input v-model="formData.contract_amount" clearable placeholder="请输入合同金额" />
</el-form-item>
<el-form-item label="合同服务内容" prop="contract_content">
<el-input v-model="formData.contract_content" clearable placeholder="请输入合同服务内容" />
</el-form-item>
<el-form-item label="项目规模及概况" prop="project_overview">
<el-input v-model="formData.project_overview" clearable placeholder="请输入项目规模及概况" />
</el-form-item>
<el-form-item label="咨询范围" prop="consult_content">
<el-input v-model="formData.consult_content" clearable placeholder="请输入咨询范围" />
</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="consult_start_date">
<el-input v-model="formData.consult_start_date" clearable placeholder="请输入咨询开始日期" />
</el-form-item>
<el-form-item label="咨询结束日期" prop="consult_end_date">
<el-input v-model="formData.consult_end_date" clearable placeholder="请输入咨询结束日期" />
</el-form-item>
<el-form-item label="工程状态" prop="engineering_status">
<el-input v-model="formData.engineering_status" clearable placeholder="请输入工程状态" />
</el-form-item>
<el-form-item label="咨询类型" prop="consult_type">
<el-input v-model="formData.consult_type" clearable placeholder="请输入咨询类型" />
</el-form-item>
<el-form-item label="联系电话" prop="telephone">
<el-input v-model="formData.telephone" clearable placeholder="请输入联系电话" />
</el-form-item>
<el-form-item label="委托联系人" prop="consult_user">
<el-input v-model="formData.consult_user" clearable placeholder="请输入委托联系人" />
</el-form-item>
<el-form-item label="监管部门" prop="supervision_department">
<el-input v-model="formData.supervision_department" clearable placeholder="请输入监管部门" />
</el-form-item>
<el-form-item label="实施部门" prop="implementation_department">
<el-input v-model="formData.implementation_department" clearable placeholder="请输入实施部门" />
</el-form-item>
<el-form-item label="项目部" prop="project_department">
<el-input v-model="formData.project_department" clearable placeholder="请输入项目部" />
</el-form-item>
<el-form-item label="项目负责人员" prop="project_manager">
<el-input v-model="formData.project_manager" clearable placeholder="请输入项目负责人员" />
</el-form-item>
<el-form-item label="甲方单位" prop="part_a_unit">
<el-input v-model="formData.part_a_unit" clearable placeholder="请输入甲方单位" />
</el-form-item>
<el-form-item label="项目归档" prop="project_archiving">
<el-input v-model="formData.project_archiving" clearable placeholder="请输入项目归档" />
</el-form-item>
<el-form-item label="归档目录" prop="archiving_directory">
<el-input v-model="formData.archiving_directory" 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-form>
</popup>
</div>
</template>
<script lang="ts" setup name="consultProjectEdit">
import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import { apiConsultProjectAdd, apiConsultProjectEdit, apiConsultProjectDetail } from '@/api/consult_project'
import { timeFormat } from '@/utils/util'
import type { PropType } from 'vue'
defineProps({
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 popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑项目咨询--基本信息' : '新增项目咨询--基本信息'
})
//
const formData = reactive({
id: '',
project_name: '',
project_code: '',
industry: '',
nature: '',
company: '',
build_area: '',
address: '',
project_level: '',
total_investment: '',
initiation_date: '',
contract: '',
contract_amount: '',
contract_content: '',
project_overview: '',
consult_content: '',
remark: '',
consult_start_date: '',
consult_end_date: '',
engineering_status: '',
consult_type: '',
telephone: '',
consult_user: '',
supervision_department: '',
implementation_department: '',
project_department: '',
project_manager: '',
part_a_unit: '',
project_archiving: '',
archiving_directory: '',
annex: '',
create_user: '',
})
//
const formRules = reactive<any>({
project_name: [{
required: true,
message: '请输入项目名称',
trigger: ['blur']
}],
project_code: [{
required: true,
message: '请输入项目编号',
trigger: ['blur']
}],
industry: [{
required: true,
message: '请输入行业',
trigger: ['blur']
}],
nature: [{
required: true,
message: '请输入性质',
trigger: ['blur']
}],
company: [{
required: true,
message: '请输入委托单位',
trigger: ['blur']
}],
build_area: [{
required: true,
message: '请输入建设区域',
trigger: ['blur']
}],
address: [{
required: true,
message: '请输入项目地址',
trigger: ['blur']
}],
project_level: [{
required: true,
message: '请输入项目级别',
trigger: ['blur']
}],
total_investment: [{
required: true,
message: '请输入总投资(万元)',
trigger: ['blur']
}],
initiation_date: [{
required: true,
message: '请输入立项日期',
trigger: ['blur']
}],
contract: [{
required: true,
message: '请输入关联合同',
trigger: ['blur']
}],
contract_amount: [{
required: true,
message: '请输入合同金额',
trigger: ['blur']
}],
contract_content: [{
required: true,
message: '请输入合同服务内容',
trigger: ['blur']
}],
project_overview: [{
required: true,
message: '请输入项目规模及概况',
trigger: ['blur']
}],
consult_content: [{
required: true,
message: '请输入咨询范围',
trigger: ['blur']
}],
remark: [{
required: true,
message: '请输入备注',
trigger: ['blur']
}],
consult_start_date: [{
required: true,
message: '请输入咨询开始日期',
trigger: ['blur']
}],
consult_end_date: [{
required: true,
message: '请输入咨询结束日期',
trigger: ['blur']
}],
engineering_status: [{
required: true,
message: '请输入工程状态',
trigger: ['blur']
}],
consult_type: [{
required: true,
message: '请输入咨询类型',
trigger: ['blur']
}],
telephone: [{
required: true,
message: '请输入联系电话',
trigger: ['blur']
}],
consult_user: [{
required: true,
message: '请输入委托联系人',
trigger: ['blur']
}],
supervision_department: [{
required: true,
message: '请输入监管部门',
trigger: ['blur']
}],
implementation_department: [{
required: true,
message: '请输入实施部门',
trigger: ['blur']
}],
project_department: [{
required: true,
message: '请输入项目部',
trigger: ['blur']
}],
project_manager: [{
required: true,
message: '请输入项目负责人员',
trigger: ['blur']
}],
part_a_unit: [{
required: true,
message: '请输入甲方单位',
trigger: ['blur']
}],
archiving_directory: [{
required: true,
message: '请输入归档目录',
trigger: ['blur']
}],
create_user: [{
required: true,
message: '请输入创建人',
trigger: ['blur']
}]
})
//
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]
}
}
}
const getDetail = async (row: Record<string, any>) => {
const data = await apiConsultProjectDetail({
id: row.id
})
setFormData(data)
}
//
const handleSubmit = async () => {
await formRef.value?.validate()
const data = { ...formData, }
mode.value == 'edit'
? await apiConsultProjectEdit(data)
: await apiConsultProjectAdd(data)
popupRef.value?.close()
emit('success')
}
//
const open = (type = 'add') => {
mode.value = type
popupRef.value?.open()
}
//
const handleClose = () => {
emit('close')
}
defineExpose({
open,
setFormData,
getDetail
})
</script>

@ -0,0 +1,146 @@
<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_name">
<el-input class="w-[280px]" v-model="queryParams.project_name" clearable placeholder="请输入项目名称" />
</el-form-item>
<el-form-item label="项目编号" prop="project_code">
<el-input class="w-[280px]" v-model="queryParams.project_code" clearable placeholder="请输入项目编号" />
</el-form-item>
<el-form-item label="委托单位" prop="company">
<el-input class="w-[280px]" v-model="queryParams.company" clearable placeholder="请输入委托单位" />
</el-form-item>
<el-form-item label="关联合同" prop="contract">
<el-input class="w-[280px]" v-model="queryParams.contract" 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="['consult_basic.consult_project/add']" type="primary" @click="handleAdd">
<template #icon>
<icon name="el-icon-Plus" />
</template>
新增
</el-button>
<el-button
v-perms="['consult_basic.consult_project/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_name" show-overflow-tooltip />
<el-table-column label="项目编号" prop="project_code" show-overflow-tooltip />
<el-table-column label="委托单位" prop="company" show-overflow-tooltip />
<el-table-column label="总投资(万元)" prop="total_investment" show-overflow-tooltip />
<el-table-column label="关联合同" prop="contract" show-overflow-tooltip />
<el-table-column label="工程状态" prop="engineering_status" show-overflow-tooltip />
<el-table-column label="咨询类型" prop="consult_type" show-overflow-tooltip />
<el-table-column label="监管部门" prop="supervision_department" show-overflow-tooltip />
<el-table-column label="实施部门" prop="implementation_department" show-overflow-tooltip />
<el-table-column label="项目负责人员" prop="project_manager" show-overflow-tooltip />
<el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }">
<el-button
v-perms="['consult_basic.consult_project/edit']"
type="primary"
link
@click="handleEdit(row)"
>
编辑
</el-button>
<el-button
v-perms="['consult_basic.consult_project/delete']"
type="danger"
link
@click="handleDelete(row.id)"
>
删除
</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>
</template>
<script lang="ts" setup name="consultProjectLists">
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
import { apiConsultProjectLists, apiConsultProjectDelete } from '@/api/consult_project'
import { timeFormat } from '@/utils/util'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
//
const showEdit = ref(false)
//
const queryParams = reactive({
project_name: '',
project_code: '',
company: '',
contract: ''
})
//
const selectData = ref<any[]>([])
//
const handleSelectionChange = (val: any[]) => {
selectData.value = val.map(({ id }) => id)
}
//
const { dictData } = useDictData('')
//
const { pager, getLists, resetParams, resetPage } = usePaging({
fetchFun: apiConsultProjectLists,
params: queryParams
})
//
const handleAdd = async () => {
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)
}
//
const handleDelete = async (id: number | any[]) => {
await feedback.confirm('确定要删除?')
await apiConsultProjectDelete({ id })
getLists()
}
getLists()
</script>

@ -261,7 +261,9 @@ const formData = reactive({
jhgq: '',
depar: '',
principal: '',
principal_id: '',
person: '',
person_id: '',
invest: '',
budget: '',
cost: '',
@ -413,7 +415,7 @@ const open = (type = 'add') => {
//
const userclick = async (e: any) => {
e == 'person' ? persoleType.value = 2 : persoleType.value = 1
label.value = e
// label.value = e
showDialog1.value = true
await nextTick()
personnel.value.open()
@ -426,8 +428,21 @@ const persoleType = ref('1')
const submituser = (e: any) => {
let flag = Array.isArray(e)
let personl;
let personl_id;
personl = (flag ? (e.map(item => [item.name])).join(',') : e.name)
formData[label.value] = personl
personl_id = (flag ? (e.map(item => [item.id])).join(',') : e.id)
console.log(personl_id, 'personl_id')
if (flag) {
formData.person = personl;
formData.person_id = personl_id
} else {
formData.principal = personl
formData.principal_id = personl_id
}
// formData.person_id = (flag ? (e.map(item => [item.id])).join(',') : e.id)
// formData[label.value] = personl
showDialog1.value = false
}

@ -2,20 +2,17 @@
<div>
<el-card class="!border-none mb-4" shadow="never">
<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 label="单位名称" prop="aunit">
<el-input class="w-[280px]" v-model="queryParams.aunit" clearable placeholder="请输入单位名称" />
</el-form-item>
<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-input class="w-[280px]" v-model="queryParams.project_name" clearable placeholder="请输入项目名称" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
<export-data class="ml-2.5" :fetch-fun="apiJianliProjectProgressReportLists" :params="queryParams"
<export-data class="ml-2.5" :fetch-fun="apiproject_invoice_receipt" :params="queryParams"
:page-size="pager.size" />
</el-form-item>
</el-form>
@ -24,21 +21,13 @@
<div class="mt-4">
<el-table :data="pager.lists">
<el-table-column type="selection" width="55" />
<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="bm_master" show-overflow-tooltip />
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
<el-table-column label="项目负责人" prop="xm_master" 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="duration" show-overflow-tooltip />
<el-table-column label="工时" prop="working_hours" show-overflow-tooltip />
<el-table-column label="累计已完成进度(%" prop="done_progress" show-overflow-tooltip />
<el-table-column label="本阶段完成进度(%)" prop="bjd_progress" show-overflow-tooltip />
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
<el-table-column label="登记时间" prop="apptime" show-overflow-tooltip />
<el-table-column label="形象进度描述" prop="jdms" show-overflow-tooltip />
<el-table-column label="项目编号" prop="project_num" show-overflow-tooltip />
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
<el-table-column label="合同名称" prop="cost_project_contract" show-overflow-tooltip />
<el-table-column label="所属部门" prop="depar" show-overflow-tooltip />
<el-table-column label="项目负责人" prop="" show-overflow-tooltip />
<el-table-column label="开票金额" prop="has_invoice_amount" show-overflow-tooltip />
<el-table-column label="收款金额" prop="amount_Collected" show-overflow-tooltip />
</el-table>
</div>
<div class="flex justify-end mt-4">
@ -51,17 +40,16 @@
<script lang="ts" setup name="jianliProjectProgressReportLists">
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
import { apiJianliProjectProgressReportLists, apiJianliProjectProgressReportDelete, apiJianliProjectProgressReportDetail } from '@/api/jianli_project_progress_report'
// import { apiJianliProjectProgressReportLists, apiJianliProjectProgressReportDelete, apiJianliProjectProgressReportDetail } from '@/api/jianli_project_progress_report'
import { apiproject_invoice_receipt } from '@/api/data_report'
//
//
const queryParams = reactive({
num: '',
project: '',
project_num: '',
datas: '',
project_name: '',
aunit: '',
})
//
@ -72,7 +60,7 @@ const { dictData } = useDictData('')
//
const { pager, getLists, resetParams, resetPage } = usePaging({
fetchFun: apiJianliProjectProgressReportLists,
fetchFun: apiproject_invoice_receipt,
params: queryParams
})
@ -81,4 +69,3 @@ const { pager, getLists, resetParams, resetPage } = usePaging({
getLists()
</script>

@ -24,21 +24,19 @@
<div class="mt-4">
<el-table :data="pager.lists">
<el-table-column type="selection" width="55" />
<el-table-column label="单据编号" prop="num" 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="bm_master" show-overflow-tooltip />
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
<el-table-column label="项目负责人" prop="xm_master" 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="duration" show-overflow-tooltip />
<el-table-column label="工时" prop="working_hours" show-overflow-tooltip />
<el-table-column label="累计已完成进度(%" prop="done_progress" show-overflow-tooltip />
<el-table-column label="本阶段完成进度(%)" prop="bjd_progress" show-overflow-tooltip />
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
<el-table-column label="登记时间" prop="apptime" show-overflow-tooltip />
<el-table-column label="形象进度描述" prop="jdms" show-overflow-tooltip />
<el-table-column label="所属合同" prop="projectInfo.project_num" show-overflow-tooltip />
<el-table-column label="任务名称" prop="bm_master" show-overflow-tooltip />
<el-table-column label="任务类型" prop="wt_unit" show-overflow-tooltip />
<el-table-column label="专业" prop="xm_master" 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="duration" show-overflow-tooltip />
<el-table-column label="提成比例" prop="working_hours" show-overflow-tooltip />
<el-table-column label="其他加减项" prop="done_progress" show-overflow-tooltip />
<el-table-column label="应提成金额" prop="bjd_progress" show-overflow-tooltip />
<el-table-column label="累计支付金额" prop="djr" show-overflow-tooltip />
</el-table>
</div>
<div class="flex justify-end mt-4">
@ -81,4 +79,3 @@ const { pager, getLists, resetParams, resetPage } = usePaging({
getLists()
</script>

@ -36,7 +36,8 @@
{{ row.data_reception_status ? '已开始' : "未开始" }}
</template>
</el-table-column>
<el-table-column label="资料归档状态" prop="task_handling_three_level_review_status" show-overflow-tooltip>
<el-table-column label="资料归档状态" prop="task_handling_three_level_review_status"
show-overflow-tooltip>
<template #default="{ row }">
{{ row.task_handling_three_level_review_status ? '已上传' : "未上传" }}
</template>
@ -86,4 +87,3 @@ const { pager, getLists, resetParams, resetPage } = usePaging({
getLists()
</script>

@ -23,14 +23,13 @@
<script lang="ts" setup name="">
import * as echarts from 'echarts';
import { apistatisticsprojectInitiation } from '@/api/statistics'
import { ref, reactive, onMounted } from "vue"
import { apidistribution_project_departments } from '@/api/data_report'
var chartDom: any;
var option: any;
var myChart: any
const showChart = ref(true)
const chartWitdth = ref(500)
const chartHeight = ref(800)
const chartType = ref(3)
@ -176,7 +175,8 @@ option = option3
const getData = async () => {
let res = await apistatisticsprojectInitiation()
let res = await apidistribution_project_departments()
console.log(res, 'res')
// // option = option1
// // option = option2
// option = option3

@ -24,21 +24,27 @@
<div class="mt-4">
<el-table :data="pager.lists">
<el-table-column type="selection" width="55" />
<el-table-column label="单据编号" prop="num" 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="bm_master" show-overflow-tooltip />
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
<el-table-column label="关联合同" prop="projectInfo.project_num" show-overflow-tooltip />
<el-table-column label="咨询类型" prop="bm_master" show-overflow-tooltip />
<el-table-column label="行业" prop="wt_unit" show-overflow-tooltip />
<el-table-column label="项目负责人" prop="xm_master" 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="duration" show-overflow-tooltip />
<el-table-column label="工时" prop="working_hours" show-overflow-tooltip />
<el-table-column label="累计已完成进度(%" prop="done_progress" show-overflow-tooltip />
<el-table-column label="本阶段完成进度(%)" prop="bjd_progress" show-overflow-tooltip />
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
<el-table-column label="登记时间" prop="apptime" show-overflow-tooltip />
<el-table-column label="形象进度描述" prop="jdms" 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="duration" show-overflow-tooltip />
<el-table-column label="进度状态" prop="working_hours" show-overflow-tooltip />
<el-table-column label="计划进度" prop="working_hours" show-overflow-tooltip>
<el-table-column label="计划开始日期" prop="done_progress" show-overflow-tooltip />
<el-table-column label="计划结束日期" prop="bjd_progress" show-overflow-tooltip />
<el-table-column label="计划工期(天)" prop="djr" show-overflow-tooltip />
</el-table-column>
<el-table-column label="实际进度" prop="working_hours" show-overflow-tooltip>
<el-table-column label="实际开始日期" prop="done_progress" show-overflow-tooltip />
<el-table-column label="实际结束日期" prop="bjd_progress" show-overflow-tooltip />
<el-table-column label="实际工期(天)" prop="djr" show-overflow-tooltip />
<el-table-column label="已完成进度(%" prop="djr" show-overflow-tooltip />
</el-table-column>
</el-table>
</div>
<div class="flex justify-end mt-4">
@ -81,4 +87,3 @@ const { pager, getLists, resetParams, resetPage } = usePaging({
getLists()
</script>

@ -24,21 +24,12 @@
<div class="mt-4">
<el-table :data="pager.lists">
<el-table-column type="selection" width="55" />
<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="bm_master" show-overflow-tooltip />
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
<el-table-column label="项目负责人" prop="xm_master" 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="duration" show-overflow-tooltip />
<el-table-column label="工时" prop="working_hours" show-overflow-tooltip />
<el-table-column label="累计已完成进度(%" prop="done_progress" show-overflow-tooltip />
<el-table-column label="本阶段完成进度(%)" prop="bjd_progress" show-overflow-tooltip />
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
<el-table-column label="登记时间" prop="apptime" show-overflow-tooltip />
<el-table-column label="形象进度描述" prop="jdms" 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="bm_master" show-overflow-tooltip />
<el-table-column label="费用报销" prop="wt_unit" show-overflow-tooltip />
<el-table-column label="毛利润" prop="xm_master" show-overflow-tooltip />
</el-table>
</div>
<div class="flex justify-end mt-4">
@ -81,4 +72,3 @@ const { pager, getLists, resetParams, resetPage } = usePaging({
getLists()
</script>

@ -17,7 +17,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="验收类型" prop="accept_type">
<el-select class="flex-1" v-model="formData.accept_type" clearable placeholder="请输入巡视类型">
<el-select class="flex-1" v-model="formData.accept_type" clearable placeholder="请选择巡视类型">
<el-option v-for="(item, index) in dictData.accept_type" :key="index" :label="item.name"
:value="item.value" />
</el-select>
@ -37,8 +37,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="验收位置" prop="accept_position">
<el-input v-model="formData.accept_position" clearable placeholder="请输入施工人数"
type="number" />
<el-input v-model="formData.accept_position" clearable placeholder="请输入施工人数" />
</el-form-item>
</el-col>
@ -74,7 +73,7 @@
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" clearable placeholder="请输入创建人" />
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
</el-col>
<el-col :span="8">

@ -6,7 +6,10 @@
<el-input class="w-[280px]" v-model="queryParams.accept_code" clearable placeholder="请输入验收编号" />
</el-form-item>
<el-form-item label="验收类型" prop="accept_type">
<el-input class="w-[280px]" v-model="queryParams.accept_type" clearable placeholder="请输入验收类型" />
<el-select class="flex-1" v-model="queryParams.accept_type" clearable placeholder="请选择巡视类型">
<el-option v-for="(item, index) in dictData.accept_type" :key="index" :label="item.name"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
@ -183,4 +186,3 @@ const handleAccept = async (row: Object | any[]) => {
getLists()
</script>

@ -50,7 +50,10 @@
</el-form-item>
</el-col>
</el-row>
<div style="margin-bottom: 30px;">检查项</div>
<div>
检查项
<el-button @click="handleAdd()" v-if="!formData.check_item_detail.length">+</el-button>
</div>
<div style="margin-bottom: 30px;">
<el-table :data="formData.check_item_detail">
<el-table-column label="序号" width="150px">
@ -164,7 +167,6 @@ const handleAdd = () => {
const handleDelete = async (row: any) => {
if (formData.check_item_detail.length == 1) return
if (row.id) {
await apisupervision_check_item_detail_delete({ id: row.id })
}

@ -34,7 +34,7 @@
<template #default="{ row }">
<div v-if="row.annex && row.annex.length > 0">
<div v-for="(item, i) in row.annex " :key='i'>
<el-link :href="item" target="_blank">文件{{ i + 1 }}查看</el-link>
<el-link :href="item.uri" target="_blank">文件{{ i + 1 }}查看</el-link>
</div>
</div>
<div v-else>
@ -125,4 +125,3 @@ const handleDelete = async (id: number | any[]) => {
getLists()
</script>

@ -34,7 +34,7 @@
<el-table-column type="selection" width="55" />
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
<el-table-column label="检查名称" prop="name" show-overflow-tooltip />
<el-table-column label="检查日期" prop="data" show-overflow-tooltip />
<el-table-column label="检查日期" prop="date" show-overflow-tooltip />
<el-table-column label="检查人" prop="user" show-overflow-tooltip />
<el-table-column label="问题名称" prop="problem_name" show-overflow-tooltip />
<el-table-column label="问题类型" prop="problem_type" show-overflow-tooltip />

@ -24,7 +24,7 @@
<el-row>
<el-col :span="8">
<el-form-item label="创建人">
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />
<el-input v-model="formData.create_user_name" clearable placeholder="请输入创建人" />
</el-form-item>
</el-col>
@ -127,7 +127,7 @@
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
</el-col>
<el-col :span="8">
@ -211,7 +211,7 @@ const formData = reactive({
qualification_two_status: '',
remark: '',
annex: [],
create_user: '',
create_user_name: '',
})
const customEvent1 = (e) => {

@ -60,7 +60,7 @@
<script lang="ts" setup name="supervisionDangerousEngineeringCaseLists">
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
import { apiSupervisionDangerousEngineeringCaseLists, apiSupervisionDangerousEngineeringCaseDelete } from '@/api/supervision_dangerous_engineering_case'
import { apiSupervisionDangerousEngineeringCaseLists, apiSupervisionDangerousEngineeringCaseDelete, apiSupervisionDangerousEngineeringCaseDetail } from '@/api/supervision_dangerous_engineering_case'
import { timeFormat } from '@/utils/util'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
@ -106,10 +106,11 @@ const handleAdd = async () => {
//
const handleEdit = async (data: any) => {
let res = await apiSupervisionDangerousEngineeringCaseDetail({ id: data.id })
showEdit.value = true
await nextTick()
editRef.value?.open('edit')
editRef.value?.setFormData(data)
editRef.value?.setFormData(res)
}
//

@ -63,7 +63,7 @@
<script lang="ts" setup name="supervisionDangerousEngineeringEliminateLists">
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
import { apiSupervisionDangerousEngineeringEliminateLists, apiSupervisionDangerousEngineeringEliminateDelete } from '@/api/supervision_dangerous_engineering_eliminate'
import { apiSupervisionDangerousEngineeringEliminateLists, apiSupervisionDangerousEngineeringEliminateDelete, apiSupervisionDangerousEngineeringEliminateDetail } from '@/api/supervision_dangerous_engineering_eliminate'
import { timeFormat } from '@/utils/util'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
@ -108,10 +108,11 @@ const handleAdd = async () => {
//
const handleEdit = async (data: any) => {
let res = await apiSupervisionDangerousEngineeringEliminateDetail({ id: data.id })
showEdit.value = true
await nextTick()
editRef.value?.open('edit')
editRef.value?.setFormData(data)
editRef.value?.setFormData(res)
}
//

@ -28,17 +28,17 @@
<el-input v-model="formData.node_name" clearable placeholder="请输入单位工程" readonly
@click="showDialog1 = true" />
</el-form-item>
<el-form-item label="施工部位" prop="position">
<el-form-item label="施工部位">
<el-input v-model="formData.position" clearable placeholder="请输入施工部位" />
</el-form-item>
<el-form-item label="本项目特征" prop="project_characteristics">
<el-form-item label="本项目特征">
<el-input v-model="formData.project_characteristics" clearable placeholder="请输入本项目特征"
type="textarea" />
</el-form-item>
<el-form-item label="上级监管人员" prop="supervisor">
<el-form-item label="上级监管人员">
<el-input v-model="formData.supervisor" clearable placeholder="请输入上级监管人员" />
</el-form-item>
<el-form-item label="负责人" prop="responsible_person">
<el-form-item label="负责人">
<el-input v-model="formData.responsible_person" clearable placeholder="请输入负责人" />
</el-form-item>
</el-form>

@ -4,7 +4,10 @@
<el-form class="mb-[-16px]" :model="queryParams" inline>
<el-form-item label="危大工程类型" prop="type">
<el-input class="w-[280px]" v-model="queryParams.type" clearable placeholder="请输入危大工程类型" />
<el-select class="flex-1" v-model="queryParams.type" clearable placeholder="请选择危大工程类型">
<el-option label="超规模工程" :value="parseInt(0)" />
<el-option label="危险性较大工程" :value="parseInt(1)" />
</el-select>
</el-form-item>
<el-form-item label="分部分项工程" prop="partial_project">
<el-select class="flex-1" v-model="queryParams.partial_project" clearable placeholder="请选择分部分项工程">

@ -39,7 +39,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
</el-col>
</el-row>
@ -55,7 +55,8 @@
</el-dialog>
</div>
<el-dialog v-model="showDialog3" title="选择材料信息" width="70%">
<dialogTable :config="supervision_material_equipment_info" @customEvent="customEvent2">
<dialogTable :config="supervision_material_equipment_info" :query="{ type: 1 }"
@customEvent="customEvent2">
</dialogTable>
</el-dialog>
@ -141,6 +142,7 @@
<el-table-column label="问题分类" prop="problem_cate">
<template #default="scope">
{{ typeof (scope.row.problem_cate) }}
<el-select class="flex-1" v-model="scope.row.problem_cate" clearable placeholder="请输入问题分类">
<el-option v-for="( item, index ) in dictData.problem_cate" :key="index"
:label="item.name" :value="item.value" />
@ -220,7 +222,7 @@ const formData = reactive({
"verify": 0
}],
entry_problem: [{
"problem_cate": 0,
"problem_cate": '',
"problem_description": "",
"problem_name": ""
}]
@ -251,7 +253,7 @@ const handleDelete = async (row: any) => {
const handleAdd1 = () => {
formData.entry_problem.push({
"problem_cate": 0,
"problem_cate": '',
"problem_description": "",
"problem_name": ""
})
@ -282,9 +284,8 @@ const customEvent1 = (e) => {
showDialog2.value = false
}
const customEvent2 = (e) => {
for (let key in formData.entry_detail[tableIndex.value]) {
(formData.entry_detail[tableIndex.value])[key] = e[key]
}
let { name, brand, model, unit, contract_brand, entry_number, documentation, verify } = e
Object.assign(formData.entry_detail[tableIndex.value], { name, brand, model, unit, contract_brand, entry_number, documentation, verify })
showDialog3.value = false
}

@ -3,7 +3,7 @@
<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-form-item label="项目名称" prop="project_name">
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
@click="showDialog = true" />
</el-form-item>
@ -12,7 +12,7 @@
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="星期" prop="week">
<el-form-item label="星期">
<el-input v-model="formData.week" clearable placeholder="请输入星期" />
</el-form-item>
<el-form-item label="气温" prop="air_temperature">
@ -30,17 +30,17 @@
<el-form-item label="工程动态" prop="engineering_dynamics">
<el-input v-model="formData.engineering_dynamics" clearable placeholder="请输入工程动态" type="textarea" />
</el-form-item>
<el-form-item label="监理工作" prop="supervision_work">
<el-form-item label="监理工作">
<el-input v-model="formData.supervision_work" clearable placeholder="请输入监理工作" type="textarea" />
</el-form-item>
<el-form-item label="安全文明施工情况" prop="construction_situation">
<el-form-item label="安全文明施工情况">
<el-input v-model="formData.construction_situation" clearable placeholder="请输入安全文明施工情况"
type="textarea" />
</el-form-item>
<el-form-item label="其他事项" prop="other_matters">
<el-form-item label="其他事项">
<el-input v-model="formData.other_matters" clearable placeholder="请输入其他事项" type="textarea" />
</el-form-item>
<el-form-item label="附件" prop="annex">
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
</el-form-item>
@ -111,11 +111,6 @@ const customEvent = (e) => {
//
const formRules = reactive<any>({
project_id: [{
required: true,
message: '请输入项目id',
trigger: ['blur']
}],
date: [{
required: true,
message: '请输入日期',

@ -2,11 +2,6 @@
<div>
<el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" inline>
<el-form-item label="日期" prop="date">
<el-date-picker class="flex-1 !flex" v-model="queryParams.date" clearable value-format="YYYY-MM-DD"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="监理人员" prop="user">
<el-input class="w-[280px]" v-model="queryParams.user" clearable placeholder="请输入监理人员" />
</el-form-item>
@ -129,4 +124,3 @@ const handleDelete = async (id: number | any[]) => {
getLists()
</script>

@ -17,7 +17,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="编号">
<el-input v-model="formData.code" clearable placeholder="请输入编号" />
<el-input v-model="formData.code" clearable placeholder="系统自动生成" disabled />
</el-form-item>
</el-col>
<el-col :span="8">

@ -13,8 +13,8 @@
</el-form-item>
<el-form-item label="检验结果" prop="result">
<el-select v-model="queryParams.result">
<el-option lable="0" value="符合标准"></el-option>
<el-option lable="1" value="不符合标准"></el-option>
<el-option label="符合标准" value="0"></el-option>
<el-option label="不符合标准" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item>
@ -132,4 +132,3 @@ const handleDelete = async (id: number | any[]) => {
getLists()
</script>

@ -28,19 +28,19 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="本项目特征" prop="project_characteristics">
<el-form-item label="本项目特征">
<el-input v-model="formData.project_characteristics" clearable placeholder="请输入本项目特征" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="计划施工时间" prop="planned_construction_time">
<el-form-item label="计划施工时间">
<el-date-picker class="flex-1 !flex" v-model="formData.planned_construction_time" clearable
value-format="YYYY-MM-DD" placeholder="选择计划施工时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实际施工时间" prop="actual_construction_time">
<el-form-item label="实际施工时间">
<el-date-picker class="flex-1 !flex" v-model="formData.actual_construction_time" clearable
value-format="YYYY-MM-DD" placeholder="选择实际施工时间">
</el-date-picker>
@ -108,29 +108,29 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检查人" prop="check_user">
<el-form-item label="检查人">
<el-input v-model="formData.check_user" clearable placeholder="请输入检查人" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检查时间" prop="check_time">
<el-form-item label="检查时间">
<el-date-picker class="flex-1 !flex" v-model="formData.check_time" clearable
value-format="YYYY-MM-DD" placeholder="选择检查时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="存在问题和整改情况" prop="problems_rectification" label-width="180px">
<el-form-item label="存在问题和整改情况" label-width="180px">
<el-input v-model="formData.problems_rectification" clearable placeholder="请输入存在问题和整改情况" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="监控责任人" prop="responsible_person">
<el-form-item label="监控责任人">
<el-input v-model="formData.responsible_person" clearable placeholder="请输入监控责任人" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否超控制值" prop="exceed_the_control_value">
<el-form-item label="是否超控制值">
<el-radio-group v-model="formData.exceed_the_control_value">
<el-radio :label="0">
@ -154,7 +154,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="控制措施" prop="control_measures">
<el-form-item label="控制措施">
<el-input v-model="formData.control_measures" clearable placeholder="请输入控制措施" />
</el-form-item>
</el-col>

@ -27,19 +27,19 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="本项目特征" prop="project_characteristics">
<el-form-item label="本项目特征">
<el-input v-model="formData.project_characteristics" clearable placeholder="请输入本项目特征" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="计划施工时间" prop="planned_construction_time">
<el-form-item label="计划施工时间">
<el-date-picker class="flex-1 !flex" v-model="formData.planned_construction_time" clearable
value-format="YYYY-MM-DD" placeholder="选择计划施工时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实际施工时间" prop="actual_construction_time">
<el-form-item label="实际施工时间">
<el-date-picker class="flex-1 !flex" v-model="formData.actual_construction_time" clearable
value-format="YYYY-MM-DD" placeholder="选择实际施工时间">
</el-date-picker>
@ -94,24 +94,24 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检查人" prop="check_user">
<el-form-item label="检查人">
<el-input v-model="formData.check_user" clearable placeholder="请输入检查人" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检查时间" prop="check_time">
<el-form-item label="检查时间">
<el-date-picker class="flex-1 !flex" v-model="formData.check_time" clearable
value-format="YYYY-MM-DD" placeholder="选择检查时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="存在问题和整改情况" prop="problems_rectification" label-width="200px">
<el-form-item label="存在问题和整改情况" label-width="200px">
<el-input v-model="formData.problems_rectification" clearable placeholder="请输入存在问题和整改情况" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目部监控责任人" prop="responsible_person" label-width="200px">
<el-form-item label="项目部监控责任人" label-width="200px">
<el-input v-model="formData.responsible_person" clearable placeholder="请输入项目部监控责任人" />
</el-form-item>
</el-col>
@ -140,7 +140,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="控制措施" prop="control_measures">
<el-form-item label="控制措施">
<el-input v-model="formData.control_measures" clearable placeholder="请输入控制措施" />
</el-form-item>
</el-col>

@ -18,7 +18,7 @@
<el-col :span="8">
<el-form-item label="巡视类型" prop="inspection_type">
<el-select class="flex-1" v-model="formData.inspection_type" clearable
placeholder="请输入巡视类型">
placeholder="请选择巡视类型">
<el-option v-for="(item, index) in dictData.inspection_type" :key="index"
:label="item.name" :value="item.value" />
</el-select>
@ -85,9 +85,9 @@
<el-row>
<el-col :span="8">
<el-form-item label="设置重点关注" prop="is_importent">
<el-select v-model="formData.is_importent" clearable placeholder="请选择" class="flex-1">
<el-option label="否" value="0" />
<el-option label="是" value="1" />
<el-select v-model="formData.is_important" clearable placeholder="请选择" class="flex-1">
<el-option label="否" :value="0" />
<el-option label="是" :value="1" />
</el-select>
</el-form-item>
</el-col>
@ -104,11 +104,6 @@
</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="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@ -135,7 +130,10 @@
</div>
</el-form>
<div style="margin-bottom: 30px;">巡视结果</div>
<div>
巡视结果
<el-button @click="handleAdd()" v-if="!formData.inspection_result.length">+</el-button>
</div>
<div style="margin-bottom: 30px;">
<el-table :data="formData.inspection_result">
<el-table-column label="序号" width="150px">
@ -178,7 +176,10 @@
</el-table>
</div>
<div style="margin-bottom: 30px;">巡视问题</div>
<div>
巡视问题
<el-button @click="handleAdd1()" v-if="!formData.inspection_problem.length">+</el-button>
</div>
<div style="margin-bottom: 30px;">
<el-table :data="formData.inspection_problem">
<el-table-column label="序号" width="150px">
@ -221,9 +222,9 @@ import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import { apiSupervisionInspectionAdd, apiSupervisionInspectionEdit, apisupervision_inspection_result_delete, apisupervision_problem_delete, apiSupervisionInspectionDetail, apisupervision_inspection_result, apisupervision_problem } from '@/api/supervision_inspection'
import { apisupervision_check_item_detailLists } from '@/api/supervision_check_item'
import { supervision_project, supervision_check_item } from "@/components/dialogTable/dialogTableConfig"
import { supervision_project, supervision_check_item, supervision_participating_units } from "@/components/dialogTable/dialogTableConfig"
import type { PropType } from 'vue'
import { supervision_participating_units } from "@/components/dialogTable/dialogTableConfig"
import { timeFormat } from '@/utils/util'
defineProps({
dictData: {
@ -265,7 +266,6 @@ const handleAdd = () => {
}
const handleDelete = async (row: any) => {
if (formData.inspection_result.length == 1) return
if (row.id) {
await apisupervision_inspection_result_delete({ id: row.id })
const index = formData.inspection_result.indexOf(row);
@ -278,7 +278,7 @@ const handleDelete = async (row: any) => {
}
const handleAdd1 = () => {
formData.inspection_result.push({
formData.inspection_problem.push({
"problem_cate": "",
"problem_description": "",
"problem_name": ""
@ -286,7 +286,6 @@ const handleAdd1 = () => {
}
const handleDelete1 = async (row: any) => {
if (formData.inspection_problem.length == 1) return
if (row.id) {
await apisupervision_problem_delete({ id: row.id })
const index = formData.inspection_problem.indexOf(row);
@ -312,13 +311,13 @@ const formData = reactive({
inspection_position: '',
workers: '',
managers: '',
start_time: '',
start_time: timeFormat('', 'yyyy-mm-dd hh:MM:ss'),
end_time: '',
inspection_user: '',
company_id: '',
company_id: 0,
company_name: '',
inspection_content: '',
is_importent: '',
is_important: '',
follow_user: '',
check_item_detail_ids: [],
check_item_detail_name: '',
@ -436,11 +435,6 @@ const formRules = reactive<any>({
message: '请输入巡视内容',
trigger: ['blur']
}],
is_importent: [{
required: true,
message: '请输入设置重点关注事项 0-否 1-是',
trigger: ['blur']
}],
follow_user: [{
required: true,
message: '请输入关注人',
@ -468,7 +462,7 @@ const setFormData = async (data: Record<any, any>) => {
}
}
formData.inspection_type = String(formData.inspection_type)
formData.is_importent = String(formData.inspection_type)
// formData.is_important = (formData.is_important)
formData.company_id == 0 ? formData.company_id = '' : ""
apisupervision_inspection_result({ inspection_id: formData.id }).then(res => {
formData.inspection_result = res.lists

@ -2,14 +2,14 @@
<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="请选择项目" />
</el-form-item> -->
<el-form-item label="编号" prop="inspection_code">
<el-input class="w-[280px]" v-model="queryParams.inspection_code" clearable placeholder="请输入编号" />
</el-form-item>
<el-form-item label="巡视类型" prop="inspection_type">
<el-input class="w-[280px]" v-model="queryParams.inspection_type" clearable placeholder="请输入巡视类型" />
<el-select class="flex-1" v-model="queryParams.inspection_type" clearable placeholder="请选择巡视类型">
<el-option v-for="(item, index) in dictData.inspection_type" :key="index" :label="item.name"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
@ -45,7 +45,7 @@
<el-table-column label="巡视内容" prop="inspection_content" show-overflow-tooltip />
<el-table-column label="设置重点关注事项" prop="is_important_text" show-overflow-tooltip />
<el-table-column label="关注人" prop="follow_user" show-overflow-tooltip />
<el-table-column label="检查表单选择" prop="check_item_detail_ids" show-overflow-tooltip />
<el-table-column label="检查表单选择" prop="check_item_detail_name" show-overflow-tooltip />
<el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }">

@ -7,7 +7,7 @@
<el-col :span="8">
<el-form-item label="所属单位" prop="unit_qualification_id">
<el-input v-model="formData.company_name" clearable placeholder="请输入所属单位"
@click="showDialog1 = true" />
@click="showDialog1 = true" readonly />
</el-form-item>
</el-col>
<el-col :span="8">
@ -102,7 +102,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="创建人" prop="create_user">
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />
<el-input v-model="formData.create_user_name" clearable placeholder="请输入创建人" />
</el-form-item>
</el-col>
@ -182,8 +182,8 @@ const formData = reactive({
effective_date_two: '',
qualification_two_status: '',
remark: '',
annex: '',
create_user: '',
annex: [],
create_user_name: '',
})
const customEvent1 = (e) => {
formData.unit_qualification_id = e.id

@ -46,17 +46,17 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="报审结果" prop="approval_result">
<el-form-item label="报审结果">
<el-input v-model="formData.approval_result" clearable placeholder="请输入报审结果" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="报审表编号" prop="approval_form_code">
<el-form-item label="报审表编号">
<el-input v-model="formData.approval_form_code" clearable placeholder="请输入报审表编号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="报审类型" prop="approval_type">
<el-form-item label="报审类型">
<el-select class="flex-1" v-model="formData.approval_type" clearable placeholder="请选择报审类型">
<el-option v-for="(item, index) in dictData.approval_type" :key="index"
:label="item.name" :value="parseInt(item.value)" />
@ -64,7 +64,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="专监初审意见" prop="first_audit_opinion">
<el-form-item label="专监初审意见">
<el-select class="flex-1" v-model="formData.first_audit_opinion" clearable
placeholder="请选择专监初审意见">
<el-option v-for="(item, index) in dictData.first_audit_opinion" :key="index"
@ -73,19 +73,19 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="初审人" prop="first_auditor">
<el-form-item label="初审人">
<el-input v-model="formData.first_auditor" clearable placeholder="请输入初审人" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="初审时间" prop="first_audit_time">
<el-form-item label="初审时间">
<el-date-picker class="flex-1 !flex" v-model="formData.first_audit_time" clearable
value-format="YYYY-MM-DD" placeholder="选择初审时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="总监审定结论" prop="final_audit_opinion">
<el-form-item label="总监审定结论">
<el-select class="flex-1" v-model="formData.final_audit_opinion" clearable
placeholder="请选择总监审定结论">
<el-option v-for="(item, index) in dictData.final_audit_opinion" :key="index"
@ -94,19 +94,19 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="审定时间" prop="final_audit_time">
<el-form-item label="审定时间">
<el-date-picker class="flex-1 !flex" v-model="formData.final_audit_time" clearable
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-form-item label="备注">
<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">
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
</el-form-item>

@ -11,9 +11,6 @@
<el-form-item label="使用部位" prop="use_site">
<el-input class="w-[280px]" v-model="queryParams.use_site" 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="approval_result">
<el-input class="w-[280px]" v-model="queryParams.approval_result" clearable placeholder="请输入报审结果" />
</el-form-item>

@ -69,7 +69,8 @@
</el-dialog>
</div>
<el-dialog v-model="showDialog3" title="选择材料信息" width="70%">
<dialogTable :config="supervision_material_equipment_info" @customEvent="customEvent2">
<dialogTable :config="supervision_material_equipment_info" :query="{ type: 0 }"
@customEvent="customEvent2">
</dialogTable>
</el-dialog>
</el-form>
@ -219,13 +220,18 @@ const customEvent = (e) => {
}
const customEvent1 = (e) => {
formData.company_id = e.id
formData.company_name = e.project_name
formData.company_name = e.unit_name
showDialog2.value = false
}
const customEvent2 = (e) => {
for (let key in formData.entry_detail[tableIndex.value]) {
(formData.entry_detail[tableIndex.value])[key] = e[key]
}
// if (formData.entry_detail[tableIndex.value]?.id) delete formData.entry_detail[tableIndex.value].id;
// for (let key in formData.entry_detail[tableIndex.value]) {
// (formData.entry_detail[tableIndex.value])[key] = e[key]
// }
// showDialog3.value = false
let { name, brand, model, unit, contract_brand, entry_number } = e
Object.assign(formData.entry_detail[tableIndex.value], { name, brand, model, unit, contract_brand, entry_number })
showDialog3.value = false
}

@ -20,7 +20,7 @@
<el-input v-model="formData.unit" clearable placeholder="请输入计数单位" />
</el-form-item>
<el-form-item label="计划数量" prop="number">
<el-input v-model="formData.number" clearable placeholder="请输入计划数量" />
<el-input v-model="formData.number" clearable placeholder="请输入计划数量" type="number" />
</el-form-item>
<el-form-item label="合同约定品牌" prop="contract_brand">
<el-radio-group v-model="formData.contract_brand" placeholder="合同约定品牌">

@ -3,34 +3,34 @@
<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-form-item label="项目名称" prop="project_name">
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
@click="showDialog = true" />
</el-form-item>
<el-form-item label="会议主题" prop="theme">
<el-input v-model="formData.theme" clearable placeholder="请输入会议主题" />
</el-form-item>
<el-form-item label="会议类型" prop="type">
<el-form-item label="会议类型">
<el-input v-model="formData.type" clearable placeholder="请输入会议类型" />
</el-form-item>
<el-form-item label="会议时间" prop="time">
<el-form-item label="会议时间">
<el-date-picker class="flex-1 !flex" v-model="formData.time" clearable value-format="YYYY-MM-DD"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="主持人" prop="emcee">
<el-form-item label="主持人">
<el-input v-model="formData.emcee" clearable placeholder="请输入主持人" />
</el-form-item>
<el-form-item label="记录人" prop="recorder">
<el-form-item label="记录人">
<el-input v-model="formData.recorder" clearable placeholder="请输入记录人" />
</el-form-item>
<el-form-item label="会议地点" prop="location">
<el-form-item label="会议地点">
<el-input v-model="formData.location" clearable placeholder="请输入会议地点" />
</el-form-item>
<el-form-item label="与会人员" prop="attendees">
<el-form-item label="与会人员">
<el-input v-model="formData.attendees" clearable placeholder="请输入与会人员" />
</el-form-item>
<el-form-item label="会议内容" prop="content">
<el-form-item label="会议内容">
<el-input v-model="formData.content" clearable placeholder="请输入会议内容" />
</el-form-item>
<el-form-item label="附件" prop="annex">
@ -83,7 +83,7 @@ const formData = reactive({
location: '',
attendees: '',
content: '',
annex: '',
annex: [],
create_user: '',
})
const handleAvatarSuccess_four = (response: any) => {
@ -104,11 +104,6 @@ const customEvent = (e) => {
//
const formRules = reactive<any>({
project_id: [{
required: true,
message: '请输入项目id',
trigger: ['blur']
}],
theme: [{
required: true,
message: '请输入会议主题',
@ -129,11 +124,7 @@ const formRules = reactive<any>({
message: '请输入主持人',
trigger: ['blur']
}],
recorder: [{
required: true,
message: '请输入记录人',
trigger: ['blur']
}],
location: [{
required: true,
message: '请输入会议地点',
@ -144,16 +135,8 @@ const formRules = reactive<any>({
message: '请输入与会人员',
trigger: ['blur']
}],
content: [{
required: true,
message: '请输入会议内容',
trigger: ['blur']
}],
create_user: [{
required: true,
message: '请输入',
trigger: ['blur']
}]
})

@ -10,7 +10,7 @@
<el-form-item label="项目总监意见" prop="opinion">
<el-input v-model="formData.opinion" clearable placeholder="请输入项目总监意见" type="textarea" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-form-item label="备注">
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
</el-form>

@ -21,23 +21,23 @@
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
<el-form-item label="信息类别" prop="info_cate">
<el-form-item label="信息类别">
<el-checkbox-group v-model="formData.info_cate" placeholder="请选择信息类别">
<el-checkbox v-for="(item, index) in dictData.info_cate" :key="index" :label="(item.value)">
{{ item.name }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="信息内容" prop="info_content">
<el-form-item label="信息内容">
<el-input v-model="formData.info_content" clearable placeholder="请输入信息内容" />
</el-form-item>
<el-form-item label="项目部意见" prop="opinions">
<el-form-item label="项目部意见">
<el-input v-model="formData.opinions" clearable placeholder="请输入项目部意见" />
</el-form-item>
<el-form-item label="主送人" prop="giver">
<el-form-item label="主送人">
<el-input v-model="formData.giver" clearable placeholder="请输入主送人" />
</el-form-item>
<el-form-item label="附件" prop="annex">
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
</el-form-item>

@ -10,19 +10,16 @@
<el-form-item label="标题" prop="title">
<el-input v-model="formData.title" clearable placeholder="请输入标题" />
</el-form-item>
<el-form-item label="正文内容" prop="content">
<el-form-item label="正文内容">
<el-input v-model="formData.content" clearable placeholder="请输入正文内容" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-form-item label="备注">
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
</el-form-item>
<el-form-item label="附件" prop="annex">
<el-form-item label="附件">
<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-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
<dialogTable @customEvent="customEvent" :config="supervision_project" />

@ -45,12 +45,12 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="进度描述" prop="progress_description">
<el-form-item label="进度描述">
<el-input v-model="formData.progress_description" clearable placeholder="请输入进度描述" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="存在的问题及解决措施" prop="problems_and_measure">
<el-form-item label="存在的问题及解决措施">
<el-input v-model="formData.problems_and_measure" clearable placeholder="请输入存在的问题及解决措施" />
</el-form-item>
</el-col>
@ -78,42 +78,42 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建设各方责任" prop="quality_behavior">
<el-form-item label="建设各方责任">
<el-input v-model="formData.quality_behavior" clearable placeholder="请输入建设各方责任主体质量行为" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="施工现场质量情况" prop="quality_situation">
<el-form-item label="施工现场质量情况">
<el-input v-model="formData.quality_situation" clearable placeholder="请输入施工现场质量情况" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="质量缺陷或质量隐患的处理情况" prop="quality_hazards">
<el-form-item label="质量缺陷或质量隐患的处理情况">
<el-input v-model="formData.quality_hazards" clearable placeholder="请输入质量缺陷或质量隐患的处理情况" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检查及抽检情况" prop="sampling_situation">
<el-form-item label="检查及抽检情况">
<el-input v-model="formData.sampling_situation" clearable placeholder="请输入检查及抽检情况" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="其他质量情况" prop="other_quality_conditions">
<el-form-item label="其他质量情况">
<el-input v-model="formData.other_quality_conditions" clearable placeholder="请输入其他质量情况" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="本月安全情况" prop="safety_situation">
<el-form-item label="本月安全情况">
<el-input v-model="formData.safety_situation" clearable placeholder="请输入本月安全情况" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-form-item label="备注">
<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">
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
</el-form-item>

@ -3,8 +3,8 @@
<el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" inline>
<el-form-item label="年月" prop="date">
<el-date-picker class="flex-1 !flex" v-model="queryParams.date" clearable value-format="YYYY-MM "
placeholder="选择年月">
<el-date-picker class="flex-1 !flex" v-model="queryParams.date" clearable type="month"
value-format="YYYY-MM" placeholder="请选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="工程状态" prop="engineering_status">

@ -4,8 +4,8 @@
@close="handleClose">
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
<el-form-item label="项目名称" prop="project_name">
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目"
@click="showDialog = true" />
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" @click="showDialog = true"
readonly />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="formData.name" clearable placeholder="请输入姓名" />

@ -7,7 +7,7 @@
<el-col :span="8">
<el-form-item label="所属单位" prop="unit_qualification_id">
<el-input v-model="formData.company_name" clearable placeholder="请输入所属单位"
@click="showDialog1 = true" />
@click="showDialog1 = true" readonly />
</el-form-item>
</el-col>
<el-col :span="8">
@ -127,7 +127,7 @@
<el-col :span="8">
<el-form-item label="备注">
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
</el-col>
<el-col :span="8">

@ -17,10 +17,6 @@
<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>
<el-button @click="resetParams">重置</el-button>
</el-form-item>
</el-form>
</el-card>
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
@ -145,4 +141,3 @@ const handleDelete = async (id: number | any[]) => {
getLists()
</script>

@ -35,7 +35,6 @@
<el-table-column label="检查地点" prop="check_area" show-overflow-tooltip />
<el-table-column label="问题描述" prop="problem_desc" 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="操作" width="120" fixed="right">
<template #default="{ row }">

@ -18,7 +18,7 @@
<el-col :span="8">
<el-form-item label="旁站类型" prop="side_station_type">
<el-select class="flex-1" v-model="formData.side_station_type" clearable
placeholder="请输入巡视类型">
placeholder="请选择巡视类型">
<el-option v-for="(item, index) in dictData.side_station_type" :key="index"
:label="item.name" :value="item.value" />
</el-select>

@ -2,14 +2,15 @@
<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="请选择项目" />
</el-form-item>
<el-form-item label="旁站编号" prop="side_station_code">
<el-input class="w-[280px]" v-model="queryParams.side_station_code" clearable placeholder="请输入旁站编号" />
<el-input class="w-[280px]" v-model="queryParams.side_station_code" clearable
placeholder="请输入旁站编号" />
</el-form-item>
<el-form-item label="旁站类型" prop="side_station_type">
<el-input class="w-[280px]" v-model="queryParams.side_station_type" clearable placeholder="请输入旁站类型" />
<el-select class="flex-1" v-model="queryParams.side_station_type" clearable placeholder="请选择巡视类型">
<el-option v-for="(item, index) in dictData.side_station_type" :key="index" :label="item.name"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
@ -34,7 +35,7 @@
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
<el-table-column label="旁站编号" prop="side_station_code" show-overflow-tooltip />
<el-table-column label="旁站类型" prop="side_station_type_text" show-overflow-tooltip />
<el-table-column label="单位工程" prop="check_item_id" show-overflow-tooltip />
<el-table-column label="单位工程" prop="check_item_name" show-overflow-tooltip />
<el-table-column label="部位" prop="position" show-overflow-tooltip />
<el-table-column label="施工单位" prop="company_name" show-overflow-tooltip />
<el-table-column label="旁站开始时间" prop="start_time" show-overflow-tooltip />
@ -129,4 +130,3 @@ const handleDelete = async (id: number | any[]) => {
getLists()
</script>

@ -5,7 +5,7 @@
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
<el-form-item label="所属单位" prop="unit_qualification_id">
<el-input v-model="formData.company_name" clearable placeholder="请输入所属单位"
<el-input v-model="formData.company_name" clearable placeholder="请输入所属单位" readonly
@click="showDialog1 = true" />
</el-form-item>
<el-form-item label="姓名" prop="name">
@ -37,15 +37,15 @@
<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 label="备注">
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
<el-form-item label="附件" prop="annex">
<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 label="创建人">
<el-input v-model="formData.create_user_name" clearable placeholder="请输入创建人" />
</el-form-item>
<el-dialog v-model="showDialog1" title="选择单位" width="70%">
<dialogTable :config="supervision_participating_units_qualifications" @customEvent="customEvent1">
@ -95,7 +95,7 @@ const formData = reactive({
status: '',
remark: '',
annex: '',
create_user: '',
create_user_name: '',
})
const handleAvatarSuccess_four = (response: any) => {
if (!Array.isArray(formData.annex)) formData.annex = []

@ -60,7 +60,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
</el-col>
<el-col :span="8">
@ -75,10 +75,13 @@
<el-dialog v-model="showDialog" title="选择项目" width="70%">
<dialogTable @customEvent="customEvent" :config="supervision_project" />
</el-dialog>
<el-dialog v-model="showDialog2" width=" 70%" title="选择施工单位">
<dialogTable :config="supervision_participating_units" @customEvent="customEvent1">
</dialogTable>
</el-dialog>
<div v-if="showDialog2">
<el-dialog v-model="showDialog2" width=" 70%" title="选择施工单位">
<dialogTable :config="supervision_participating_units" :query="{ project_id: formData.project_id }"
@customEvent="customEvent1">
</dialogTable>
</el-dialog>
</div>
<div style="margin-bottom: 30px;">问题</div>
<div style="margin-bottom: 30px;">
<el-table :data="formData.problem">

@ -12,7 +12,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="联系编号">
<el-input v-model="formData.code" clearable placeholder="系统自动生成" />
<el-input v-model="formData.code" clearable placeholder="系统自动生成" disabled />
</el-form-item>
</el-col>
<el-col :span="8">

File diff suppressed because one or more lines are too long