This commit is contained in:
mkm 2024-07-28 21:16:04 +08:00
parent 7a73f4e1fc
commit 2a118bd270
4 changed files with 946 additions and 935 deletions

View File

@ -2,4 +2,4 @@ NODE_ENV = 'development'
VITE_APP_BASE_URL = 'https://ceshi-engineering.lihaink.cn/'
# VITE_APP_BASE_URL = 'http://www.eng.local/'
# VITE_APP_BASE_URL = 'http://192.168.1.5:9090/'
#VITE_APP_BASE_URL = 'http://192.168.1.8:8526/'

View File

@ -6,18 +6,18 @@
<el-row>
<el-col :span="8">
<el-form-item label="项目编号" prop="project_num">
<el-input v-model="formData.project_num" clearable placeholder="系统自动生成" disabled />
<el-input v-model="formData.project_num" clearable placeholder="系统自动生成" disabled/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_name">
<el-input v-model="formData.project_name" clearable placeholder="请输入项目名称" />
<el-input v-model="formData.project_name" clearable placeholder="请输入项目名称"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="关联合同" prop="contract_id">
<el-input v-model="formData.contract_name" clearable placeholder="点击选择项目" readonly
@click="showDialog = true" />
@click="showDialog = true"/>
</el-form-item>
</el-col>
<!-- <el-col :span="8">
@ -31,7 +31,7 @@
<el-form-item label="咨询类型" prop="types">
<el-select v-model="formData.types" clearable placeholder="请选择业务性质" class="flex-1">
<el-option v-for="(item, index) in dictData.consultation_type" :key="index"
:label="item.name" :value="parseInt(item.value)" />
:label="item.name" :value="parseInt(item.value)"/>
</el-select>
</el-form-item>
</el-col>
@ -40,7 +40,7 @@
<!-- <el-select v-model="formData.industry" clearable placeholder="请选择行业" class="flex-1" disabled> -->
<el-select v-model="formData.industry" clearable placeholder="请选择行业" class="flex-1">
<el-option v-for="( item, index ) in dictData.cost_consultation_industry_nature"
:key="index" :label="item.name" :value="parseInt(item.value)" />
:key="index" :label="item.name" :value="parseInt(item.value)"/>
</el-select>
</el-form-item>
</el-col>
@ -49,7 +49,7 @@
<el-select v-model="formData.province" clearable placeholder="请选择省"
@change="province_change" class="flex-1">
<el-option v-for="(item, index) in datas.provinceOptions" :key="index"
:label="item.province_name" :value="(item.province_code)" />
:label="item.province_name" :value="(item.province_code)"/>
</el-select>
</el-form-item>
</el-col>
@ -58,13 +58,13 @@
<el-form-item label="所在市区" prop="city">
<el-select v-model="formData.city" clearable placeholder="请选择市" class="flex-1">
<el-option v-for="(item, index) in datas.cityOptions" :key="index"
:label="item.city_name" :value="(item.city_code)" />
:label="item.city_name" :value="(item.city_code)"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="具体地址" prop="address">
<el-input v-model="formData.address" clearable placeholder="请输入具体地址" />
<el-input v-model="formData.address" clearable placeholder="请输入具体地址"/>
</el-form-item>
</el-col>
<el-col :span="8">
@ -88,7 +88,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="计划工期" prop="jhgq">
<el-input v-model="formData.jhgq" clearable placeholder="请输入计划工期(天)" type="number" />
<el-input v-model="formData.jhgq" clearable placeholder="请输入计划工期(天)" type="number"/>
</el-form-item>
</el-col>
@ -98,7 +98,7 @@
]">
<el-select class="flex-1" v-model="formData.depar" clearable placeholder="请选择部门">
<el-option v-for="(item, index) in deptList" :key="index" :label="item.name"
:value="item.id" />
:value="item.id"/>
</el-select>
</el-form-item>
</el-col>
@ -107,13 +107,13 @@
<!-- <el-input v-model="formData.principal" clearable placeholder="请输入项目负责人"
@click="userclick('principal')" disabled /> -->
<el-input v-model="formData.principal_name" clearable placeholder="请输入项目负责人"
@click="userclick('principal')" />
@click="userclick('principal')"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目相关人员" prop="person" label-width="120px">
<el-input v-model="formData.person_text" clearable placeholder="请输入项目相关人员"
@click="userclick('person')" />
@click="userclick('person')"/>
</el-form-item>
</el-col>
@ -121,42 +121,42 @@
<el-form-item label="项目总投资" prop="invest">
<!-- <el-input v-model="formData.invest" clearable placeholder="请输入项目总投资(元)" type="number"
disabled /> -->
<el-input v-model="formData.invest" clearable placeholder="请输入项目总投资(元)" type="number" />
<el-input v-model="formData.invest" clearable placeholder="请输入项目总投资(元)" type="number"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="预算造价" prop="budget">
<el-input v-model="formData.budget" clearable placeholder="请输入预算造价(元)" type="number" />
<el-input v-model="formData.budget" clearable placeholder="请输入预算造价(元)" type="number"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="送审造价" prop="cost">
<el-input v-model="formData.cost" clearable placeholder="请输入送审造价(元)" type="number" />
<el-input v-model="formData.cost" clearable placeholder="请输入送审造价(元)" type="number"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="审定造价" prop="approval">
<el-input v-model="formData.approval" clearable placeholder="请输入审定造价(元)" type="number" />
<el-input v-model="formData.approval" clearable placeholder="请输入审定造价(元)" type="number"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="委托单位" prop="aunit">
<!-- <el-input v-model="formData.aunit" clearable placeholder="请输入委托单位" disabled /> -->
<el-input v-model="formData.aunit_name" clearable placeholder="请输入委托单位" />
<el-input v-model="formData.aunit_name" clearable placeholder="请输入委托单位"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="委托方联系人" prop="Acontact" label-width="120px">
<!-- <el-input v-model="formData.Acontact" clearable placeholder="请输入委托方联系人" disabled /> -->
<el-input v-model="formData.Acontact" clearable placeholder="请输入委托方联系人" />
<el-input v-model="formData.Acontact" clearable placeholder="请输入委托方联系人"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系电话" prop="acontactnum">
<el-input v-model="formData.acontactnum" clearable placeholder="请输入联系电话" type="number" />
<el-input v-model="formData.acontactnum" clearable placeholder="请输入联系电话" type="number"/>
</el-form-item>
</el-col>
<el-col :span="8">
@ -171,23 +171,23 @@
<!-- <el-input v-model="formData.generalize" clearable placeholder="请输入项目规模及概括" disabled
type="textarea" /> -->
<el-input v-model="formData.generalize" clearable placeholder="请输入项目规模及概括"
type="textarea" />
type="textarea"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建设单位" prop="js_unit">
<el-input v-model="formData.js_unit" clearable placeholder="请输入建设单位" />
<el-input v-model="formData.js_unit" clearable placeholder="请输入建设单位"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="注意事项" prop="note">
<el-input v-model="formData.note" clearable placeholder="请输入注意事项" />
<el-input v-model="formData.note" clearable placeholder="请输入注意事项"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea"/>
</el-form-item>
</el-col>
</el-row>
@ -211,17 +211,15 @@
</template>
<script lang="ts" setup name="costProjectEdit">
import type { FormInstance } from "element-plus";
import type {FormInstance} from "element-plus";
import Popup from "@/components/popup/index.vue";
import { apiCostProjectAdd, apiCostProjectEdit } from "@/api/cost_project";
import { apiCostApprovedProjectDetail } from '@/api/cost_approved_project'
import type { PropType } from "vue";
import { useRoute } from "vue-router";
import { cost_approved_projects } from "@/components/dialogTable/dialogTableConfig";
import { apiCityList, apiProvinceList } from "@/api/common";
import { checkPhone } from "@/utils/validate"
import {apiCostProjectAdd, apiCostProjectEdit} from "@/api/cost_project";
import {apiCostApprovedProjectDetail} from '@/api/cost_approved_project'
import type {PropType} from "vue";
import {useRoute} from "vue-router";
import {cost_approved_projects} from "@/components/dialogTable/dialogTableConfig";
import {apiCityList, apiProvinceList} from "@/api/common";
import {checkPhone} from "@/utils/validate"
defineProps({
@ -292,6 +290,8 @@ const datas = reactive({
});
const customEvent = (e) => {
formData.project_num = e.contract_code;
formData.contract_id = e.id;
formData.contract_name = e.contract_name;
formData.project_name = e.contract_name;
@ -309,8 +309,14 @@ const customEvent = (e) => {
formData.jhgq = e.jhgq
formData.address = e.part_a_address
formData.Acontact = e.part_a_acontact
formData.acontactnum = e.telephone
formData.acontactnum = e.part_a_acontactnum
formData.province = e.province
formData.city = e.city
formData.principal = e.signed_head
showDialog.value = false;
if(e.city!=''){
getCityList()
}
};
const getProvinceList = async () => {
@ -318,7 +324,7 @@ const getProvinceList = async () => {
datas["provinceOptions"] = data;
};
const getCityList = async () => {
const data = await apiCityList({ province_code: formData.province });
const data = await apiCityList({province_code: formData.province});
datas["cityOptions"] = data;
};
@ -431,7 +437,7 @@ const setFormData = async (data: Record<any, any>) => {
const handleSubmit = async () => {
Array.isArray(formData.annex) ? "" : (formData.annex = []);
await formRef.value?.validate();
const data = { ...formData };
const data = {...formData};
mode.value == "edit"
? await apiCostProjectEdit(data)
: await apiCostProjectAdd(data);
@ -477,7 +483,7 @@ const handleClose = () => {
if (route.query.contractId) {
// handleAdd()
apiCostApprovedProjectDetail({ id: route.query.contractId }).then(res => {
apiCostApprovedProjectDetail({id: route.query.contractId}).then(res => {
customEvent(res)
})
// // handleAdd()

View File

@ -805,6 +805,9 @@ const setFormData = async (data: Record<any, any>) => {
formData.framework_agreement_name = data['framework_agreement_name']
}
}
if(data.city!=''){
getCityList()
}
}
const getDetail = async (row: Record<string, any>) => {
@ -847,7 +850,6 @@ const open = (type = 'add') => {
mode.value = type
popupRef.value?.open()
}
//
const handleClose = () => {
emit('close')

View File

@ -7,14 +7,14 @@
<el-row>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_name">
<el-input v-model="formData.project_name" clearable placeholder="请输入项目名称" />
<el-input v-model="formData.project_name" clearable placeholder="请输入项目名称"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="行业">
<el-select class="flex-1" v-model="formData.industry" clearable placeholder="请选择行业">
<el-option v-for="(item, index) in dictData.supervision_project_industry" :key="index"
:label="item.name" :value="parseInt(item.value)" />
:label="item.name" :value="parseInt(item.value)"/>
</el-select>
</el-form-item>
</el-col>
@ -22,7 +22,7 @@
<el-form-item label="性质">
<el-select class="flex-1" v-model="formData.nature" clearable placeholder="请选择性质">
<el-option v-for="(item, index) in dictData.supervision_project_nature" :key="index"
:label="item.name" :value="parseInt(item.value)" />
:label="item.name" :value="parseInt(item.value)"/>
</el-select>
</el-form-item>
</el-col>
@ -30,20 +30,20 @@
<el-col :span="8">
<el-form-item label="建设单位">
<el-input v-model="formData.build_unit_name" clearable placeholder="请输入建设单位"
@click="showDialog1 = true" />
@click="showDialog1 = true"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建设区域">
<el-select class="flex-1" v-model="formData.build_area" clearable placeholder="请选择建设区域">
<el-option v-for="(item, index) in dictData.supervision_project_build_area" :key="index"
:label="item.name" :value="parseInt(item.value)" />
:label="item.name" :value="parseInt(item.value)"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目地址">
<el-input v-model="formData.address" clearable placeholder="请输入项目地址" />
<el-input v-model="formData.address" clearable placeholder="请输入项目地址"/>
</el-form-item>
</el-col>
</el-row>
@ -53,14 +53,14 @@
<el-form-item label="项目等级">
<el-select class="flex-1" v-model="formData.project_level" clearable placeholder="请选择盖章名称">
<el-option v-for="(item, index) in dictData.supervision_project_level" :key="index"
:label="item.name" :value="parseInt(item.value)" />
:label="item.name" :value="parseInt(item.value)"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="总投资(元)" label-width="120px">
<el-input v-model="formData.total_investment" clearable placeholder="请输入总投资(元)"
type="number" />
type="number"/>
</el-form-item>
</el-col>
<el-col :span="8">
@ -74,13 +74,13 @@
<el-col :span="8">
<el-form-item label="关联合同">
<el-input v-model="formData.contract_name" clearable placeholder="请输入关联合同"
@click="showDialog = true" readonly />
@click="showDialog = true" readonly/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同金额">
<el-input v-model="formData.contract_amount" clearable placeholder="请输入合同金额"
type="number" />
type="number"/>
</el-form-item>
</el-col>
<el-col :span="8">
@ -144,26 +144,26 @@
<el-select class="flex-1" v-model="formData.engineering_status" clearable
placeholder="请选择盖章名称">
<el-option v-for="(item, index) in dictData.supervision_project_status" :key="index"
:label="item.name" :value="parseInt(item.value)" />
:label="item.name" :value="parseInt(item.value)"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目负责人员" label-width="120px">
<el-input v-model="formData.project_manager_name" clearable placeholder="请输入项目负责人员"
@click="userclick('project_manager')" />
@click="userclick('project_manager')"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="甲方单位">
<el-input v-model="formData.part_a_unit" clearable placeholder="请输入甲方单位"
@click="showDialog2 = true" />
@click="showDialog2 = true"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="创建人" prop="create_user">
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人"/>
</el-form-item>
</el-col>
<el-col :span="8">
@ -176,24 +176,24 @@
<el-col :span="8">
<el-form-item label="合同服务内容" label-width="120px">
<el-input v-model="formData.contract_content" clearable placeholder="请输入合同服务内容"
type="textarea" />
type="textarea"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目概况">
<el-input v-model="formData.project_overview" clearable placeholder="请输入项目概况"
type="textarea" />
type="textarea"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目要求">
<el-input v-model="formData.project_requirements" clearable placeholder="请输入项目要求"
type="textarea" />
type="textarea"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注">
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea"/>
</el-form-item>
</el-col>
<el-col :span="8">
@ -208,10 +208,10 @@
</personnelselector>
</div>
<el-dialog v-model="showDialog1" title="选择甲方单位" width="70%">
<dialogTable :config="marketing_custom" @customEvent="customEvent1"> </dialogTable>
<dialogTable :config="marketing_custom" @customEvent="customEvent1"></dialogTable>
</el-dialog>
<el-dialog v-model="showDialog2" title="选择甲方单位" width="70%">
<dialogTable :config="marketing_custom" @customEvent="customEvent2"> </dialogTable>
<dialogTable :config="marketing_custom" @customEvent="customEvent2"></dialogTable>
</el-dialog>
<el-dialog v-model="showDialog" title="选择合同" width="70%">
<dialogTable :config="cost_approved_projects" @customEvent="customEvent333"
@ -223,22 +223,23 @@
</template>
<script lang="ts" setup name="supervisionProjectEdit">
import type { FormInstance } from 'element-plus'
import { cost_approved_projects } from "@/components/dialogTable/dialogTableConfig";
import type {FormInstance} from 'element-plus'
import {cost_approved_projects} from "@/components/dialogTable/dialogTableConfig";
import Popup from '@/components/popup/index.vue'
import {
apiSupervisionProjectAdd,
apiSupervisionProjectEdit,
apiSupervisionProjectDetail
} from '@/api/supervision_project'
import type { PropType } from 'vue'
import { apiCostApprovedProjectDetail } from '@/api/cost_approved_project'
import type {PropType} from 'vue'
import {apiCostApprovedProjectDetail} from '@/api/cost_approved_project'
import {
marketing_framework_agreement,
marketing_custom
} from '@/components/dialogTable/dialogTableConfig'
import { timeFormat } from '@/utils/util'
import {timeFormat} from '@/utils/util'
import useUserStore from '@/stores/modules/user'
const userStore = useUserStore().userInfo
const route = useRoute()
@ -549,7 +550,7 @@ const handleSubmit = async () => {
return
}
await formRef.value?.validate()
const data = { ...formData }
const data = {...formData}
mode.value == 'edit'
? await apiSupervisionProjectEdit(data)
: await apiSupervisionProjectAdd(data)
@ -569,20 +570,22 @@ const handleClose = () => {
}
if (route.query.contractId) {
apiCostApprovedProjectDetail({ id: route.query.contractId }).then((res) => {
apiCostApprovedProjectDetail({id: route.query.contractId}).then((res) => {
customEvent(res)
})
}
const customEvent = (e) => {
console.log(e)
formData.contract = e.id
formData.contract_name = e.contract_name
formData.project_name = e.contract_name;
formData.nature = e.industry_nature
formData.planned_start_date = e.start_date
formData.planned_end_date = e.end_date
formData.project_manager = e.project_director
formData.part_a = e.part_a
formData.part_a_unit = e.part_a_name
formData.build_unit_name = e.part_b
formData.build_unit = e.part_b_signatory
formData.build_area = e.const_area
formData.total_investment = e.project_money
formData.contract_amount = e.signed_amount