|
@@ -113,6 +113,20 @@
|
|
|
</el-select>
|
|
|
</td>
|
|
|
</tr>
|
|
|
+ <tr v-if="mContractDetail.mainType == '5'">
|
|
|
+ <td class="th">挂靠比例(%):</td>
|
|
|
+ <td>
|
|
|
+ <el-input
|
|
|
+ v-model="mContractDetail.attachRatio"
|
|
|
+ :disabled="!editor"
|
|
|
+ @input="computedAttachAmountHandle"
|
|
|
+ />
|
|
|
+ </td>
|
|
|
+ <td class="th">分包金额(元):</td>
|
|
|
+ <td>
|
|
|
+ <el-input v-model="mContractDetail.attachAmount" :disabled="true" />
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
<tr>
|
|
|
<td class="th">委托方:</td>
|
|
|
<td>
|
|
@@ -732,6 +746,7 @@ import { useRoute } from 'vue-router'
|
|
|
import { useProjectPermis } from '@/store/modules/projectPermis'
|
|
|
import { DICT_TYPE, getDictOptions } from '@/utils/dict'
|
|
|
import { openFlow } from '@/utils/flow'
|
|
|
+import { parseFloatNumber } from '@/utils/index'
|
|
|
import { filterNodeMethod } from '@/utils/tree'
|
|
|
import subscribe from '@/utils/Subscribe'
|
|
|
import TreeSelectV2 from '@/components/TreeSelectV2/index.vue'
|
|
@@ -875,24 +890,25 @@ const saveContractHandle = () => {
|
|
|
const computedContractPriceHandle = () => {
|
|
|
//计算小计
|
|
|
mContractDetail.value.taxHsjeTotal =
|
|
|
- parseFloat(mContractDetail.value?.taxHsjeJskf || 0) +
|
|
|
- parseFloat(mContractDetail.value?.taxHsjeFw || 0) +
|
|
|
- parseFloat(mContractDetail.value?.taxHsjeRjcp || 0) +
|
|
|
- parseFloat(mContractDetail.value?.taxHsjeYj || 0)
|
|
|
+ parseFloatNumber(mContractDetail.value?.taxHsjeJskf) +
|
|
|
+ parseFloatNumber(mContractDetail.value?.taxHsjeFw) +
|
|
|
+ parseFloatNumber(mContractDetail.value?.taxHsjeRjcp) +
|
|
|
+ parseFloatNumber(mContractDetail.value?.taxHsjeYj)
|
|
|
|
|
|
const taxBhsze: number =
|
|
|
- parseFloat(parseFloat(mContractDetail.value?.taxHsjeJskf || 0) / 1) +
|
|
|
- parseFloat(parseFloat(mContractDetail.value?.taxHsjeFw || 0) / 1.06) +
|
|
|
- parseFloat(parseFloat(mContractDetail.value?.taxHsjeRjcp || 0) / 1.13) +
|
|
|
- parseFloat(parseFloat(mContractDetail.value?.taxHsjeYj || 0) / 1.13)
|
|
|
+ parseFloatNumber(parseFloatNumber(mContractDetail.value?.taxHsjeJskf) / 1) +
|
|
|
+ parseFloatNumber(parseFloatNumber(mContractDetail.value?.taxHsjeFw) / 1.06) +
|
|
|
+ parseFloatNumber(parseFloatNumber(mContractDetail.value?.taxHsjeRjcp) / 1.13) +
|
|
|
+ parseFloatNumber(parseFloatNumber(mContractDetail.value?.taxHsjeYj) / 1.13)
|
|
|
//计算不含税总额
|
|
|
- mContractDetail.value.taxBhsze = parseFloat(taxBhsze.toFixed(2))
|
|
|
+ mContractDetail.value.taxBhsze = parseFloatNumber(taxBhsze.toFixed(2))
|
|
|
|
|
|
//计算综合税率
|
|
|
mContractDetail.value.taxZhsl =
|
|
|
taxBhsze === 0
|
|
|
? 0
|
|
|
- : parseFloat(((mContractDetail.value.taxHsjeTotal - taxBhsze) / taxBhsze).toFixed(6))
|
|
|
+ : parseFloatNumber(((mContractDetail.value.taxHsjeTotal - taxBhsze) / taxBhsze).toFixed(6))
|
|
|
+ computedAttachAmountHandle()
|
|
|
}
|
|
|
/**
|
|
|
* 编辑保存主合同信息
|
|
@@ -977,6 +993,14 @@ const { mutate: startOutsourcingMutate } = useMutation(startOutsourcingApply, {
|
|
|
onSuccess: (data) => openFlow(router, data, '外包申请')
|
|
|
})
|
|
|
const handleStartOutsourcing = () => startOutsourcingMutate(projectDetail.value.id as ProjectId)
|
|
|
+/**
|
|
|
+ * 动态计算分包合同额
|
|
|
+ */
|
|
|
+const computedAttachAmountHandle = () => {
|
|
|
+ mContractDetail.value.attachAmount =
|
|
|
+ (100 - parseFloatNumber(mContractDetail.value.attachRatio)) *
|
|
|
+ parseFloatNumber(mContractDetail.value.taxHsjeTotal)
|
|
|
+}
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
@import './index.scss';
|