add
This commit is contained in:
parent
d15cb6e327
commit
ad76547862
src
components/formTable
layout/default/components/header
views
financial_department_income_settlement
financial_expense_reimbursement
financial_fee_application
financial_using_funds
supervision_construction_management_personnel
supervision_inspection
supervision_large_equipment
supervision_monitoring_equipment
supervision_participating_units
supervision_participating_units_qualifications
supervision_safety_management_personnel
supervision_side_station
supervision_special_operation_personnel
task_allocation
task_type
@ -6,27 +6,41 @@
|
||||
<el-table :data="formData">
|
||||
<el-table-column label="操作" v-if="config?.deleteApi">
|
||||
<template #default="{ row }">
|
||||
<el-button @click="handleAdd">+</el-button>
|
||||
<el-button @click="handleDelete(row)">-</el-button>
|
||||
<el-form-item label-width="0">
|
||||
<el-button @click="handleAdd">+</el-button>
|
||||
<el-button @click="handleDelete(row)">-</el-button>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<slot></slot>
|
||||
<el-table-column :label="item.label" v-for="(item, index) in config.tableConfig" :key="index"
|
||||
:prop="item[value]">
|
||||
<template #default="{ row }">
|
||||
<el-select v-model="row[item.value]" v-if="item.select">
|
||||
<el-option v-for="items in (Array.isArray(item.select) ? item.select : dictData[item.select])"
|
||||
:label="items.name" :value="items.value"></el-option>
|
||||
</el-select>
|
||||
<!-- 下拉框 -->
|
||||
<el-form-item v-if="item.select" label-width="0">
|
||||
<el-select v-model="row[item.value]">
|
||||
<el-option v-for="items in (Array.isArray(item.select) ? item.select : dictData[item.select])"
|
||||
:label="items.name" :value="items.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-date-picker class="flex-1 !flex" v-model="row[item.value]" clearable value-format="YYYY-MM-DD"
|
||||
placeholder="请选择日期" v-else-if="item.date">
|
||||
</el-date-picker>
|
||||
<!-- 时间框 -->
|
||||
<el-form-item v-else-if="item.date" :prop="item.check ? item.value : ''" label-width="0">
|
||||
<el-date-picker class="flex-1 !flex" v-model="row[item.value]" clearable value-format="YYYY-MM-DD"
|
||||
placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
|
||||
<el-input v-model="row[item.value]" v-else-if="item.label.includes('单位')"
|
||||
@input="row[item.value] = row[item.value].replace(/\d+/g, '')" />
|
||||
|
||||
<el-input v-model="row[item.value]" v-else :type="item.type == 'number' ? 'number' : 'text'" />
|
||||
<el-form-item v-else-if="item.label.includes('单位')" :prop="item.check ? item.value : ''"
|
||||
label-width="0">
|
||||
<el-input v-model="row[item.value]"
|
||||
@input="row[item.value] = row[item.value].replace(/\d+/g, '')" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item :prop="item.check ? item.value : ''" v-else label-width="0">
|
||||
<el-input v-model="row[item.value]" :type="item.type == 'number' ? 'number' : 'text'" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #empty>
|
||||
|
@ -6,7 +6,7 @@
|
||||
{{ item.name }}
|
||||
</div> -->
|
||||
<div class="mr-5 cursor-pointer flex items-center flex-col transition-all duration-300 h-28 "
|
||||
@click="menuClick(item.id)" v-for="(item, index) in menuList" v-show="item.paths != 'workbench'">
|
||||
@click="menuClick(item)" v-for="(item, index) in menuList" v-show="item.paths != 'workbench'">
|
||||
<el-image class="w-[35px] h-[35px] mb-[5px]"
|
||||
:src="menuName == item.name ? getImgById(item.id)?.actImg : getImgById(item.id)?.img" />
|
||||
{{ item.name }}
|
||||
@ -22,9 +22,12 @@ const userStore = useUserStore()
|
||||
const menuList = reactive([])
|
||||
const menuName = ref('')
|
||||
|
||||
const menuClick = (id) => {
|
||||
userStore.getUserInfoByID(id)
|
||||
localStorage.setItem('menuId', id);
|
||||
const menuClick = async (item) => {
|
||||
userStore.getUserInfoByID(item.id)
|
||||
localStorage.setItem('menuId', item.id);
|
||||
await nextTick()
|
||||
menuName.value = item.name
|
||||
|
||||
}
|
||||
|
||||
getUserInfo().then(res => {
|
||||
|
@ -99,14 +99,20 @@ const tableConfig = reactive(
|
||||
{
|
||||
label: "预算分成金额",
|
||||
value: 'amount',
|
||||
type: 'number'
|
||||
|
||||
},
|
||||
{
|
||||
label: "结算金额",
|
||||
value: 'settlement_amount',
|
||||
type: 'number'
|
||||
|
||||
},
|
||||
{
|
||||
label: "结算单号",
|
||||
value: 'settlement_code',
|
||||
type: 'number'
|
||||
|
||||
},
|
||||
{
|
||||
label: "备注",
|
||||
|
@ -168,6 +168,8 @@ const tableConfig = reactive(
|
||||
{
|
||||
label: "金额",
|
||||
value: 'amount',
|
||||
type: 'number'
|
||||
|
||||
},
|
||||
{
|
||||
label: "摘要",
|
||||
|
@ -119,9 +119,11 @@ const tableConfig = reactive(
|
||||
{
|
||||
label: "票据张数",
|
||||
value: 'bill_num',
|
||||
type: 'number'
|
||||
},
|
||||
{
|
||||
label: "申请金额",
|
||||
type: 'number',
|
||||
value: 'amount',
|
||||
},
|
||||
{
|
||||
|
@ -96,6 +96,7 @@ import { timeFormat } from '@/utils/util'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
import detailConfig from './detail'
|
||||
import { deptLists } from "@/api/org/department"
|
||||
|
||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||
const detailRef = ref('')
|
||||
|
@ -49,14 +49,14 @@
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="发证日期1">
|
||||
<el-form-item label="发证日期1" prop="get_date_one">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.get_date_one" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="有效日期1">
|
||||
<el-form-item label="有效日期1" prop="effective_date_one">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.effective_date_one" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
@ -90,14 +90,14 @@
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="发证日期2">
|
||||
<el-form-item label="发证日期2" prop="get_date_two">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.get_date_two" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="有效日期2">
|
||||
<el-form-item label="有效日期2" prop="effective_date_two">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.effective_date_two" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
@ -191,6 +191,26 @@ const formData = reactive({
|
||||
create_time: "",
|
||||
});
|
||||
|
||||
|
||||
|
||||
const chekcDate = (rule: any, value: any, callback: any) => {
|
||||
if (new Date(formData.effective_date_one) < new Date(formData.get_date_one)) {
|
||||
callback(new Error('有效日期不能早于发证日期'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const chekcDate1 = (rule: any, value: any, callback: any) => {
|
||||
if (new Date(formData.effective_date_two) < new Date(formData.get_date_two)) {
|
||||
callback(new Error('有效日期不能早于发证日期'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const customEvent1 = (e) => {
|
||||
formData.unit_qualification_id = e.id;
|
||||
formData.company_name = e.company_name;
|
||||
@ -275,6 +295,10 @@ const formRules = reactive<any>({
|
||||
message: "请输入有效日期1",
|
||||
trigger: ["blur"],
|
||||
},
|
||||
{
|
||||
validator: chekcDate,
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
qualification_one_status: [
|
||||
{
|
||||
@ -317,6 +341,10 @@ const formRules = reactive<any>({
|
||||
message: "请输入有效日期2",
|
||||
trigger: ["blur"],
|
||||
},
|
||||
{
|
||||
validator: chekcDate1,
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
qualification_two_status: [
|
||||
{
|
||||
|
@ -1,7 +1,6 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit"
|
||||
@close="handleClose">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
@ -17,10 +16,9 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="巡视类型" prop="inspection_type">
|
||||
<el-select class="flex-1" v-model="formData.inspection_type" clearable
|
||||
placeholder="请选择巡视类型">
|
||||
<el-option v-for="(item, index) in dictData.inspection_type" :key="index"
|
||||
:label="item.name" :value="item.value" />
|
||||
<el-select class="flex-1" v-model="formData.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-col>
|
||||
@ -117,8 +115,8 @@
|
||||
<div v-if="showDialog1">
|
||||
<el-dialog v-model="showDialog1" width="70%" :title="flag ? '检查表单' : '选择施工单位'">
|
||||
<dialogTable :config="supervision_check_item" @customEvent="customEvents"
|
||||
:query="{ project_id: formData.project_id, node_type: flag ? '' : 2 }"
|
||||
:multipleChoice="flag"></dialogTable>
|
||||
:query="{ project_id: formData.project_id, node_type: flag ? '' : 2 }" :multipleChoice="flag">
|
||||
</dialogTable>
|
||||
</el-dialog>
|
||||
</div>
|
||||
<div v-if="showDialog2">
|
||||
@ -308,6 +306,15 @@ const customEvent1 = (e) => {
|
||||
showDialog2.value = false
|
||||
}
|
||||
|
||||
const chekcDate = (rule: any, value: any, callback: any) => {
|
||||
if (new Date(formData.end_time) < new Date(formData.start_time)) {
|
||||
callback(new Error('巡视结束时间早于巡视开始时间'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
@ -355,6 +362,10 @@ const formRules = reactive<any>({
|
||||
required: true,
|
||||
message: '请输入巡视结束时间',
|
||||
trigger: ['blur']
|
||||
},
|
||||
{
|
||||
validator: chekcDate,
|
||||
trigger: ['blur']
|
||||
}],
|
||||
inspection_user: [{
|
||||
required: true,
|
||||
|
@ -175,6 +175,23 @@ const customEvent1 = (e) => {
|
||||
showDialog1.value = false;
|
||||
};
|
||||
|
||||
const chekcDate = (rule: any, value: any, callback: any) => {
|
||||
if (new Date(formData.effective_date_one) < new Date(formData.get_date_one)) {
|
||||
callback(new Error('有效日期不能早于发证日期'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
const chekcDate1 = (rule: any, value: any, callback: any) => {
|
||||
if (new Date(formData.qualification_two_status) < new Date(formData.get_date_two)) {
|
||||
callback(new Error('有效日期不能早于发证日期'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
unit_qualification_id: [
|
||||
@ -225,6 +242,10 @@ const formRules = reactive<any>({
|
||||
message: "请输入有效日期1",
|
||||
trigger: ["blur"],
|
||||
},
|
||||
{
|
||||
validator: chekcDate,
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
qualification_one_status: [
|
||||
{
|
||||
@ -267,6 +288,10 @@ const formRules = reactive<any>({
|
||||
message: "请输入有效日期2",
|
||||
trigger: ["blur"],
|
||||
},
|
||||
{
|
||||
validator: chekcDate1,
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
qualification_two_status: [
|
||||
{
|
||||
|
@ -1,7 +1,6 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit"
|
||||
@close="handleClose">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
||||
<el-form-item label="项目名称" prop="project_name">
|
||||
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||
@ -20,9 +19,9 @@
|
||||
<el-input v-model="formData.device_sn" 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="请输入编号" v-type="'code'" />
|
||||
</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-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||
|
@ -64,7 +64,7 @@
|
||||
<el-table-column label="设备序列号" prop="device_sn" show-overflow-tooltip />
|
||||
<el-table-column label="编号" prop="number" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<el-table-column label="操作" width="170" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['supervision_project.supervision_monitoring_equipment/edit']"
|
||||
type="primary" link @click="handleEdit(row)">
|
||||
|
@ -1,7 +1,6 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit"
|
||||
@close="handleClose">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
@ -64,6 +63,10 @@ import {
|
||||
} from "@/api/supervision_participating_units_contacts";
|
||||
import { supervision_project } from "@/components/dialogTable/dialogTableConfig";
|
||||
import type { PropType } from "vue";
|
||||
import { checkPhone, checkEmail } from "@/utils/validate"
|
||||
|
||||
|
||||
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
@ -111,15 +114,19 @@ const tableConfig = reactive(
|
||||
},
|
||||
{
|
||||
label: "办公电话",
|
||||
value: 'telephone'
|
||||
value: 'telephone',
|
||||
type: 'number'
|
||||
},
|
||||
{
|
||||
label: "手机号码",
|
||||
value: 'mobile'
|
||||
value: 'mobile',
|
||||
check: true
|
||||
},
|
||||
{
|
||||
label: "电子邮箱",
|
||||
value: 'email'
|
||||
value: 'email',
|
||||
check: true
|
||||
|
||||
},
|
||||
{
|
||||
label: "传真",
|
||||
@ -172,6 +179,25 @@ const formRules = reactive<any>({
|
||||
message: "请输入联系电话",
|
||||
trigger: ["blur"],
|
||||
},
|
||||
{
|
||||
validator: checkPhone,
|
||||
trigger: ["blur"],
|
||||
},
|
||||
|
||||
],
|
||||
mobile: [
|
||||
{
|
||||
validator: checkPhone,
|
||||
trigger: ["blur"],
|
||||
},
|
||||
|
||||
],
|
||||
email: [
|
||||
{
|
||||
validator: checkEmail,
|
||||
trigger: ["blur"],
|
||||
},
|
||||
|
||||
],
|
||||
duty: [
|
||||
{
|
||||
|
@ -44,7 +44,7 @@
|
||||
<el-table-column label="资质等级" prop="qualification_grade" show-overflow-tooltip />
|
||||
<el-table-column label="联系电话" prop="telephone" show-overflow-tooltip />
|
||||
<el-table-column label="责任范围" prop="duty" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<el-table-column label="操作" width="170" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['supervision_project.supervision_participating_units/edit']" type="primary"
|
||||
link @click="handleEdit(row)">
|
||||
|
@ -1,5 +1,5 @@
|
||||
const detailConfig = {
|
||||
title: "工程监理--第一次工地会议",
|
||||
title: "工程监理--参建单位资质",
|
||||
config: [
|
||||
{
|
||||
label: "项目名称",
|
||||
|
@ -21,7 +21,7 @@
|
||||
placeholder="选择签订日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="有效日期">
|
||||
<el-form-item label="有效日期" prop="effective_date">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.effective_date" clearable
|
||||
value-format="YYYY-MM-DD " placeholder="选择签订日期">
|
||||
</el-date-picker>
|
||||
@ -95,6 +95,17 @@ const formData = reactive({
|
||||
remark: '',
|
||||
annex: [],
|
||||
})
|
||||
|
||||
|
||||
const chekcDate = (rule: any, value: any, callback: any) => {
|
||||
if (new Date(formData.effective_date) < new Date(formData.get_date)) {
|
||||
callback(new Error('有效日期不能早于发证日期'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const customEvent = (e) => {
|
||||
formData.project_id = e.id
|
||||
formData.project_name = e.project_name
|
||||
@ -135,7 +146,10 @@ const formRules = reactive<any>({
|
||||
}],
|
||||
effective_date: [{
|
||||
required: true,
|
||||
message: '请输入有效日期',
|
||||
trigger: ['blur']
|
||||
},
|
||||
{
|
||||
validator: chekcDate,
|
||||
trigger: ['blur']
|
||||
}],
|
||||
qualification_status: [{
|
||||
|
@ -45,7 +45,7 @@
|
||||
<el-table-column label="有效日期" prop="effective_date" show-overflow-tooltip />
|
||||
<el-table-column label="资质状态" prop="qualification_status_text" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<el-table-column label="操作" width="170" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
v-perms="['supervision_qualification_review.supervision_participating_units_qualifications/edit']"
|
||||
|
@ -1,5 +1,5 @@
|
||||
const detailConfig = {
|
||||
title: "工程监理--施工管理人员",
|
||||
title: "工程监理--安全管理人员",
|
||||
config: [
|
||||
{
|
||||
label: "所属单位",
|
||||
|
@ -1,7 +1,6 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="60vw" @confirm="handleSubmit"
|
||||
@close="handleClose">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="60vw" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
@ -45,7 +44,8 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质编号1" prop="qualification_number_one">
|
||||
<el-input v-model="formData.qualification_number_one" clearable placeholder="请输入资质编号1" />
|
||||
<el-input v-model="formData.qualification_number_one" clearable placeholder="请输入资质编号1"
|
||||
v-type="'code'" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@ -85,7 +85,8 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="资质编号2" prop="qualification_number_two">
|
||||
<el-input v-model="formData.qualification_number_two" clearable placeholder="请输入资质编号2" />
|
||||
<el-input v-model="formData.qualification_number_two" clearable placeholder="请输入资质编号2"
|
||||
v-type="'code'" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@ -128,8 +129,7 @@
|
||||
|
||||
<div v-if="showDialog1">
|
||||
<el-dialog v-model="showDialog1" title="选择单位" width="70%">
|
||||
<dialogTable :config="supervision_participating_units_qualifications"
|
||||
@customEvent="customEvent1">
|
||||
<dialogTable :config="supervision_participating_units_qualifications" @customEvent="customEvent1">
|
||||
</dialogTable>
|
||||
</el-dialog>
|
||||
</div>
|
||||
@ -144,6 +144,7 @@ import Popup from '@/components/popup/index.vue'
|
||||
import { apiSupervisionSafetyManagementPersonnelAdd, apiSupervisionSafetyManagementPersonnelEdit, } from '@/api/supervision_safety_management_personnel'
|
||||
import { supervision_participating_units_qualifications } from "@/components/dialogTable/dialogTableConfig"
|
||||
import type { PropType } from 'vue'
|
||||
import { checkIdcard } from "@/utils/validate"
|
||||
|
||||
|
||||
defineProps({
|
||||
@ -171,7 +172,7 @@ const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑工程监理--施工管理人员' : '新增工程监理--施工管理人员'
|
||||
return mode.value == 'edit' ? '编辑工程监理--安全管理人员' : '新增工程监理--安全管理人员'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
@ -227,11 +228,17 @@ const formRules = reactive<any>({
|
||||
message: '请输入所属单位',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
id_card: [{
|
||||
required: true,
|
||||
message: '请输入身份证',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
id_card: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入身份证',
|
||||
trigger: ['blur']
|
||||
},
|
||||
{
|
||||
validator: checkIdcard,
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
technical_title: [{
|
||||
required: true,
|
||||
message: '请输入技术职称',
|
||||
|
@ -57,7 +57,7 @@
|
||||
<el-table-column label="资质2状态 " prop="qualification_two_status_text" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="创建人" prop="create_user" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<el-table-column label="操作" width="170" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
v-perms="['supervision_qualification_review.supervision_safety_management_personnel/edit']"
|
||||
|
@ -1,7 +1,6 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit"
|
||||
@close="handleClose">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
@ -17,8 +16,7 @@
|
||||
</el-col>
|
||||
<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="请选择巡视类型">
|
||||
<el-select class="flex-1" v-model="formData.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>
|
||||
@ -80,8 +78,7 @@
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="旁站" prop="side_station_result">
|
||||
<el-select v-model="formData.side_station_result" clearable placeholder="请选择"
|
||||
class="flex-1">
|
||||
<el-select v-model="formData.side_station_result" clearable placeholder="请选择" class="flex-1">
|
||||
<el-option label="完成" value="0" />
|
||||
<el-option label="交班" value="1" />
|
||||
</el-select>
|
||||
@ -116,8 +113,8 @@
|
||||
<div v-if="showDialog1">
|
||||
<el-dialog v-model="showDialog1" width="70%" :title="flag ? '检查表单' : '选择施工单位'">
|
||||
<dialogTable :config="supervision_check_item" @customEvent="customEvents"
|
||||
:query="{ project_id: formData.project_id, node_type: flag ? '' : 2 }"
|
||||
:multipleChoice="flag"></dialogTable>
|
||||
:query="{ project_id: formData.project_id, node_type: flag ? '' : 2 }" :multipleChoice="flag">
|
||||
</dialogTable>
|
||||
</el-dialog>
|
||||
</div>
|
||||
<div v-if="showDialog2">
|
||||
@ -319,6 +316,15 @@ const customEvent1 = (e) => {
|
||||
}
|
||||
|
||||
|
||||
|
||||
const chekcDate = (rule: any, value: any, callback: any) => {
|
||||
if (new Date(formData.end_time) < new Date(formData.start_time)) {
|
||||
callback(new Error('旁站结束时间不能早于旁站开始时间'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
project_id: [{
|
||||
@ -360,6 +366,10 @@ const formRules = reactive<any>({
|
||||
required: true,
|
||||
message: '请输入旁站结束时间',
|
||||
trigger: ['blur']
|
||||
},
|
||||
{
|
||||
validator: chekcDate,
|
||||
trigger: ['blur']
|
||||
}],
|
||||
workers: [{
|
||||
required: true,
|
||||
|
@ -1,7 +1,6 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit"
|
||||
@close="handleClose">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules" :disabled="mode == 'detail'">
|
||||
|
||||
<el-form-item label="所属单位" prop="unit_qualification_id">
|
||||
@ -98,6 +97,14 @@ const formData = reactive({
|
||||
})
|
||||
|
||||
|
||||
const chekcDate = (rule: any, value: any, callback: any) => {
|
||||
if (new Date(formData.leave_time) < new Date(formData.enter_time)) {
|
||||
callback(new Error('离场时间不能早于进场时间'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
const customEvent1 = (e) => {
|
||||
formData.unit_qualification_id = e.id
|
||||
formData.company_name = e.company_name
|
||||
@ -142,6 +149,10 @@ const formRules = reactive<any>({
|
||||
required: true,
|
||||
message: '请输入离场时间',
|
||||
trigger: ['blur']
|
||||
},
|
||||
{
|
||||
validator: chekcDate,
|
||||
trigger: ['blur']
|
||||
}],
|
||||
status: [{
|
||||
required: true,
|
||||
|
@ -57,134 +57,175 @@
|
||||
</template>
|
||||
<el-table-column label="序号" width="150px">
|
||||
<template #default="{ row }">
|
||||
<el-button @click="handleAdd()">+</el-button>
|
||||
<el-button @click="handleDelete(row)">-</el-button>
|
||||
<el-form-item label-width="0">
|
||||
<el-button @click="handleAdd()">+</el-button>
|
||||
<el-button @click="handleDelete(row)">-</el-button>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务名称" prop="task_name" width="200px">
|
||||
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.task_name" readonly
|
||||
@click="showDialog1 = true, tableIndex = scope.$index" placeholder="点击选择" />
|
||||
<el-form-item label-width="0">
|
||||
<el-input v-model="scope.row.task_name" readonly
|
||||
@click="showDialog1 = true, tableIndex = scope.$index" placeholder="点击选择" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务次级" prop="level" width="200px">
|
||||
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.level" />
|
||||
<el-form-item label-width="0">
|
||||
<el-input v-model="row.level" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工序" prop="process" width="200px">
|
||||
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.process" />
|
||||
<el-form-item label-width="0">
|
||||
<el-input v-model="row.process" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务类型" prop="task_type_id" width="200px">
|
||||
|
||||
<template #default="{ row }">
|
||||
<el-select class="flex-1" v-model="row.task_type_id" clearable placeholder="请选择任务类型">
|
||||
<el-option v-for="(item, index) in dictData.task_type" :key="index" :label="item.name"
|
||||
:value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
<el-form-item label-width="0">
|
||||
<el-select class="flex-1" v-model="row.task_type_id" clearable placeholder="请选择任务类型">
|
||||
<el-option v-for="(item, index) in dictData.task_type" :key="index"
|
||||
:label="item.name" :value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业类型" prop="professional_type" width="200px">
|
||||
|
||||
<template #default="{ row }">
|
||||
<el-select class="flex-1" v-model="row.professional_type" clearable placeholder="请选择专业类型">
|
||||
<el-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
<el-form-item label-width="0">
|
||||
<el-select class="flex-1" v-model="row.professional_type" clearable
|
||||
placeholder="请选择专业类型">
|
||||
<el-option v-for="(item, index) in dictData.major_type" :key="index"
|
||||
:label="item.name" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工程师" prop="engineer" width="200px">
|
||||
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.engineer" @click="userclick(scope.$index, 'engineer')" />
|
||||
<el-form-item label-width="0">
|
||||
<el-input v-model="scope.row.engineer" @click="userclick(scope.$index, 'engineer')" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="一级审核人" prop="first_reviewer" width="200px">
|
||||
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.first_reviewer"
|
||||
@click="userclick(scope.$index, 'first_reviewer')" />
|
||||
<el-form-item label-width="0">
|
||||
<el-input v-model="scope.row.first_reviewer"
|
||||
@click="userclick(scope.$index, 'first_reviewer')" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="二级审核人" prop="secondary_reviewer" width="200px">
|
||||
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.secondary_reviewer"
|
||||
@click="userclick(scope.$index, 'secondary_reviewer')" />
|
||||
<el-form-item label-width="0">
|
||||
<el-input v-model="scope.row.secondary_reviewer"
|
||||
@click="userclick(scope.$index, 'secondary_reviewer')" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="三级审核人" prop="third_level_reviewer" width="200px">
|
||||
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.third_level_reviewer"
|
||||
@click="userclick(scope.$index, 'third_level_reviewer')" />
|
||||
<el-form-item label-width="0">
|
||||
<el-input v-model="scope.row.third_level_reviewer"
|
||||
@click="userclick(scope.$index, 'third_level_reviewer')" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="天数" prop="days" width="200px">
|
||||
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.days" type="number" />
|
||||
<el-form-item label-width="0">
|
||||
<el-input v-model="row.days" type="number" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="开始日期" prop="start_date" width="220px">
|
||||
|
||||
<template #default="{ row }">
|
||||
<el-date-picker v-model="row.start_date" clearable type="date" value-format="YYYY-MM-DD"
|
||||
placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
<el-form-item label-width="0">
|
||||
<el-date-picker v-model="row.start_date" clearable type="date" value-format="YYYY-MM-DD"
|
||||
placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="结束日期" prop="end_date" width="220px">
|
||||
|
||||
<template #default="{ row }">
|
||||
<el-date-picker v-model="row.end_date" clearable type="date" value-format="YYYY-MM-DD"
|
||||
placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
<el-form-item label-width="0">
|
||||
<el-date-picker v-model="row.end_date" clearable type="date" value-format="YYYY-MM-DD"
|
||||
placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="中标金额(元)" prop="bid_winning_amount" width="200px">
|
||||
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.bid_winning_amount" type="number" />
|
||||
<el-form-item label-width="0">
|
||||
<el-input v-model="row.bid_winning_amount" type="number" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="送审造价(元)" prop="cost" width="200px">
|
||||
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.cost" type="number" />
|
||||
<el-form-item label-width="0">
|
||||
<el-input v-model="row.cost" type="number" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="第三方核定金额(元)" prop="approved_amount" width="200px">
|
||||
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.approved_amount" type="number" />
|
||||
<el-form-item label-width="0">
|
||||
<el-input v-model="row.approved_amount" type="number" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="施工单位" prop="construction_unit" width="200px">
|
||||
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.construction_unit" />
|
||||
<el-form-item label-width="0">
|
||||
<el-input v-model="row.construction_unit" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="联系人" prop="contact" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.contact" />
|
||||
<el-form-item label-width="0">
|
||||
<el-input v-model="row.contact" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="联系电话" prop="contact_phone" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.contact_phone" v-type="'phone'" />
|
||||
<el-form-item label-width="0" prop="contact_phone">
|
||||
<el-input v-model="row.contact_phone" v-type="'phone'" />
|
||||
</el-form-item>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" prop="remark" width="200px">
|
||||
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.remark" />
|
||||
<el-form-item label-width="0">
|
||||
<el-input v-model="row.remark" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -200,10 +241,10 @@ import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiTaskAllocationAdd, apiTaskAllocationEdit, } from '@/api/task_allocation'
|
||||
import { apiTaskDetailDelete } from '@/api/task_detail'
|
||||
|
||||
import { cost_project, task_type } from "@/components/dialogTable/dialogTableConfig"
|
||||
import type { PropType } from 'vue'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import { checkPhone } from '@/utils/validate'
|
||||
|
||||
defineProps({
|
||||
dictData: {
|
||||
@ -315,7 +356,13 @@ const submituser = (e: any) => {
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
contact_phone: [
|
||||
{
|
||||
validator: checkPhone,
|
||||
trigger: ["blur"],
|
||||
},
|
||||
|
||||
],
|
||||
})
|
||||
|
||||
|
||||
|
@ -54,7 +54,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="任务级次" prop="level" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remarks" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<el-table-column label="操作" width="170" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['task.task_type/edit']" type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
|
Loading…
x
Reference in New Issue
Block a user