This commit is contained in:
zmj 2024-03-19 11:40:43 +08:00
parent c7d91dc682
commit 7f90377546
31 changed files with 1464 additions and 44 deletions

View File

@ -5,7 +5,11 @@
<el-descriptions :column="column" :title="detailConfig?.title || '详情'" border>
<el-descriptions-item :label="item.label" label-align="left" align="left"
v-for="(item, index) in detailConfig?.config.filter(item => !item.column)" :key="index">
{{ formData[item.value] }}
{{ formData[item.value] ??
(item.value.includes('.') ?
(formData[item.value.split('.')[0]])[item.value.split('.')[1]] :
'')
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="1" border
@ -16,9 +20,7 @@
class="mr-5">
{{ items.name }}
</el-link>
</el-descriptions-item>
<el-descriptions-item :label="item.label" label-align="left" align="left" v-else>
{{ formData[item.value] }}
</el-descriptions-item>
@ -94,8 +96,8 @@ const setFormData = async (data: Record<any, any>) => {
query = { [query]: data.id }
}
let res = await props.detailConfig.table.fetchFun({ ...query })
tableLists.value = res.lists
tableLists.value = (formData.value)[String(props.detailConfig.table.fetchFun)] ?? (await props.detailConfig.table.fetchFun({ ...query })).lists
}
}

View File

@ -0,0 +1,65 @@
const detailConfig = {
title: "成果文件审定、签发",
config: [
{
label: "单据编号",
value: "num"
},
{
label: "项目名称",
value: "projectInfo.project_name"
},
{
label: "项目编号",
value: "projectInfo.project_num"
},
{
label: "任务名称",
value: "task"
},
{
label: "工序",
value: "processes"
},
{
label: "资料份数",
value: "number"
},
{
label: "登记日期",
value: "apptime"
},
{
label: "登记人",
value: "person"
},
{
label: "备注",
value: "tips",
column: 1
},
{
label: "多行文本框1",
value: "fd_1",
column: 1
},
{
label: "多行文本框2",
value: "fd_2",
column: 1
},
{
label: "多行文本框3",
value: "fd_3",
column: 1
},
],
}
export default detailConfig;

View File

