This commit is contained in:
zmj 2024-03-15 15:18:37 +08:00
parent 537a3984f0
commit 2c7e66c9fb
9 changed files with 49 additions and 72 deletions

View File

@ -57,7 +57,6 @@
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<uploadAnnex :formData="formData"></uploadAnnex> <uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item> </el-form-item>
</el-form> </el-form>
</popup> </popup>
@ -75,14 +74,8 @@ import { getAll } from '@/api/org/organization'
import projectTable from "@/components/project/index.vue" import projectTable from "@/components/project/index.vue"
import { apiCustomerDemandAdd, apiCustomerDemandEdit, apiCustomerDemandDetail } from '@/api/customer_demand' import { apiCustomerDemandAdd, apiCustomerDemandEdit, apiCustomerDemandDetail } from '@/api/customer_demand'
import { useDictData } from '@/hooks/useDictOptions' import { useDictData } from '@/hooks/useDictOptions'
//
import annexUpload from "@/components/annexUpload/index.vue"
const handleAvatarSuccess_four = (response: any) => {
// @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) }
let props = defineProps({ let props = defineProps({
project: Object project: Object

View File

@ -77,16 +77,6 @@ import { apiCustomerDemandSolutionAdd, apiCustomerDemandSolutionEdit, apiCustome
import { timeFormat } from '@/utils/util' import { timeFormat } from '@/utils/util'
import type { PropType } from 'vue' import type { PropType } from 'vue'
//
import annexUpload from "@/components/annexUpload/index.vue"
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({ const formData = reactive({
id: '', id: '',

View File

@ -81,7 +81,6 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="送审概算、预算、结算资料" prop="ssgsysjs_file" label-width="200px"> <el-form-item label="送审概算、预算、结算资料" prop="ssgsysjs_file" label-width="200px">
<!-- <material-picker v-model="formData.ssgsysjs_file" /> -->
<annexUpload :annex="formData.ssgsysjs_file" <annexUpload :annex="formData.ssgsysjs_file"
@handleAvatarSuccess="handleAvatarSuccess_four4" @delFile="delFileFn4" /> @handleAvatarSuccess="handleAvatarSuccess_four4" @delFile="delFileFn4" />
</el-form-item> </el-form-item>
@ -94,7 +93,6 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="其他资料" prop="other_file"> <el-form-item label="其他资料" prop="other_file">
<!-- <material-picker v-model="formData.other_file" /> -->
<annexUpload :annex="formData.other_file" @handleAvatarSuccess="handleAvatarSuccess_four6" <annexUpload :annex="formData.other_file" @handleAvatarSuccess="handleAvatarSuccess_four6"
@delFile="delFileFn6" /> @delFile="delFileFn6" />
</el-form-item> </el-form-item>

View File

@ -229,7 +229,6 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件"> <el-form-item label="附件">
<uploadAnnex :formData="formData"></uploadAnnex> <uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -249,15 +248,6 @@ import Popup from '@/components/popup/index.vue'
import { apiProjectAdd, apiProjectEdit, apiProjectDetail } from '@/api/project' import { apiProjectAdd, apiProjectEdit, apiProjectDetail } from '@/api/project'
import { getAllProjectTypes } from '@/api/projecttype' import { getAllProjectTypes } from '@/api/projecttype'
import type { PropType } from 'vue' import type { PropType } from 'vue'
//
import annexUpload from "@/components/annexUpload/index.vue"
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) }

View File

@ -2,7 +2,7 @@
<div class="edit-popup"> <div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" <popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit"
@close="handleClose"> @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules"> <el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="单据编号" prop="num"> <el-form-item label="单据编号" prop="num">
@ -43,17 +43,17 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目回款总额" prop="hk" label-width="120px"> <el-form-item label="项目回款总额" prop="hk">
<el-input v-model="formData.hk" clearable placeholder="请输入项目回款总额" type="number" /> <el-input v-model="formData.hk" clearable placeholder="请输入项目回款总额" type="number" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="提成比例(%" prop="rate" label-width="120px"> <el-form-item label="提成比例(%" prop="rate">
<el-input v-model="formData.rate" clearable placeholder="请输入提成比例(%" /> <el-input v-model="formData.rate" clearable placeholder="请输入提成比例(%" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="应提成总金额" prop="ticheng" label-width="120px"> <el-form-item label="应提成总金额" prop="ticheng">
<el-input v-model="formData.ticheng" clearable placeholder="请输入应提成总金额" type="number" /> <el-input v-model="formData.ticheng" clearable placeholder="请输入应提成总金额" type="number" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -65,7 +65,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="本次支付总额" prop="bczfze" label-width="120px"> <el-form-item label="本次支付总额" prop="bczfze">
<el-input v-model="formData.bczfze" clearable placeholder="请输入本次支付总额" type="number" /> <el-input v-model="formData.bczfze" clearable placeholder="请输入本次支付总额" type="number" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -128,7 +128,6 @@
<el-option v-for="(item, index) in dictData.task_type" :key="index" :label="item.name" <el-option v-for="(item, index) in dictData.task_type" :key="index" :label="item.name"
:value="parseInt(item.value)" /> :value="parseInt(item.value)" />
</el-select> </el-select>
<!-- {{ dictData.task_type }} -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="专业类型" prop="professional_type" width="200px"> <el-table-column label="专业类型" prop="professional_type" width="200px">
@ -140,7 +139,6 @@
:value="item.value" /> :value="item.value" />
</el-select> </el-select>
</template> </template>
<!-- {{ dictData.major_type }} -->
</el-table-column> </el-table-column>
<el-table-column label="造价金额" prop="zj_amount" width="200px"> <el-table-column label="造价金额" prop="zj_amount" width="200px">
@ -169,13 +167,13 @@
<el-table-column label="应提成金额" prop="tc_amount" width="200px"> <el-table-column label="应提成金额" prop="tc_amount" width="200px">
<template #default="{ row }"> <template #default="{ row }">
<el-input v-model="row.tc_amount" :disabled="mode != 'add'" type="number" /> <el-input v-model="row.tc_amount" disabled type="number" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="本次支付金额" prop="pay_amount" width="200px"> <el-table-column label="本次支付金额" prop="pay_amount" width="200px">
<template #default="{ row }"> <template #default="{ row }">
<el-input v-model="row.pay_amount" :disabled="mode != 'add'" type="number" /> <el-input v-model="row.pay_amount" @change="getBczfze" :disabled="mode != 'add'"
type="number" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" prop="remark" width="200px"> <el-table-column label="备注" prop="remark" width="200px">
@ -196,6 +194,7 @@ import Popup from '@/components/popup/index.vue'
import { apiProjectCommissionAdd, apiProjectCommissionEdit, } from '@/api/project_commission' import { apiProjectCommissionAdd, apiProjectCommissionEdit, } from '@/api/project_commission'
import type { PropType } from 'vue' import type { PropType } from 'vue'
import { cost_project } from "@/components/dialogTable/dialogTableConfig" import { cost_project } from "@/components/dialogTable/dialogTableConfig"
import { watch } from "vue"
defineProps({ defineProps({
dictData: { dictData: {
@ -262,6 +261,9 @@ const customEvent = (e) => {
formData.head = e.principal formData.head = e.principal
formData.affcontract = e.contract.id formData.affcontract = e.contract.id
formData.affcontract_name = e.contract.contract_name formData.affcontract_name = e.contract.contract_name
formData.industry = e.industry
// formData.hk=e.
// formData.hk=e.
showDialog.value = false showDialog.value = false
} }
@ -290,6 +292,30 @@ const handleDelete = (row: any) => {
formData.project_commission_detail.splice(index, 1); formData.project_commission_detail.splice(index, 1);
} }
//
watch(formData.project_commission_detail, (newVal, oldVal) => {
formData.project_commission_detail.forEach(item => {
item.tc_amount = (Number(item.sk_amount || 0) + Number(item.other_fee || 0)) * (item.tc_rate / 100)
item.tc_amount = item.tc_amount.toFixed(2)
})
})
//
const getBczfze = () => {
formData.bczfze = 0
formData.project_commission_detail.forEach(item => {
formData.bczfze += Number(item.pay_amount)
})
}
formData.ticheng ||= computed(() => {
return Number(formData.hk) * (Number(formData.rate) / 100) || 0
})
const tableIndex = ref(0) const tableIndex = ref(0)
const tableKey = ref('') const tableKey = ref('')
// //
@ -317,6 +343,7 @@ const formRules = reactive<any>({
// //
const setFormData = async (data: Record<any, any>) => { const setFormData = async (data: Record<any, any>) => {
delete data.ticheng
for (const key in formData) { for (const key in formData) {
if (data[key] != null && data[key] != undefined) { if (data[key] != null && data[key] != undefined) {
//@ts-ignore //@ts-ignore
@ -332,12 +359,6 @@ const setFormData = async (data: Record<any, any>) => {
} }
const getDetail = async (row: Record<string, any>) => {
const data = await apiProjectCommissionDetail({
id: row.id
})
setFormData(data)
}
// //
@ -367,6 +388,5 @@ const handleClose = () => {
defineExpose({ defineExpose({
open, open,
setFormData, setFormData,
getDetail
}) })
</script> </script>

View File

@ -96,6 +96,11 @@ const formData = reactive({
}) })
formData.tc_amount = computed(() => {
return (Number(formData.sk_amount || 0) + Number(formData.other_fee || 0)) * (formData.tc_rate / 100) || 0
})
// //
const userclick = async (e: any) => { const userclick = async (e: any) => {
showDialog3.value = true showDialog3.value = true
@ -118,6 +123,7 @@ const formRules = reactive<any>({
// //
const setFormData = async (data: Record<any, any>) => { const setFormData = async (data: Record<any, any>) => {
delete data.tc_amount
for (const key in formData) { for (const key in formData) {
if (data[key] != null && data[key] != undefined) { if (data[key] != null && data[key] != undefined) {
//@ts-ignore //@ts-ignore

View File

@ -113,15 +113,6 @@ import Popup from '@/components/popup/index.vue'
import { apiProjectFollowUpAdd, apiProjectFollowUpEdit, apiProjectFollowUpDetail } from '@/api/project_follow_up' import { apiProjectFollowUpAdd, apiProjectFollowUpEdit, apiProjectFollowUpDetail } from '@/api/project_follow_up'
import { useDictData } from '@/hooks/useDictOptions' import { useDictData } from '@/hooks/useDictOptions'
//
import annexUpload from "@/components/annexUpload/index.vue"
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 props = defineProps({ const props = defineProps({
project: Object project: Object

View File

@ -121,24 +121,13 @@ import projectDialog from '@/components/project/index.vue'
import { toChinesNum } from "@/utils/util"; import { toChinesNum } from "@/utils/util";
import { projectsalarypaymentAdd, projectsalarypaymentEdit, projectsalarypaymentDetail } from '@/api/project_salary_payment' import { projectsalarypaymentAdd, projectsalarypaymentEdit, projectsalarypaymentDetail } from '@/api/project_salary_payment'
import customDialog from '@/components/project_personnel/index.vue' import customDialog from '@/components/project_personnel/index.vue'
import type { PropType } from 'vue'
import feedback from '@/utils/feedback' import feedback from '@/utils/feedback'
import { watch } from "vue" import { watch } from "vue"
import { projectsalaryDetailLists } from "@/api/project_salary_detail.ts" import { projectsalaryDetailLists } from "@/api/project_salary_detail.ts"
//
import annexUpload from "@/components/annexUpload/index.vue"
const handleAvatarSuccess_four = (response: any) => {
// @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) }
import { useDictData } from '@/hooks/useDictOptions' import { useDictData } from '@/hooks/useDictOptions'
const { dictData } = useDictData('salary_payment_type')
const { dictData } = useDictData('salary_payment_type')
let props = defineProps({ let props = defineProps({
project: Object project: Object
}) })

View File

@ -191,7 +191,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="部门负责人核定价" prop="bmhd" label-width="140px"> <el-form-item label="部门负责人核定价" prop="bmhd">
<el-input v-model="formData.bmhd" clearable placeholder="请输入部门负责人核定价" type="number" /> <el-input v-model="formData.bmhd" clearable placeholder="请输入部门负责人核定价" type="number" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -231,13 +231,13 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="项目负责人附件" prop="master_annex" label-width="140px"> <el-form-item label="项目负责人附件" prop="master_annex">
<annexUpload :annex="formData.master_annex" @handleAvatarSuccess="handleAvatarSuccess" <annexUpload :annex="formData.master_annex" @handleAvatarSuccess="handleAvatarSuccess"
@delFile="delFileFn1" /> @delFile="delFileFn1" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="部门负责人附件" prop="bm_annex" label-width="140px"> <el-form-item label="部门负责人附件" prop="bm_annex">
<annexUpload :annex="formData.bm_annex" @handleAvatarSuccess="handleAvatarSuccess2" <annexUpload :annex="formData.bm_annex" @handleAvatarSuccess="handleAvatarSuccess2"
@delFile="delFileFn2" /> @delFile="delFileFn2" />
</el-form-item> </el-form-item>