@ -61,6 +61,10 @@
@click="handleDelete(row.id)">
删除
</el-button>
<el-button v-perms="['approval_issuance_achievement_documents/detail']" link
@click="handleDetail(row)">
详情
</el-button>
</template>
</el-table-column>
</el-table>
@ -70,23 +74,27 @@
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
<detailPage v-if="showDetail" ref="detailRef" @close="showDetail = false" :detailConfig="detailConfig"
width="50vw" :column="2" />
</div>
</template>
<script lang="ts" setup name="approvalIssuanceAchievementDocumentsLists">
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
import { apiApprovalIssuanceAchievementDocumentsLists, apiApprovalIssuanceAchievementDocumentsDelete } from '@/api/approval_issuance_achievement_documents'
import { apiApprovalIssuanceAchievementDocumentsLists, apiApprovalIssuanceAchievementDocumentsDelete, apiApprovalIssuanceAchievementDocumentsDetail } from '@/api/approval_issuance_achievement_documents'
import { timeFormat } from '@/utils/util'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
import { apiCostProjectDatas } from "@/api/cost_project";
import { useDictOptions } from "@/hooks/useDictOptions"
import detailConfig from './detail'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
const detailRef = ref('')
//
const showEdit = ref(false)
const showDetail = ref(false)
const loading = ref(false)
const queryCostProject = async (query: string) => {
@ -151,5 +159,15 @@ const handleDelete = async (id: number | any[]) => {
getLists()
}
//
const handleDetail = async (row) => {
// let res = await apiApprovalIssuanceAchievementDocumentsDetail({ id })
showDetail.value = true
await nextTick()
detailRef.value?.open()
detailRef.value?.setFormData(row)
console.log(row)
}
getLists()
</script>

View File

@ -0,0 +1,173 @@
const detailConfig = {
title: "造价合同",
config: [
{
label: "合同名称",
value: "contract_name"
},
{
label: "合同编号",
value: "contract_num"
},
{
label: "合同类型",
value: "contract_type_text"
},
{
label: "甲方签约单位",
value: "part_a"
},
{
label: "甲方联系人",
value: "part_a_contract"
},
{
label: "业主地址",
value: "part_a_address"
},
{
label: "乙方签约单位",
value: "part_b"
},
{
label: "乙方签约人",
value: "part_b_signatory",
},
{
label: "业务性质",
value: "business_nature_text",
},
{
label: "行业性质",
value: "industry_nature_text",
},
{
label: "建设区域",
value: "const_area_text",
},
{
label: "资金来源",
value: "fund_sources_text",
},
{
label: "工程总投资",
value: "project_money",
},
{
label: "工程规模及概况",
value: "project_scale",
},
{
label: "签订金额(元)",
value: "money",
},
{
label: "合同服务工期",
value: "contract_service",
},
{
label: "合同签订费率",
value: "rate",
},
{
label: "合同计划开始日期",
value: "start_date",
},
{
label: "合同计划结束日期",
value: "end_date",
},
{
label: "合同履约金",
value: "performance",
},
{
label: "履约金到期时间",
value: "due_time",
},
{
label: "合同付款方式",
value: "payment",
},
{
label: "合同主要内容",
value: "content",
},
{
label: "创建人",
value: "founder",
},
{
label: "创建日期",
value: "create_date",
},
{
label: "签订部门",
value: "dept",
},
{
label: "签订负责人",
value: "signing_person",
},
{
label: "项目总监/经理",
value: "project_director",
},
{
label: "实施方式",
value: "way_text",
},
{
label: "盖章名称",
value: "seal_name_text",
},
{
label: "是否限制",
value: "limit_text",
},
{
label: "限制次数",
value: "limit_num",
},
{
label: "文件类型",
value: "file_type_text",
},
{
label: "盖章份数",
value: "seal_num",
},
{
label: "盖章人",
value: "sealer",
},
{
label: "骑缝盖章",
value: "plance_seal_text",
},
{
label: "发出日期",
value: "send_date",
},
{
label: "邮寄编号",
value: "number",
},
{
label: "附件",
value: "annex",
column: 1
},
]
}
export default detailConfig;

View File

@ -112,6 +112,10 @@
@click="handleDelete(row.id)">
删除
</el-button>
<el-button v-perms="['cost_project.cost_approved_project/detail']" link
@click="handleDetail(row.id)">
详情
</el-button>
<el-button v-perms="['cost_project.cost_approved_project/edit']" type='warning' link>
<router-link :to="{
path: '/cost_consultation/cost_consultation_project/cost_project',
@ -132,6 +136,7 @@
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
<detailPage v-if="showDetail" ref="detailRef" @close="showDetail = false" :detailConfig="detailConfig" />
</div>
</template>
@ -139,14 +144,16 @@
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
import { apiCostApprovedProjectLists, apiCostApprovedProjectDelete, apiCostApprovedProjectDetail } from '@/api/cost_approved_project'
import { timeFormat } from '@/utils/util'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
import detailConfig from './detail'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
const detailRef = ref('')
//
const showEdit = ref(false)
const showDetail = ref(false)
//
const queryParams = reactive({
contract_name: '',
@ -206,5 +213,15 @@ const handleCreation = async (id: number | any[]) => {
// await apiCostApprovedProjectDelete({ id })
getLists()
}
//
const handleDetail = async (id: any) => {
let res = await apiCostApprovedProjectDetail({ id })
showDetail.value = true
await nextTick()
detailRef.value?.open()
detailRef.value?.setFormData(res)
}
getLists()
</script>

View File

@ -0,0 +1,130 @@
const detailConfig = {
title: "造价项目台账",
config: [
{
label: "项目编号",
value: "project_num"
},
{
label: "项目名称",
value: "project_name"
},
{
label: "关联合同",
value: "contract.contract_name"
},
{
label: "咨询类型",
value: "types_text"
},
{
label: "行业",
value: "industry_text"
},
{
label: "所在省份",
value: "province_text"
},
{
label: "所在市区",
value: "city_text"
},
{
label: "具体地址",
value: "address",
},
{
label: "计划开始日期",
value: "starting",
},
{
label: "计划结束日期",
value: "endtime",
},
{
label: "计划工期",
value: "jhgq",
},
{
label: "组织",
value: "org_text",
},
{
label: "部门",
value: "depar_text",
},
{
label: "项目负责人",
value: "principal",
},
{
label: "项目相关人员",
value: "person_text",
},
{
label: "项目总投资",
value: "invest",
},
{
label: "预算造价",
value: "budget",
},
{
label: "送审造价",
value: "cost",
},
{
label: "审定造价",
value: "approval",
},
{
label: "委托单位",
value: "aunit",
},
{
label: "委托方联系人",
value: "Acontact",
},
{
label: "联系电话",
value: "acontactnum",
},
{
label: "登记日期",
value: "date",
},
{
label: "项目规模及概括",
value: "generalize",
},
{
label: "建设单位",
value: "js_unit",
},
{
label: "注意事项",
value: "note",
},
{
label: "备注",
value: "remark",
column: 1
},
{
label: "附件",
value: "annex",
column: 1
},
]
}
export default detailConfig;

View File

@ -100,7 +100,7 @@
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="请选择部门" prop="depar" :rules="[
<el-form-item label="部门" prop="depar" :rules="[
{ required: true, message: '不可为空', trigger: 'blur' },
]">
<el-select class="flex-1" v-model="formData.depar" clearable placeholder="请选择部门">

View File

@ -80,6 +80,10 @@
@click="handleDelete(row.id)">
删除
</el-button>
<el-button v-perms="['cost_project.cost_project/detail']" link
@click="handleDetail(row.id)">
详情
</el-button>
</template>
</el-table-column>
</el-table>
@ -89,6 +93,7 @@
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
<detailPage v-if="showDetail" ref="detailRef" @close="showDetail = false" :detailConfig="detailConfig" />
</div>
</template>
@ -99,10 +104,14 @@ import { useRoute } from 'vue-router'
import { apiCostProjectLists, apiCostProjectDelete, apiCostProjectDetail } from '@/api/cost_project'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
import detailConfig from './detail'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
const detailRef = ref('')
//
const showEdit = ref(false)
const showDetail = ref(false)
const route = useRoute()
@ -153,6 +162,17 @@ const handleDelete = async (id: number | any[]) => {
await apiCostProjectDelete({ id })
getLists()
}
//
const handleDetail = async (id: any) => {
let res = await apiCostProjectDetail({ id })
showDetail.value = true
await nextTick()
detailRef.value?.open()
detailRef.value?.setFormData(res)
}
if (route.query.contractId) {
handleAdd()
}

View File

@ -0,0 +1,79 @@
const detailConfig = {
title: "资料接收",
config: [
{
label: "单据编号",
value: "num"
},
{
label: "项目名称",
value: "projectInfo.project_name"
},
{
label: "项目编号",
value: "projectInfo.project_num"
},
{
label: "登记日期",
value: "apptime"
},
{
label: "登记人",
value: "person"
},
{
label: "资料份数",
value: "number"
},
{
label: "存放位置",
value: "position"
},
{
label: "说明",
value: "tips"
},
{
label: "投标文件",
value: "bidding_file",
column: 1
},
{
label: "招标控制价文件",
value: "zbkzj_file",
column: 1
},
{
label: "工程造价合同",
value: "gczjht_file",
column: 1
},
{
label: "项目变更、签证资料",
value: "xmbgqzzl_file",
column: 1
},
{
label: "送审概算、预算、结算资料",
value: "ssgsysjs_file",
column: 1
},
{
label: "往来函件",
value: "wlhj_file",
column: 1
},
{
label: "其他资料",
value: "other_file",
column: 1
},
],
}
export default detailConfig;

View File

@ -56,6 +56,9 @@
@click="handleDelete(row.id)">
删除
</el-button>
<el-button v-perms="['data_reception/detail']" link @click="handleDetail(row)">
详情
</el-button>
</template>
</el-table-column>
</el-table>
@ -65,6 +68,8 @@
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
<detailPage v-if="showDetail" ref="detailRef" @close="showDetail = false" :detailConfig="detailConfig"
width="50vw" :column="2" />
</div>
</template>
@ -72,15 +77,17 @@
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
import { apiDataReceptionLists, apiDataReceptionDelete, apiDataReceptionDetail } from '@/api/data_reception'
import { timeFormat } from '@/utils/util'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
import { apiCostProjectDatas } from "@/api/cost_project";
import { useDictOptions } from "@/hooks/useDictOptions"
import detailConfig from './detail'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
const detailRef = ref('')
//
const showEdit = ref(false)
const showDetail = ref(false)
const loading = ref(false)
const queryCostProject = async (query: string) => {
@ -145,6 +152,15 @@ const handleDelete = async (id: number | any[]) => {
await apiDataReceptionDelete({ id })
getLists()
}
//
const handleDetail = async (row) => {
let res = await apiDataReceptionDetail({ id: row.id })
showDetail.value = true
await nextTick()
detailRef.value?.open()
detailRef.value?.setFormData(res)
}
getLists()
</script>

View File

@ -0,0 +1,53 @@
const detailConfig = {
title: "项目管理--收文管理",
config: [
{
label: "项目名称",
value: "project_name"
},
{
label: "编号",
value: "code"
},
{
label: "内容摘要",
value: "abstract"
},
{
label: "发文日期",
value: "send_date"
},
{
label: "发文单位",
value: "send_company"
},
{
label: "发文人",
value: "send_user"
},
{
label: "签收人",
value: "accept_user"
},
{
label: "创建人",
value: "create_user"
},
{
label: "创建时间",
value: "create_time"
},
{
label: "备注",
value: "remark",
column: 1
},
{
label: "附件",
value: "annex",
column: 1
},
]
}
export default detailConfig;

View File

@ -71,14 +71,6 @@ const popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑项目管理--收文管理' : '新增项目管理--收文管理'
})
const handleAvatarSuccess_four = (response: any) => {
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({

View File

@ -0,0 +1,45 @@
const detailConfig = {
title: "项目管理--工程变更",
config: [
{
label: "项目名称",
value: "project_name"
},
{
label: "编号",
value: "code"
},
{
label: "变更日期",
value: "date"
},
{
label: "变更及洽商部位",
value: "position"
},
{
label: "图纸号",
value: "drawing_number"
},
{
label: "变更及洽商概述",
value: "overview"
},
{
label: "监理签认情况",
value: "sign_info"
},
{
label: "备注",
value: "remark",
column: 1
},
{
label: "附件",
value: "annex",
column: 1
},
]
}
export default detailConfig;

View File

@ -32,7 +32,6 @@
</el-form-item>
<el-form-item label="附件" prop="annex">
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -61,15 +60,6 @@ const mode = ref('add')
const showDialog = ref(false)
const handleAvatarSuccess_four = (response: any) => {
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' ? '编辑项目管理--工程变更' : '新增项目管理--工程变更'

View File

@ -0,0 +1,52 @@
const detailConfig = {
title: "项目管理--工程变更",
config: [
{
label: "项目名称",
value: "project_name"
},
{
label: "信息摘要",
value: "abstract"
},
{
label: "发生日期",
value: "happen_date"
},
{
label: "严重程度",
value: "severity_text"
},
{
label: "信息类别",
value: "info_cate"
},
{
label: "信息内容",
value: "content"
},
{
label: "项目部意见",
value: "opinions"
},
{
label: "主送人",
value: "giver"
},
{
label: "创建人",
value: "create_user"
},
{
label: "创建时间",
value: "create_time"
},
{
label: "附件",
value: "annex",
column: 1
},
]
}
export default detailConfig;

View File

@ -38,7 +38,6 @@
</el-form-item>
<el-form-item label="附件" prop="annex">
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
<el-form-item label="创建人" prop="create_user">
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />

View File

@ -0,0 +1,35 @@
const detailConfig = {
title: "项目管理--计量支付",
config: [
{
label: "项目名称",
value: "project_name"
},
{
label: "年月",
value: "date"
},
{
label: "本月完成(万元)",
value: "month_amount"
},
{
label: "本月支付(万元)",
value: "month_pay"
},
{
label: "备注",
value: "remark"
},
{
label: "填报人",
value: "create_user"
},
{
label: "填报时间",
value: "create_time"
},
]
}
export default detailConfig;

View File

@ -0,0 +1,45 @@
const detailConfig = {
title: "项目管理--工程进度月报",
config: [
{
label: "项目名称",
value: "project_name"
},
{
label: "年月",
value: "date"
},
{
label: "累计工程进度",
value: "progress"
},
{
label: "工程状态",
value: "status_text"
},
{
label: "备注",
value: "remark"
},
{
label: "存在问题",
value: "problem"
},
{
label: "进度描述",
value: "desc"
},
{
label: "备注",
value: "remark",
column: 1
},
{
label: "附件",
value: "annex",
column: 1
},
]
}
export default detailConfig;

View File

@ -0,0 +1,53 @@
const detailConfig = {
title: "项目管理--项目信息",
config: [
{
label: "项目名称",
value: "project_name"
},
{
label: "编号",
value: "code"
},
{
label: "内容摘要",
value: "abstract"
},
{
label: "发文日期",
value: "send_date"
},
{
label: "发文单位",
value: "send_company"
},
{
label: "发文人",
value: "send_user"
},
{
label: "签收人",
value: "accept_user"
},
{
label: "创建人",
value: "create_user"
},
{
label: "创建时间",
value: "create_time"
},
{
label: "备注",
value: "remark",
column: 1
},
{
label: "附件",
value: "annex",
column: 1
},
]
}
export default detailConfig;

View File

@ -0,0 +1,80 @@
const detailConfig = {
title: "项目提成",
config: [
{
label: "单据编号",
value: "num"
},
{
label: "项目名称",
value: "projectInfo.project_name"
},
{
label: "项目编号",
value: "projectInfo.project_num"
},
{
label: "登记人",
value: "djr"
},
{
label: "登记日期",
value: "djrq"
},
],
table: {
title: "任务明细",
tableConfig: [
{
label: "所在目录",
value: 'directory',
},
{
label: "单位名称",
value: 'unit_name'
},
{
label: "时间",
value: 'time',
},
{
label: "所属专业",
value: 'major',
},
{
label: "类别",
value: 'category',
},
{
label: "审核内容",
value: 'review_content',
},
{
label: "审核意见",
value: 'review_comments',
},
{
label: "审核人",
value: 'reviewer',
},
{
label: "施工单位申报值",
value: 'declared_value',
},
{
label: "咨询单位测算值",
value: 'calculated_value',
},
{
label: "备注",
value: 'remark',
},
],
fetchFun: 'project_change_visa_content',
}
}
export default detailConfig;

View File

@ -71,6 +71,10 @@
link @click="handleDelete(row.id)">
删除
</el-button>
<el-button v-perms="['project_process_management.project_change_visa/detail']" link
@click="handleDetail(row)">
详情
</el-button>
</template>
</el-table-column>
</el-table>
@ -80,6 +84,8 @@
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
<detailPage v-if="showDetail" ref="detailRef" @close="showDetail = false" :detailConfig="detailConfig" />
</div>
</template>
@ -92,10 +98,13 @@ import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
import { apiCostProjectDatas } from "@/api/cost_project";
import { useDictOptions } from "@/hooks/useDictOptions"
import detailConfig from './detail'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
const detailRef = ref('')
//
const showEdit = ref(false)
const showDetail = ref(false)
const loading = ref(false)
const queryCostProject = async (query: string) => {
@ -162,5 +171,15 @@ const handleDelete = async (id: number | any[]) => {
getLists()
}
//
const handleDetail = async (row) => {
let res = await apiProjectChangeVisaDetail({ id: row.id })
showDetail.value = true
await nextTick()
detailRef.value?.open()
detailRef.value?.setFormData(res)
}
getLists()
</script>

View File

@ -0,0 +1,115 @@
const detailConfig = {
title: "项目提成",
config: [
{
label: "单据编号",
value: "num"
},
{
label: "项目名称",
value: "project_name"
},
{
label: "项目编号",
value: "project_num"
},
{
label: "项目负责人",
value: "project_director"
},
{
label: "关联合同",
value: "contract_name"
},
{
label: "行业",
value: "industry_nature_text"
},
{
label: "项目回款总额",
value: "total_refund_amount"
},
{
label: "提成比例",
value: "rate"
},
{
label: "应提成总金额",
value: "total_commission_amount",
},
{
label: "已支付总额",
value: "total_pay_amount",
},
{
label: "本次支付总额",
value: "bczfze",
},
{
label: "登记人",
value: "djr",
},
{
label: "备注",
value: "remark",
column: 1
},
],
table: {
title: "任务明细",
tableConfig: [
{
label: "工程师",
value: 'engineer',
},
{
label: "任务名称",
value: 'task_name'
},
{
label: "任务类型",
value: 'task_type_text',
},
{
label: "专业类型",
value: 'professional_type_text',
},
{
label: "造价金额",
value: 'zj_amount',
},
{
label: "收款金额",
value: 'sk_amount',
},
{
label: "其他增减费用",
value: 'other_fee',
},
{
label: "提成比例",
value: 'tc_rate',
},
{
label: "应提成金额",
value: 'tc_amount',
},
{
label: "本次支付金额",
value: 'pay_amount',
},
{
label: "备注",
value: 'remark',
},
],
fetchFun: 'project_commission_detail',
}
}
export default detailConfig;

View File

@ -85,6 +85,9 @@
@click="handleDelete(row.id)">
删除
</el-button>
<el-button v-perms="['project_commission/detail']" link @click="handleDetail(row)">
详情
</el-button>
</template>
</el-table-column>
</el-table>
@ -94,6 +97,7 @@
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
<detailPage v-if="showDetail" ref="detailRef" @close="showDetail = false" :detailConfig="detailConfig" />
</div>
</template>
@ -101,15 +105,17 @@
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
import { apiProjectCommissionLists, apiProjectCommissionDelete, apiProjectCommissionDetail } from '@/api/project_commission'
import { timeFormat } from '@/utils/util'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
import { apiCostProjectDatas } from "@/api/cost_project";
import { useDictOptions } from "@/hooks/useDictOptions"
import detailConfig from './detail'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
const detailRef = ref('')
//
const showEdit = ref(false)
const showDetail = ref(false)
const loading = ref(false)
const queryCostProject = async (query: string) => {
@ -174,5 +180,15 @@ const handleDelete = async (id: number | any[]) => {
getLists()
}
//
const handleDetail = async (row) => {
let res = await apiProjectCommissionDetail({ id: row.id })
showDetail.value = true
await nextTick()
detailRef.value?.open()
detailRef.value?.setFormData(res)
}
getLists()
</script>

View File

@ -0,0 +1,36 @@
const detailConfig = {
title: "项目提成",
config: [
{
label: "单据编号",
value: "num"
},
{
label: "项目名称",
value: "projectInfo.project_name"
},
{
label: "项目编号",
value: "projectInfo.project_num"
},
{
label: "委托单位",
value: "wt_unit"
},
{
label: "建设单位",
value: "jsdw"
},
{
label: "部门负责人",
value: "bmfz"
},
{
label: "项目负责人",
value: "xmfz"
},
],
}
export default detailConfig;

View File

@ -0,0 +1,128 @@
const detailConfig = {
title: "任务分配",
config: [
{
label: "单据编号",
value: "num"
},
{
label: "项目名称",
value: "projectInfo.project_name"
},
{
label: "项目编号",
value: "projectInfo.project_num"
},
{
label: "项目负责人",
value: "project_director"
},
{
label: "登记日期",
value: "apptime"
},
{
label: "附件",
value: "annex",
column: 1
},
],
table: {
title: "任务明细",
tableConfig: [
{
label: "任务名称",
value: 'task_name',
},
{
label: "任务次级",
value: 'level'
},
{
label: "工序",
value: 'process',
},
{
label: "任务类型",
value: 'task_type_text',
},
{
label: "专业类型",
value: 'professional_type_text',
},
{
label: "工程师",
value: 'engineer',
},
{
label: "一级审核人",
value: 'first_reviewer',
},
{
label: "二级审核人",
value: 'secondary_reviewer',
},
{
label: "三级审核人",
value: 'third_level_reviewer',
},
{
label: "天数",
value: 'days',
},
{
label: "开始日期",
value: 'start_date',
},
{
label: "结束日期",
value: 'end_date',
},
{
label: "中标金额",
value: 'bid_winning_amount',
},
{
label: "中标金额",
value: 'bid_winning_amount',
},
{
label: "送审造价",
value: 'cost',
},
{
label: "第三方核定金额",
value: 'approved_amount',
},
{
label: "施工单位",
value: 'construction_unit',
},
{
label: "联系人",
value: 'contact',
},
{
label: "联系电话",
value: 'contact_phone',
},
{
label: "备注",
value: 'remark',
},
],
query: 'unit_id',
fetchFun: 'task_detail',
}
}
export default detailConfig;

View File

@ -35,7 +35,6 @@
<el-col :span="8">
<el-form-item label="附件">
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-col>
</el-row>
@ -338,12 +337,7 @@ const setFormData = async (data: Record<any, any>) => {
formData.head = formData.projectInfo?.principal || ""
}
const getDetail = async (row: Record<string, any>) => {
const data = await apiTaskAllocationDetail({
id: row.id
})
setFormData(data)
}
//
@ -374,6 +368,5 @@ const handleClose = () => {
defineExpose({
open,
setFormData,
getDetail
})
</script>

View File

@ -46,6 +46,9 @@
@click="handleDelete(row.id)">
删除
</el-button>
<el-button v-perms="['task.task_allocation/detail']" link @click="handleDetail(row.id)">
详情
</el-button>
</template>
</el-table-column>
</el-table>
@ -55,6 +58,8 @@
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
<detailPage v-if="showDetail" ref="detailRef" @close="showEdit = false" :detailConfig="detailConfig"
:column="2" />
</div>
</template>
@ -62,15 +67,18 @@
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
import { apiTaskAllocationLists, apiTaskAllocationDelete, apiTaskAllocationDetail } from '@/api/task_allocation'
import { timeFormat } from '@/utils/util'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
import { useDictOptions } from "@/hooks/useDictOptions"
import { apiCostProjectDatas } from "@/api/cost_project";
import detailConfig from './detail'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
const detailRef = ref('')
//
const showEdit = ref(false)
const showDetail = ref(false)
const loading = ref(false)
//
@ -126,5 +134,15 @@ const handleDelete = async (id: number | any[]) => {
getLists()
}
//
const handleDetail = async (id: any) => {
let res = await apiTaskAllocationDetail({ id })
showDetail.value = true
await nextTick()
detailRef.value?.open()
detailRef.value?.setFormData(res)
}
getLists()
</script>

View File

@ -0,0 +1,161 @@
const detailConfig = {
title: "任务办理与三级审核",
config: [
{
label: "单据编号",
value: "num"
},
{
label: "项目名称",
value: "projectInfo.project_name"
},
{
label: "项目编号",
value: "projectInfo.project_num"
},
{
label: "任务名称",
value: "task"
},
{
label: "工序",
value: "processes"
},
{
label: "任务类型",
value: "rtype_text"
},
{
label: "专业类型",
value: "zType_text"
},
{
label: "工程师",
value: "engineer"
},
{
label: "项目负责人",
value: "head"
},
{
label: "审核流程",
value: "examine_text"
},
{
label: "一级审核人",
value: "one"
},
{
label: "二级审核人",
value: "two"
},
{
label: "三级审核人",
value: "three"
},
{
label: "登记日期",
value: "apptime"
},
{
label: "任务级次",
value: "level"
},
{
label: "建筑面积",
value: "area"
},
{
label: "建筑结构类型",
value: "types_text"
},
{
label: "建筑用途",
value: "use"
},
{
label: "施工单位",
value: "construction"
},
{
label: "编制要求",
value: "ask_text"
},
{
label: "造价依据",
value: "according_text"
},
{
label: "材料补差",
value: "clbc_text"
},
{
label: "送审金额",
value: "ssje"
},
{
label: "工程师核定价",
value: "gcshd"
},
{
label: "核增/核减金额",
value: "hzhj"
},
{
label: "人工单价",
value: "rg"
},
{
label: "项目负责人核定价",
value: "xmhd"
},
{
label: "部门负责人核定价",
value: "bmhd"
},
{
label: "审核部核定价",
value: "shbhd"
},
{
label: "开工日期",
value: "kaigong"
},
{
label: "竣工日期",
value: "jungong"
},
{
label: "备注",
value: "bz",
column: 1
},
{
label: "结果文件",
value: "result_file",
column: 1
},
{
label: "项目负责人附件",
value: "master_annex",
column: 1
},
{
label: "部门负责人附件",
value: "bm_annex",
column: 1
},
{
label: "审核部附件",
value: "shb_annex",
column: 1
},
],
}
export default detailConfig;

View File

@ -89,6 +89,10 @@
@click="handleDelete(row.id)">
删除
</el-button>
<el-button v-perms="['task_handling_three_level_review/detail']" link
@click="handleDetail(row.id)">
详情
</el-button>
</template>
</el-table-column>
</el-table>
@ -98,6 +102,7 @@
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
<detailPage v-if="showDetail" ref="detailRef" @close="showDetail = false" :detailConfig="detailConfig" />
</div>
</template>
@ -105,14 +110,16 @@
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
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'
import detailConfig from './detail'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
const detailRef = ref('')
//
const showEdit = ref(false)
const showDetail = ref(false)
//
const queryParams = reactive({
@ -173,7 +180,15 @@ const handleDelete = async (id: number | any[]) => {
await apiTaskHandlingThreeLevelReviewDelete({ id })
getLists()
}
//
const handleDetail = async (id: any) => {
let res = await apiTaskHandlingThreeLevelReviewDetail({ id })
showDetail.value = true
await nextTick()
detailRef.value?.open()
detailRef.value?.setFormData(res)
}
getLists()
</script>

View File

@ -0,0 +1,34 @@
const detailConfig = {
title: "工程监理--第一次工地会议",
config: [
{
label: "所属项目",
value: "project_name"
},
{
label: "任务编号",
value: "num"
},
{
label: "任务名称",
value: "name"
},
{
label: "上级类别",
value: "superior_sort_text"
},
{
label: "任务级次",
value: "level"
},
{
label: "备注",
value: "remarks",
column: 1
},
],
}
export default detailConfig;

View File

@ -65,6 +65,10 @@
@click="handleDelete(row.id)">
删除
</el-button>
<el-button v-perms="['task.task_type/detail']" link @click="handleDetail(row.id)">
详情
</el-button>
</template>
</el-table-column>
</el-table>
@ -74,21 +78,28 @@
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
<detailPage v-if="showDetail" ref="detailRef" @close="showEdit = false" :detailConfig="detailConfig"
width="30vw" :column="1" />
</div>
</template>
<script lang="ts" setup name="taskTypeLists">
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
import { apiTaskTypeLists, apiTaskTypeDelete } from '@/api/task_type'
import { apiTaskTypeLists, apiTaskTypeDelete, apiTaskTypeDetail } from '@/api/task_type'
import { useDictOptions } from "@/hooks/useDictOptions"
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
import { apiCostProjectDatas } from "@/api/cost_project";
import detailConfig from './detail'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
const detailRef = ref('')
//
const showEdit = ref(false)
const showDetail = ref(false)
const loading = ref(false)
const queryCostProject = async (query: string) => {
@ -161,5 +172,15 @@ const handleDelete = async (id: number | any[]) => {
getLists()
}
//
const handleDetail = async (id: any) => {
let res = await apiTaskTypeDetail({ id })
showDetail.value = true
await nextTick()
detailRef.value?.open()
detailRef.value?.setFormData(res)
}
getLists()
</script>