金额格式设置

This commit is contained in:
2025-09-09 17:03:01 +08:00
parent 460472b29a
commit d92a540786
32 changed files with 633 additions and 318 deletions

View File

@ -14,7 +14,7 @@ VITE_APP_BASE_API = 'http://192.168.110.149:8899'
# 罗成 # 罗成
# VITE_APP_BASE_API = 'http://192.168.110.188:8899' # VITE_APP_BASE_API = 'http://192.168.110.188:8899'
# 朱银 # 朱银
VITE_APP_BASE_API = 'http://192.168.110.149:8899' # VITE_APP_BASE_API = 'http://192.168.110.149:8899'
#曾涛 #曾涛
# VITE_APP_BASE_API = 'http://192.168.110.171:8899' # VITE_APP_BASE_API = 'http://192.168.110.171:8899'

View File

@ -9,7 +9,7 @@ import animate from '@/animate';
import { download as dl } from '@/utils/request'; import { download as dl } from '@/utils/request';
import { useDict } from '@/utils/dict'; import { useDict } from '@/utils/dict';
import { getConfigKey, updateConfigByKey } from '@/api/system/config'; import { getConfigKey, updateConfigByKey } from '@/api/system/config';
import { parseTime, addDateRange, handleTree, selectDictLabel, selectDictLabels } from '@/utils/ruoyi'; import { parseTime, addDateRange, handleTree, selectDictLabel, selectDictLabels,formatPrice } from '@/utils/ruoyi';
import { downloadFile } from '@/utils/useFileDownload'; import { downloadFile } from '@/utils/useFileDownload';
import { App } from 'vue'; import { App } from 'vue';
@ -42,4 +42,5 @@ export default function installPlugin(app: App) {
app.config.globalProperties.selectDictLabels = selectDictLabels; app.config.globalProperties.selectDictLabels = selectDictLabels;
app.config.globalProperties.animate = animate; app.config.globalProperties.animate = animate;
app.config.globalProperties.downloadFile = downloadFile; app.config.globalProperties.downloadFile = downloadFile;
app.config.globalProperties.formatPrice = formatPrice;
} }

View File

@ -62,7 +62,23 @@ export const addDateRange = (params: any, dateRange: any[], propName?: string) =
} }
return search; return search;
}; };
// 价格格式化函数
export const formatPrice = (price, show = true) => {
if ((!show && price == 0) || price == '' || price == undefined || price == null) return '';
if (!price && price !== 0) return '0.0000';
// 转换为数字并保留四位小数
const num = Number(price);
if (isNaN(num)) return '0.0000';
const fixedNum = num.toFixed(4);
const [integer, decimal] = fixedNum.split('.');
// 千分位处理
const formattedInteger = integer.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
return `${formattedInteger}.${decimal}`;
};
// 回显数据字典 // 回显数据字典
export const selectDictLabel = (datas: any, value: number | string) => { export const selectDictLabel = (datas: any, value: number | string) => {
if (value === undefined) { if (value === undefined) {

View File

@ -77,8 +77,8 @@
changePrice(scope.row); changePrice(scope.row);
} }
" "
:precision="2" :min="0"
:step="0.1" :precision="4"
:controls="false" :controls="false"
v-if="scope.row.quantity && scope.row.quantity != 0" v-if="scope.row.quantity && scope.row.quantity != 0"
/> />
@ -86,7 +86,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="price" label="总价" align="center"> <el-table-column prop="price" label="总价" align="center">
<template #default="scope"> <template #default="scope">
{{ scope.row.price != 0 ? Number(scope.row.price).toFixed(2) : null }} {{ proxy.formatPrice(scope.row.price) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="operate" label="操作" align="center"> <el-table-column prop="operate" label="操作" align="center">

View File

@ -25,7 +25,11 @@
</el-table-column> </el-table-column>
<el-table-column prop="name" label="名称" align="center" /> <el-table-column prop="name" label="名称" align="center" />
<el-table-column prop="content" label="内容" align="center" /> <el-table-column prop="content" label="内容" align="center" />
<el-table-column prop="price" label="限价" align="center" /> <el-table-column prop="price" label="限价" align="center">
<template #default="scope">
{{ proxy.formatPrice(scope.row.price) }}
</template>
</el-table-column>
<el-table-column prop="plannedBiddingTime" align="center"> <el-table-column prop="plannedBiddingTime" align="center">
<template #header> <span style="color: red">*</span>计划招标时间 </template> <template #header> <span style="color: red">*</span>计划招标时间 </template>
<template #default="scope"> <template #default="scope">
@ -158,22 +162,28 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="unitPrice" label="单价" align="center" /> <el-table-column prop="unitPrice" label="单价" align="center">
<template #default="scope">
{{ proxy.formatPrice(scope.row.unitPrice) }}
</template>
</el-table-column>
<el-table-column prop="price" label="总价" align="center"> <el-table-column prop="price" label="总价" align="center">
<template #default="scope"> <template #default="scope">
{{ {{
((scope.row.quantity ? Number(scope.row.quantity) : 0) - proxy.formatPrice(
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) - ((scope.row.quantity ? Number(scope.row.quantity) : 0) -
(scope.row.selectNum ? Number(scope.row.selectNum) : 0)) * (scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) -
Number(scope.row.unitPrice) == (scope.row.selectNum ? Number(scope.row.selectNum) : 0)) *
0 Number(scope.row.unitPrice) ==
? '' 0
: ( ? ''
((scope.row.quantity ? Number(scope.row.quantity) : 0) - : ((scope.row.quantity ? Number(scope.row.quantity) : 0) -
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) - (scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) -
(scope.row.selectNum ? Number(scope.row.selectNum) : 0)) * (scope.row.selectNum ? Number(scope.row.selectNum) : 0)) *
Number(scope.row.unitPrice) Number(scope.row.unitPrice),
).toFixed(2) false
)
}} }}
</template> </template>
</el-table-column> </el-table-column>
@ -207,6 +217,7 @@ import { useUserStoreHook } from '@/store/modules/user';
import { getDicts } from '@/api/system/dict/data'; import { getDicts } from '@/api/system/dict/data';
import { Plus } from '@element-plus/icons-vue'; import { Plus } from '@element-plus/icons-vue';
import { FormInstance } from 'element-plus'; import { FormInstance } from 'element-plus';
const { proxy } = getCurrentInstance();
import { import {
treeList, treeList,
sheetList, sheetList,

View File

@ -79,18 +79,16 @@
changePrice(scope.row); changePrice(scope.row);
} }
" "
:precision="2" :min="0"
:step="0.1" :precision="4"
:controls="false" :controls="false"
v-if="scope.row.quantity && scope.row.quantity != 0" v-if="scope.row.quantity && scope.row.quantity != 0"
/> />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="price" label="总价" align="center" > <el-table-column prop="price" label="总价" align="center">
<template #default="scope"> <template #default="scope">
<!-- {{ scope.row.children.length > 0 ? scope.row.children.reduce((sum, child) => sum + child.price, 0) : scope.row.price }} --> {{ proxy.formatPrice(scope.row.price) }}
{{ scope.row.price != 0 ? Number(scope.row.price).toFixed(2) : null }}
<!-- {{ scope.row.price }} -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="operate" label="操作" align="center"> <el-table-column prop="operate" label="操作" align="center">

View File

@ -41,10 +41,14 @@
<el-table-column prop="specification" label="规格" /> <el-table-column prop="specification" label="规格" />
<el-table-column prop="unit" label="单位" /> <el-table-column prop="unit" label="单位" />
<el-table-column prop="quantity" label="数量" /> <el-table-column prop="quantity" label="数量" />
<el-table-column prop="unitPrice" label="单价" align="center" /> <el-table-column prop="unitPrice" label="单价" align="center">
<el-table-column prop="price" label="总价" align="center">
<template #default="scope"> <template #default="scope">
{{ scope.row.price != 0 ? Number(scope.row.price).toFixed(2) : null }} {{ proxy.formatPrice(scope.row.unitPrice, false) }}
</template>
</el-table-column>
<el-table-column prop="price" label="总价" align="center" width="150">
<template #default="scope">
{{ proxy.formatPrice(scope.row.price) }}
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -70,8 +74,12 @@
</div> </div>
<template #footer> <template #footer>
<div class="dialog-footer p-4 border-t border-gray-100 flex justify-end space-x-3"> <div class="dialog-footer p-4 border-t border-gray-100 flex justify-end space-x-3">
<el-button @click="handleClose" class="px-4 py-2 border border-gray-300 rounded-md text-gray-700 hover:bg-gray-50 transition-colors">取消</el-button> <el-button @click="handleClose" class="px-4 py-2 border border-gray-300 rounded-md text-gray-700 hover:bg-gray-50 transition-colors"
<el-button type="primary" @click="submitFlow()" class="px-4 py-2 bg-primary text-white rounded-md hover:bg-primary/90 transition-colors">确认</el-button> >取消</el-button
>
<el-button type="primary" @click="submitFlow()" class="px-4 py-2 bg-primary text-white rounded-md hover:bg-primary/90 transition-colors"
>确认</el-button
>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>

View File

@ -1,79 +1,80 @@
<template> <template>
<div class="container"> <div class="container">
<el-steps style="max-width: 100%" :active="active" finish-status="success" align-center> <el-steps style="max-width: 100%" :active="active" finish-status="success" align-center>
<el-step title="选择合同类型" /> <el-step title="选择合同类型" />
<el-step title="修改合同内容" /> <el-step title="修改合同内容" />
<el-step title="修改收款方式" /> <el-step title="修改收款方式" />
</el-steps> </el-steps>
<div class="content"> <div class="content">
<template v-if="active == 1"> <template v-if="active == 1">
<h1>修改收入合同</h1> <h1>修改收入合同</h1>
<el-form ref="incomeContractFormRef" :model="form" :rules="incomeContractFormRules" label-width="80px"> <el-form ref="incomeContractFormRef" :model="form" :rules="incomeContractFormRules" label-width="80px">
<el-form-item label="合同编号" prop="contractCode"> <el-form-item label="合同编号" prop="contractCode">
<el-input v-model="form.contractCode" placeholder="请输入合同编号" /> <el-input v-model="form.contractCode" placeholder="请输入合同编号" />
</el-form-item> </el-form-item>
<el-form-item label="合同类型" prop="contractType"> <el-form-item label="合同类型" prop="contractType">
<el-select v-model="form.contractType" placeholder="请选择合同类型"> <el-select v-model="form.contractType" placeholder="请选择合同类型">
<el-option v-for="item in income_contract_type" :key="item.value" :label="item.label" <el-option v-for="item in income_contract_type" :key="item.value" :label="item.label" :value="item.value" />
:value="item.value" /> </el-select>
</el-select> </el-form-item>
</el-form-item> <el-form-item label="业主单位" prop="contractOwner">
<el-form-item label="业主单位" prop="contractOwner"> <el-input v-model="form.contractOwner" placeholder="请输入业主单位" disabled />
<el-input v-model="form.contractOwner" placeholder="请输入业主单位" disabled /> </el-form-item>
</el-form-item> <el-form-item label="承包内容" v-if="contract_type !== 'income'">
<el-form-item label="承包内容" v-if="contract_type !== 'income'"> <editor v-model="form.contractedContent" :min-height="192" />
<editor v-model="form.contractedContent" :min-height="192" /> </el-form-item>
</el-form-item> <el-form-item label="合同内容" v-else>
<el-form-item label="合同内容" v-else> <editor v-model="form.contractedContent" :min-height="192" />
<editor v-model="form.contractedContent" :min-height="192" /> </el-form-item>
</el-form-item> <el-form-item label="合同金额" prop="amount">
<el-form-item label="合同金额" prop="amount"> <el-input
<el-input v-model="form.amount" placeholder="请输入合同金额" v-model="form.amount"
oninput="value=value.replace(/[^0-9.]/g,'').replace(/\.{2,}/g,'.').replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')" /> placeholder="请输入合同金额"
</el-form-item> oninput="value=value.replace(/[^0-9.]/g,'').replace(/\.{2,}/g,'.').replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
<el-form-item label="备注" prop="remark"> />
<el-input v-model="form.remark" placeholder="请输入备注" /> </el-form-item>
</el-form-item> <el-form-item label="备注" prop="remark">
<el-form-item label="附件"> <el-input v-model="form.remark" placeholder="请输入备注" />
<FileUpload :multiple="true" :fileType="['pdf']" :onUploadSuccess="onUploadSuccess" </el-form-item>
:ref="fileRef" :defaultFileList="tempFileList" /> <el-form-item label="附件">
</el-form-item> <FileUpload :multiple="true" :fileType="['pdf']" :onUploadSuccess="onUploadSuccess" :ref="fileRef" :defaultFileList="tempFileList" />
</el-form> </el-form-item>
<div> </el-form>
<el-button type="primary" @click="next">下一步</el-button> <div>
</div> <el-button type="primary" @click="next">下一步</el-button>
</template>
<template v-else-if="active == 2">
<h1>修改收入合同</h1>
<el-form :model="form" :rules="payMentRules" label-width="150" ref="payMentRef">
<el-form-item label="支付方式" placeholder="请选择支付方式" prop="payType">
<el-select v-model="form.payType">
<el-option :value="1" label="月结算">月结算</el-option>
<el-option :value="2" label="形象节点">形象节点</el-option>
</el-select>
</el-form-item>
<el-form-item label="预付款比例(%" prop="advancePayRatio">
<el-input-number v-model="form.advancePayRatio" :max="100" :min="0" />
</el-form-item>
<el-form-item label="尾款比例(%" prop="balancePayRatio">
<el-input-number v-model="form.balancePayRatio" :max="100" :min="0" />
</el-form-item>
<el-form-item label="质保金比例(%" prop="assuranceDepositRatio">
<el-input-number v-model="form.assuranceDepositRatio" :max="100" :min="0" />
</el-form-item>
<el-form-item label="付款比例(%" prop="payRatio">
<el-input-number v-model="payRatioComputed" disabled />
</el-form-item>
<el-form-item>
<div>
<el-button @click="back(false)">上一步</el-button>
<el-button type="success" @click="submitForm">提交</el-button>
</div>
</el-form-item>
</el-form>
</template>
</div> </div>
</template>
<template v-else-if="active == 2">
<h1>修改收入合同</h1>
<el-form :model="form" :rules="payMentRules" label-width="150" ref="payMentRef">
<el-form-item label="支付方式" placeholder="请选择支付方式" prop="payType">
<el-select v-model="form.payType">
<el-option :value="1" label="月结算">月结算</el-option>
<el-option :value="2" label="形象节点">形象节点</el-option>
</el-select>
</el-form-item>
<el-form-item label="预付款比例(%" prop="advancePayRatio">
<el-input-number v-model="form.advancePayRatio" :max="100" :min="0" />
</el-form-item>
<el-form-item label="尾款比例(%" prop="balancePayRatio">
<el-input-number v-model="form.balancePayRatio" :max="100" :min="0" />
</el-form-item>
<el-form-item label="质保金比例(%" prop="assuranceDepositRatio">
<el-input-number v-model="form.assuranceDepositRatio" :max="100" :min="0" />
</el-form-item>
<el-form-item label="付款比例(%" prop="payRatio">
<el-input-number v-model="payRatioComputed" disabled />
</el-form-item>
<el-form-item>
<div>
<el-button @click="back(false)">上一步</el-button>
<el-button type="success" @click="submitForm">提交</el-button>
</div>
</el-form-item>
</el-form>
</template>
</div> </div>
</div>
</template> </template>
<script setup> <script setup>
import FileUpload from '@/components/FileUpload'; import FileUpload from '@/components/FileUpload';
@ -95,140 +96,140 @@ const incomeContractFormRef = ref(null);
const expensesContractFormRef = ref(null); const expensesContractFormRef = ref(null);
const payMentRef = ref(null); const payMentRef = ref(null);
const incomeContractFormRules = { const incomeContractFormRules = {
contractCode: [{ required: true, message: '请输入合同编号', trigger: 'blur' }], contractCode: [{ required: true, message: '请输入合同编号', trigger: 'blur' }],
contractType: [{ required: true, message: '请选择合同类型', trigger: 'change' }], contractType: [{ required: true, message: '请选择合同类型', trigger: 'change' }],
contractOwner: [{ required: true, message: '请输入业主单位', trigger: 'blur' }], contractOwner: [{ required: true, message: '请输入业主单位', trigger: 'blur' }],
amount: [{ required: true, message: '请输入合同金额', trigger: 'blur' }], amount: [{ required: true, message: '请输入合同金额', trigger: 'blur' }],
remark: [{ required: false, message: '请输入备注', trigger: 'blur' }] remark: [{ required: false, message: '请输入备注', trigger: 'blur' }]
}; };
const expensesContractFormRules = { const expensesContractFormRules = {
contractCode: [{ required: true, message: '请输入合同编号', trigger: 'blur' }], contractCode: [{ required: true, message: '请输入合同编号', trigger: 'blur' }],
contractType: [{ required: true, message: '请选择合同类型', trigger: 'change' }], contractType: [{ required: true, message: '请选择合同类型', trigger: 'change' }],
contractSupplier: [{ required: true, message: '请输入供应商', trigger: 'blur' }], contractSupplier: [{ required: true, message: '请输入供应商', trigger: 'blur' }],
amount: [{ required: true, message: '请输入合同金额', trigger: 'blur' }], amount: [{ required: true, message: '请输入合同金额', trigger: 'blur' }],
tenderId: [{ required: true, message: '请选择招标计划', trigger: 'blur' }], tenderId: [{ required: true, message: '请选择招标计划', trigger: 'blur' }],
remark: [{ required: false, message: '请输入备注', trigger: 'blur' }] remark: [{ required: false, message: '请输入备注', trigger: 'blur' }]
}; };
const payMentRules = { const payMentRules = {
payType: [{ required: true, message: '请选择支付方式', trigger: 'change' }], payType: [{ required: true, message: '请选择支付方式', trigger: 'change' }],
advancePayRatio: [{ required: true, message: '请输入预付款比例', trigger: 'blur' }], advancePayRatio: [{ required: true, message: '请输入预付款比例', trigger: 'blur' }],
balancePayRatio: [{ required: true, message: '请输入尾款比例', trigger: 'blur' }], balancePayRatio: [{ required: true, message: '请输入尾款比例', trigger: 'blur' }],
assuranceDepositRatio: [{ required: true, message: '请输入质保金比例', trigger: 'blur' }] assuranceDepositRatio: [{ required: true, message: '请输入质保金比例', trigger: 'blur' }]
}; };
const project = computed(() => { const project = computed(() => {
return JSON.parse(localStorage.getItem('selectedProject')); return JSON.parse(localStorage.getItem('selectedProject'));
}); });
const payRatioComputed = computed({ const payRatioComputed = computed({
get: () => { get: () => {
const { advancePayRatio = 0, balancePayRatio = 0, assuranceDepositRatio = 0 } = form.value; const { advancePayRatio = 0, balancePayRatio = 0, assuranceDepositRatio = 0 } = form.value;
const total = 100 - (advancePayRatio + balancePayRatio + assuranceDepositRatio); const total = 100 - (advancePayRatio + balancePayRatio + assuranceDepositRatio);
// form.value.payRatio = total; // form.value.payRatio = total;
return total; return total;
}, },
// 只读 // 只读
set: () => { } set: () => {}
}); });
const onUploadSuccess = (data) => { const onUploadSuccess = (data) => {
fileList.value = data; fileList.value = data;
}; };
const next = async () => { const next = async () => {
if (contract_type.value === 'income') { if (contract_type.value === 'income') {
await incomeContractFormRef.value.validate((valid) => { await incomeContractFormRef.value.validate((valid) => {
if (valid) { if (valid) {
active.value++; active.value++;
} else { } else {
ElMessage.error('请填写完整的收入合同信息'); ElMessage.error('请填写完整的收入合同信息');
} }
}); });
} else if (contract_type.value === 'expenses') { } else if (contract_type.value === 'expenses') {
await expensesContractFormRef.value.validate((valid) => { await expensesContractFormRef.value.validate((valid) => {
if (valid) { if (valid) {
active.value++; active.value++;
} else { } else {
ElMessage.error('请填写完整的支出合同信息'); ElMessage.error('请填写完整的支出合同信息');
} }
}); });
} }
console.log(active.value); console.log(active.value);
form.value.step = active.value; form.value.step = active.value;
}; };
const submitForm = async () => { const submitForm = async () => {
await payMentRef.value.validate(async (valid) => { await payMentRef.value.validate(async (valid) => {
if (valid) { if (valid) {
if (payRatioComputed.value < 0) { if (payRatioComputed.value < 0) {
ElMessage.error('四项付款比例之和必须等于100%'); ElMessage.error('四项付款比例之和必须等于100%');
return; return;
} }
form.value.payRatio = payRatioComputed.value; form.value.payRatio = payRatioComputed.value;
// 提交付款信息逻辑 // 提交付款信息逻辑
console.log('提交付款信息', form.value, fileList.value); console.log('提交付款信息', form.value, fileList.value);
// 这里可以调用API提交数据 // 这里可以调用API提交数据
form.value.projectId = project.value.id; form.value.projectId = project.value.id;
form.value.fileList = fileList.value.map((data) => { form.value.fileList = fileList.value.map((data) => {
return { return {
...data, ...data,
fileName: data.name, fileName: data.name,
fileUrl: data.url fileUrl: data.url
}; };
}); });
if (contract_type.value === 'income') { if (contract_type.value === 'income') {
await updateIncomeContract({ ...form.value }); await updateIncomeContract({ ...form.value });
} }
ElMessage.success('合同修改成功'); ElMessage.success('合同修改成功');
} else { } else {
ElMessage.error('请填写完整的付款信息'); ElMessage.error('请填写完整的付款信息');
} }
}); });
}; };
const handleChoose = async () => { const handleChoose = async () => {
if (!form.value.contractType) { if (!form.value.contractType) {
ElMessage.error('请先选择合同类型'); ElMessage.error('请先选择合同类型');
return; return;
} }
const formData = { const formData = {
projectId: userStore.selectedProject.id, projectId: userStore.selectedProject.id,
dictName: form.value.contractType, dictName: form.value.contractType,
status: 1 status: 1
}; };
const { data } = await getTenderPlan(formData); const { data } = await getTenderPlan(formData);
if (data.length === 0) { if (data.length === 0) {
ElMessage.warning('当前没有招标计划,请先创建招标计划'); ElMessage.warning('当前没有招标计划,请先创建招标计划');
return; return;
} }
planList.value = data; planList.value = data;
dialogVisible.value = true; dialogVisible.value = true;
}; };
onMounted(async () => { onMounted(async () => {
const id = route.query.id; const id = route.query.id;
if (id) { if (id) {
const { data } = await getIncomeContract(id); const { data } = await getIncomeContract(id);
form.value.id = data.id; form.value.id = data.id;
form.value.contractOwner = data.contractOwner form.value.contractOwner = data.contractOwner;
} else { } else {
router.push('/ctr/incomeContract'); router.push('/ctr/incomeContract');
} }
}) });
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.container { .container {
padding: 20px; padding: 20px;
.content { .content {
width: 100%; width: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding: 30px; padding: 30px;
flex-direction: column; flex-direction: column;
} }
} }
</style> </style>

View File

@ -145,7 +145,13 @@
></el-col> ></el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="费用" prop="costEstimation"> <el-form-item label="费用" prop="costEstimation">
<el-input min="0" v-model="form.costEstimation" type="number" placeholder="请输入费用" /> </el-form-item <el-input-number
:min="0"
:precision="4"
v-model="form.costEstimation"
:controls="false"
placeholder="请输入费用"
/> </el-form-item
></el-col> ></el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="变更费用估算表" label-width="110px" prop="costEstimationFile"> <el-form-item label="变更费用估算表" label-width="110px" prop="costEstimationFile">

View File

@ -39,8 +39,16 @@
<el-table-column label="人工填报数量" align="center" prop="artificialNum" /> <el-table-column label="人工填报数量" align="center" prop="artificialNum" />
<el-table-column label="无人机识别数量" align="center" prop="uavNum" /> <el-table-column label="无人机识别数量" align="center" prop="uavNum" />
<el-table-column label="确认数量" align="center" prop="confirmNum" /> <el-table-column label="确认数量" align="center" prop="confirmNum" />
<el-table-column label="对乙产值" align="center" prop="outValue" /> <el-table-column label="对乙产值" align="center" prop="outValue">
<el-table-column label="对甲产值" align="center" prop="ownerValue" /> <template #default="scope">
{{ proxy.formatPrice(scope.row.outValue) }}
</template>
</el-table-column>
<el-table-column label="对甲产值" align="center" prop="ownerValue">
<template #default="scope">
{{ proxy.formatPrice(scope.row.ownerValue) }}
</template>
</el-table-column>
<el-table-column label="流程状态" align="center" prop="status"> <el-table-column label="流程状态" align="center" prop="status">
<template #default="scope"> <template #default="scope">
<dict-tag :options="wf_business_status" :value="scope.row.auditStatus" /> <dict-tag :options="wf_business_status" :value="scope.row.auditStatus" />

View File

@ -24,9 +24,21 @@
<el-table v-loading="loading" :data="monthPlanList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="monthPlanList" @selection-change="handleSelectionChange">
<el-table-column type="index" label="序号" width="60" align="center" /> <el-table-column type="index" label="序号" width="60" align="center" />
<el-table-column label="计划月份" align="center" prop="planMonth" /> <el-table-column label="计划月份" align="center" prop="planMonth" />
<el-table-column label="计划产值" align="center" prop="planValue" /> <el-table-column label="计划产值" align="center" prop="planValue">
<el-table-column label="完成产值" align="center" prop="completeValue" /> <template #default="scope">
<el-table-column label="差额" align="center" prop="differenceValue" /> {{ proxy.formatPrice(scope.row.planValue) }}
</template>
</el-table-column>
<el-table-column label="完成产值" align="center" prop="completeValue">
<template #default="scope">
{{ proxy.formatPrice(scope.row.completeValue) }}
</template>
</el-table-column>
<el-table-column label="差额" align="center" prop="differenceValue">
<template #default="scope">
{{ proxy.formatPrice(scope.row.differenceValue) }}
</template>
</el-table-column>
<el-table-column label="类型" align="center"> <el-table-column label="类型" align="center">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.type == '1'">对甲</span> <span v-if="scope.row.type == '1'">对甲</span>

View File

@ -40,9 +40,21 @@
<el-table v-loading="loading" :data="monthPlanList"> <el-table v-loading="loading" :data="monthPlanList">
<el-table-column type="index" label="序号" width="55" align="center" /> <el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column label="计划月份" align="center" prop="planMonth" /> <el-table-column label="计划月份" align="center" prop="planMonth" />
<el-table-column label="计划产值(元)" align="center" prop="planValue" /> <el-table-column label="计划产值(元)" align="center" prop="planValue">
<el-table-column label="完成产值(元)" align="center" prop="completeValue" /> <template #default="scope">
<el-table-column label="差额(元)" align="center" prop="differenceValue" /> {{ proxy.formatPrice(scope.row.planValue) }}
</template>
</el-table-column>
<el-table-column label="完成产值(元)" align="center" prop="completeValue">
<template #default="scope">
{{ proxy.formatPrice(scope.row.completeValue) }}
</template>
</el-table-column>
<el-table-column label="差额(元)" align="center" prop="differenceValue">
<template #default="scope">
{{ proxy.formatPrice(scope.row.differenceValue) }}
</template>
</el-table-column>
<el-table-column label="产值类型" align="center" prop="valueType"> <el-table-column label="产值类型" align="center" prop="valueType">
<template #default="scope"> <template #default="scope">
<dict-tag :options="out_value_type" :value="scope.row.valueType" /> <dict-tag :options="out_value_type" :value="scope.row.valueType" />
@ -104,7 +116,7 @@
<script setup name="MonthPlan" lang="ts"> <script setup name="MonthPlan" lang="ts">
import { listMonthPlan, getMonthPlan, delMonthPlan, addMonthPlan, updateMonthPlan } from '@/api/out/monthPlan'; import { listMonthPlan, getMonthPlan, delMonthPlan, addMonthPlan, updateMonthPlan } from '@/api/out/monthPlan';
import { MonthPlanVO } from '@/api/out/monthPlan/types'; import { MonthPlanVO } from '@/api/out/monthPlan/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as any;
const { out_value_type } = toRefs<any>(proxy?.useDict('out_value_type')); const { out_value_type } = toRefs<any>(proxy?.useDict('out_value_type'));
const { wf_business_status } = toRefs<any>(proxy?.useDict('wf_business_status')); const { wf_business_status } = toRefs<any>(proxy?.useDict('wf_business_status'));

View File

@ -31,11 +31,27 @@
</template> </template>
<el-table v-loading="loading" :data="monthPlanAuditList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="monthPlanAuditList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="index" width="55" label="序号" align="center" />
<el-table-column label="设计产值(元)" align="center" prop="designValue" /> <el-table-column label="设计产值(元)" align="center" prop="designValue">
<el-table-column label="采购产值(元)" align="center" prop="purchaseValue" /> <template #default="scope">
<el-table-column label="施工产值(元)" align="center" prop="constructionValue" /> {{ proxy.formatPrice(scope.row.designValue) }}
<el-table-column label="总产值(元)" align="center" prop="totalValue" /> </template>
</el-table-column>
<el-table-column label="采购产值(元)" align="center" prop="purchaseValue">
<template #default="scope">
{{ proxy.formatPrice(scope.row.purchaseValue) }}
</template>
</el-table-column>
<el-table-column label="施工产值(元)" align="center" prop="constructionValue">
<template #default="scope">
{{ proxy.formatPrice(scope.row.constructionValue) }}
</template>
</el-table-column>
<el-table-column label="总产值(元)" align="center" prop="totalValue">
<template #default="scope">
{{ proxy.formatPrice(scope.row.totalValue) }}
</template>
</el-table-column>
<el-table-column label="计划月份" align="center" prop="planMonth" /> <el-table-column label="计划月份" align="center" prop="planMonth" />
</el-table> </el-table>

View File

@ -26,12 +26,32 @@
<el-table v-loading="loading" :data="valueAllocationList"> <el-table v-loading="loading" :data="valueAllocationList">
<el-table-column label="项目" align="center" prop="projectName" /> <el-table-column label="项目" align="center" prop="projectName" />
<el-table-column label="月预计产值" align="center" prop="monthEstimatedValue" /> <el-table-column label="月预计产值" align="center" prop="monthEstimatedValue">
<el-table-column label="完成产值月合计" align="center" prop="monthCompletionValue" /> <template #default="scope">
<el-table-column label="产值差额" align="center" prop="valueDifference" /> {{ proxy.formatPrice(scope.row.monthEstimatedValue) }}
<el-table-column label="项目总产值" align="center" prop="totalValue" /> </template>
<el-table-column label="累计完成产值" align="center" prop="accumulatedCompletionValue" /> </el-table-column>
<el-table-column label="项目完成率" align="center" prop="projectCompletionRate" /> <el-table-column label="完成产值月合计" align="center" prop="monthCompletionValue">
<template #default="scope">
{{ proxy.formatPrice(scope.row.monthCompletionValue) }}
</template></el-table-column
>
<el-table-column label="产值差额" align="center" prop="valueDifference">
<template #default="scope">
{{ proxy.formatPrice(scope.row.valueDifference) }}
</template></el-table-column
>
<el-table-column label="项目总产值" align="center" prop="totalValue">
<template #default="scope">
{{ proxy.formatPrice(scope.row.totalValue) }}
</template></el-table-column
>
<el-table-column label="累计完成产值" align="center" prop="accumulatedCompletionValue">
<template #default="scope">
{{ proxy.formatPrice(scope.row.accumulatedCompletionValue) }}
</template></el-table-column
>
<el-table-column label="项目完成率" align="center" prop="projectCompletionRate"></el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total > 0" v-show="total > 0"
@ -48,7 +68,7 @@
<script setup name="ValueAllocation" lang="ts"> <script setup name="ValueAllocation" lang="ts">
import { listOutTable } from '@/api/out/outDesignTable'; import { listOutTable } from '@/api/out/outDesignTable';
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as any;
import { useUserStoreHook } from '@/store/modules/user'; import { useUserStoreHook } from '@/store/modules/user';
import { dayjs } from 'element-plus'; import { dayjs } from 'element-plus';
// 获取用户 store // 获取用户 store

View File

@ -23,9 +23,21 @@
<el-card shadow="never"> <el-card shadow="never">
<el-table v-loading="loading" :data="tableData" v-if="activeTab == '1' || activeTab == '2'"> <el-table v-loading="loading" :data="tableData" v-if="activeTab == '1' || activeTab == '2'">
<el-table-column label="项目" align="center" prop="projectName" /> <el-table-column label="项目" align="center" prop="projectName" />
<el-table-column label="累计完工产值" align="center" prop="totalCompletionOutputValue" /> <el-table-column label="累计完工产值" align="center" prop="totalCompletionOutputValue">
<el-table-column label="累计结算产值" align="center" prop="totalSettlementOutputValue" /> <template #default="scope">
<el-table-column label="完工未结算额" align="center" prop="completionUnsettledAmount" /> {{ proxy.formatPrice(scope.row.totalCompletionOutputValue) }}
</template>
</el-table-column>
<el-table-column label="累计结算产值" align="center" prop="totalSettlementOutputValue">
<template #default="scope">
{{ proxy.formatPrice(scope.row.totalSettlementOutputValue) }}
</template></el-table-column
>
<el-table-column label="完工未结算额" align="center" prop="completionUnsettledAmount">
<template #default="scope">
{{ proxy.formatPrice(scope.row.completionUnsettledAmount) }}
</template></el-table-column
>
<el-table-column label="完工未结算比例" align="center" prop="completionUnsettledRatio" /> <el-table-column label="完工未结算比例" align="center" prop="completionUnsettledRatio" />
<!-- <el-table-column label="操作" align="center"> <!-- <el-table-column label="操作" align="center">
<template #default="scope"> <template #default="scope">
@ -36,9 +48,21 @@
<el-table v-loading="loading" :data="tableData" v-if="activeTab == '3'"> <el-table v-loading="loading" :data="tableData" v-if="activeTab == '3'">
<el-table-column label="项目" align="center" prop="projectName" /> <el-table-column label="项目" align="center" prop="projectName" />
<!-- <el-table-column label="累计完工产值" align="center" prop="totalCompletionOutputValue" /> --> <!-- <el-table-column label="累计完工产值" align="center" prop="totalCompletionOutputValue" /> -->
<el-table-column label="分包累计结算产值" align="center" prop="subTotalSettlementOutputValue" /> <el-table-column label="分包累计结算产值" align="center" prop="subTotalSettlementOutputValue">
<el-table-column label="业主累计结算产值" align="center" prop="ownerTotalSettlementOutputValue" /> <template #default="scope">
<el-table-column label="差额" align="center" prop="differenceValue" /> {{ proxy.formatPrice(scope.row.subTotalSettlementOutputValue) }}
</template>
</el-table-column>
<el-table-column label="业主累计结算产值" align="center" prop="ownerTotalSettlementOutputValue"
><template #default="scope">
{{ proxy.formatPrice(scope.row.ownerTotalSettlementOutputValue) }}
</template></el-table-column
>
<el-table-column label="差额" align="center" prop="differenceValue"
><template #default="scope">
{{ proxy.formatPrice(scope.row.differenceValue) }}
</template></el-table-column
>
<!-- <el-table-column label="操作" align="center"> <!-- <el-table-column label="操作" align="center">
<template #default="scope"> <template #default="scope">
<el-button type="primary" @click="handleEdit(scope.row)" link icon="Position">联查分包结算</el-button> <el-button type="primary" @click="handleEdit(scope.row)" link icon="Position">联查分包结算</el-button>
@ -47,12 +71,36 @@
</el-table> </el-table>
<el-table v-loading="loading" :data="tableData" v-if="activeTab == '4'"> <el-table v-loading="loading" :data="tableData" v-if="activeTab == '4'">
<el-table-column label="项目" align="center" prop="projectName" /> <el-table-column label="项目" align="center" prop="projectName" />
<el-table-column label="对甲计划总产值" align="center" prop="ownerTotal" /> <el-table-column label="对甲计划总产值" align="center" prop="ownerTotal">
<el-table-column label="对乙计划总产值" align="center" prop="subTotal" /> <template #default="scope">
<el-table-column label="对甲月计划产值" align="center" prop="ownerPlanTotal" /> {{ proxy.formatPrice(scope.row.ownerTotal) }}
<el-table-column label="对乙月计划产值" align="center" prop="subPlanTotal" /> </template></el-table-column
<el-table-column label="对甲月实际产值" align="center" prop="ownerActualTotal" /> >
<el-table-column label="对乙月实际产值" align="center" prop="subActualTotal" /> <el-table-column label="对乙计划总产值" align="center" prop="subTotal">
<template #default="scope">
{{ proxy.formatPrice(scope.row.subTotal) }}
</template></el-table-column
>
<el-table-column label="对甲月计划产值" align="center" prop="ownerPlanTotal">
<template #default="scope">
{{ proxy.formatPrice(scope.row.ownerPlanTotal) }}
</template></el-table-column
>
<el-table-column label="对乙月计划产值" align="center" prop="subPlanTotal">
<template #default="scope">
{{ proxy.formatPrice(scope.row.subPlanTotal) }}
</template></el-table-column
>
<el-table-column label="对甲月实际产值" align="center" prop="ownerActualTotal">
<template #default="scope">
{{ proxy.formatPrice(scope.row.ownerActualTotal) }}
</template></el-table-column
>
<el-table-column label="对乙月实际产值" align="center" prop="subActualTotal">
<template #default="scope">
{{ proxy.formatPrice(scope.row.subActualTotal) }}
</template></el-table-column
>
<!-- <el-table-column label="操作" align="center"> <!-- <el-table-column label="操作" align="center">
<template #default="scope"> <template #default="scope">
<el-button type="primary" @click="handleEdit(scope.row)" link icon="Position">联查分包结算</el-button> <el-button type="primary" @click="handleEdit(scope.row)" link icon="Position">联查分包结算</el-button>
@ -75,7 +123,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { useUserStoreHook } from '@/store/modules/user'; import { useUserStoreHook } from '@/store/modules/user';
import { listOutTable, comparisonOfOutputValue, comparisonOfSettlementValue } from '@/api/out/outDesignTableVS/index'; import { listOutTable, comparisonOfOutputValue, comparisonOfSettlementValue } from '@/api/out/outDesignTableVS/index';
const { proxy } = getCurrentInstance();
import { dayjs } from 'element-plus'; import { dayjs } from 'element-plus';
const userStore = useUserStoreHook(); const userStore = useUserStoreHook();
const currentProject = computed(() => userStore.selectedProject); const currentProject = computed(() => userStore.selectedProject);

View File

@ -16,18 +16,66 @@
<el-card shadow="never"> <el-card shadow="never">
<el-table v-loading="loading" :data="tableData"> <el-table v-loading="loading" :data="tableData">
<el-table-column label="项目" align="center" prop="projectName" /> <el-table-column label="项目" align="center" prop="projectName" />
<el-table-column label="项目总产值" align="center" prop="totalValue" /> <el-table-column label="项目总产值" align="center" prop="totalValue">
<el-table-column label="月预计产值" align="center" prop="monthlyEstimatedValue" /> <template #default="scope">
<el-table-column label="完成产值(第一周)" align="center" prop="firstWeekCompletionValue" /> {{ proxy.formatPrice(scope.row.totalValue) }}
<el-table-column label="完成产值(第二周)" align="center" prop="secondWeekCompletionValue" /> </template>
<el-table-column label="完成产值(第三周)" align="center" prop="thirdWeekCompletionValue" /> </el-table-column>
<el-table-column label="完成产值(第四周)" align="center" prop="fourthWeekCompletionValue" /> <el-table-column label="月预计产值" align="center" prop="monthlyEstimatedValue"
<el-table-column label="完成产值(第五周)" align="center" prop="fifthWeekCompletionValue" /> ><template #default="scope">
<el-table-column label="完成产值月合计" align="center" prop="totalCompletionValue" /> {{ proxy.formatPrice(scope.row.monthlyEstimatedValue) }}
<el-table-column label="产值差额" align="center" prop="valueDifference" /> </template></el-table-column
<el-table-column label="预计累计产值" align="center" prop="estimatedAccumulatedValue" /> >
<el-table-column label="累计完成产值" align="center" prop="accumulatedCompletionValue" /> <el-table-column label="完成产值(第一周)" align="center" prop="firstWeekCompletionValue"
<el-table-column label="产值差额" align="center" prop="valueDifferenceAccumulation" /> ><template #default="scope">
{{ proxy.formatPrice(scope.row.firstWeekCompletionValue) }}
</template></el-table-column
>
<el-table-column label="完成产值(第二周)" align="center" prop="secondWeekCompletionValue"
><template #default="scope">
{{ proxy.formatPrice(scope.row.secondWeekCompletionValue) }}
</template></el-table-column
>
<el-table-column label="完成产值(第三周)" align="center" prop="thirdWeekCompletionValue"
><template #default="scope">
{{ proxy.formatPrice(scope.row.thirdWeekCompletionValue) }}
</template></el-table-column
>
<el-table-column label="完成产值(第四周)" align="center" prop="fourthWeekCompletionValue"
><template #default="scope">
{{ proxy.formatPrice(scope.row.fourthWeekCompletionValue) }}
</template></el-table-column
>
<el-table-column label="完成产值(第五周)" align="center" prop="fifthWeekCompletionValue"
><template #default="scope">
{{ proxy.formatPrice(scope.row.fifthWeekCompletionValue) }}
</template></el-table-column
>
<el-table-column label="完成产值月合计" align="center" prop="totalCompletionValue"
><template #default="scope">
{{ proxy.formatPrice(scope.row.totalCompletionValue) }}
</template></el-table-column
>
<el-table-column label="产值差额" align="center" prop="valueDifference"
><template #default="scope">
{{ proxy.formatPrice(scope.row.valueDifference) }}
</template></el-table-column
>
<el-table-column label="预计累计产值" align="center" prop="estimatedAccumulatedValue"
><template #default="scope">
{{ proxy.formatPrice(scope.row.estimatedAccumulatedValue) }}
</template></el-table-column
>
<el-table-column label="累计完成产值" align="center" prop="accumulatedCompletionValue"
><template #default="scope">
{{ proxy.formatPrice(scope.row.accumulatedCompletionValue) }}
</template></el-table-column
>
<el-table-column label="产值差额" align="center" prop="valueDifferenceAccumulation"
><template #default="scope">
{{ proxy.formatPrice(scope.row.valueDifferenceAccumulation) }}
</template></el-table-column
>
<el-table-column label="项目完成总进度" align="center" prop="totalCompletionProgress" /> <el-table-column label="项目完成总进度" align="center" prop="totalCompletionProgress" />
</el-table> </el-table>
<pagination <pagination
@ -50,6 +98,7 @@ import { listOutTable } from '@/api/out/outTable';
const userStore = useUserStoreHook(); const userStore = useUserStoreHook();
const currentProject = computed(() => userStore.selectedProject); const currentProject = computed(() => userStore.selectedProject);
const activeTab = ref('1'); const activeTab = ref('1');
const { proxy } = getCurrentInstance() as any;
const queryParams = ref({ const queryParams = ref({
month: '', month: '',
pageNum: 1, pageNum: 1,
@ -102,15 +151,15 @@ const getList = async () => {
total.value = res.total; total.value = res.total;
} }
}; };
const resetMonth=()=>{ const resetMonth = () => {
const currentDate = new Date(); const currentDate = new Date();
const year = currentDate.getFullYear(); const year = currentDate.getFullYear();
const month = currentDate.getMonth() + 1; // 月份从0开始所以需要加1 const month = currentDate.getMonth() + 1; // 月份从0开始所以需要加1
// 形成"YYYY-M"格式 // 形成"YYYY-M"格式
const formattedDate = `${year}-${String(month).padStart(2, '0')}`; const formattedDate = `${year}-${String(month).padStart(2, '0')}`;
queryParams.value.month = formattedDate; queryParams.value.month = formattedDate;
} };
onMounted(() => { onMounted(() => {
resetMonth(); resetMonth();

View File

@ -12,7 +12,11 @@
<el-table-column label="规格" align="center" prop="specification" /> <el-table-column label="规格" align="center" prop="specification" />
<el-table-column label="单位" align="center" prop="unit" /> <el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="接收数量" align="center" prop="acceptedQuantity" /> <el-table-column label="接收数量" align="center" prop="acceptedQuantity" />
<el-table-column label="价格" align="center" prop="unitPrice"> </el-table-column> <el-table-column label="价格" align="center" prop="unitPrice">
<template #default="scope">
{{ proxy.formatPrice(scope.row.unitPrice) }}
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark"> </el-table-column> <el-table-column label="备注" align="center" prop="remark"> </el-table-column>
<el-table-column label="操作" align="center" prop="remark" v-if="queryParams.type == '1'"> <el-table-column label="操作" align="center" prop="remark" v-if="queryParams.type == '1'">
<template #default="scope"> <template #default="scope">

View File

@ -48,7 +48,11 @@
<span>{{ parseTime(scope.row.settlementDate, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.settlementDate, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="结算产值" align="center" prop="settlementValue" /> <el-table-column label="结算产值" align="center" prop="settlementValue" >
<template #default="scope">
<span>{{ proxy.formatPrice(scope.row.settlementValue) }}</span>
</template>
</el-table-column>
<el-table-column label="说明" align="center" prop="remark" /> <el-table-column label="说明" align="center" prop="remark" />
<el-table-column label="合同编码" align="center" prop="contractCode" /> <el-table-column label="合同编码" align="center" prop="contractCode" />
<el-table-column label="合同名称" align="center" prop="contractName" /> <el-table-column label="合同名称" align="center" prop="contractName" />

View File

@ -17,14 +17,46 @@
<el-table v-loading="loading" :data="valueAllocationList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="valueAllocationList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="对甲总产值" align="center" prop="ownerTotalValue" /> <el-table-column label="对甲总产值" align="center" prop="ownerTotalValue">
<el-table-column label="对甲设计产值" align="center" prop="ownerDesignValue" /> <template #default="scope">
<el-table-column label="对甲采购产值" align="center" prop="ownerPurchaseValue" /> {{ proxy.formatPrice(scope.row.ownerTotalValue) }}
<el-table-column label="对甲施工产值" align="center" prop="ownerConstructionValue" /> </template>
<el-table-column label="对乙总产值" align="center" prop="subTotalValue" /> </el-table-column>
<el-table-column label="对设计产值" align="center" prop="subDesignValue" /> <el-table-column label="对设计产值" align="center" prop="ownerDesignValue"
<el-table-column label="对乙采购产值" align="center" prop="subPurchaseValue" /> ><template #default="scope">
<el-table-column label="对乙施工产值" align="center" prop="subConstructionValue" /> {{ proxy.formatPrice(scope.row.ownerDesignValue) }}
</template></el-table-column
>
<el-table-column label="对甲采购产值" align="center" prop="ownerPurchaseValue"
><template #default="scope">
{{ proxy.formatPrice(scope.row.ownerPurchaseValue) }}
</template></el-table-column
>
<el-table-column label="对甲施工产值" align="center" prop="ownerConstructionValue"
><template #default="scope">
{{ proxy.formatPrice(scope.row.ownerConstructionValue) }}
</template></el-table-column
>
<el-table-column label="对乙总产值" align="center" prop="subTotalValue"
><template #default="scope">
{{ proxy.formatPrice(scope.row.subTotalValue) }}
</template></el-table-column
>
<el-table-column label="对乙设计产值" align="center" prop="subDesignValue"
><template #default="scope">
{{ proxy.formatPrice(scope.row.subDesignValue) }}
</template></el-table-column
>
<el-table-column label="对乙采购产值" align="center" prop="subPurchaseValue"
><template #default="scope">
{{ proxy.formatPrice(scope.row.subPurchaseValue) }}
</template></el-table-column
>
<el-table-column label="对乙施工产值" align="center" prop="subConstructionValue"
><template #default="scope">
{{ proxy.formatPrice(scope.row.subConstructionValue) }}
</template></el-table-column
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope"> <template #default="scope">
<el-tooltip content="修改" placement="top"> <el-tooltip content="修改" placement="top">

View File

@ -69,22 +69,22 @@
</el-table-column> </el-table-column>
<el-table-column label="综合单价(业主)" align="center" prop="ownerPrice"> <el-table-column label="综合单价(业主)" align="center" prop="ownerPrice">
<template #default="{ row }"> <template #default="{ row }">
{{ row.unitType == 0 ? '' : row.ownerPrice }} {{ row.unitType == 0 ? '' : proxy.formatPrice(row.ownerPrice) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="综合单价(分包)" align="center" prop="constructionPrice"> <el-table-column label="综合单价(分包)" align="center" prop="constructionPrice">
<template #default="{ row }"> <template #default="{ row }">
{{ row.unitType == 0 ? '' : row.constructionPrice }} {{ row.unitType == 0 ? '' : proxy.formatPrice(row.constructionPrice) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="产值金额(业主)" align="center" prop="ownerOutputValue"> <el-table-column label="产值金额(业主)" align="center" prop="ownerOutputValue">
<template #default="{ row }"> <template #default="{ row }">
{{ row.unitType == 0 ? '' : row.ownerOutputValue }} {{ row.unitType == 0 ? '' : proxy.formatPrice(row.ownerOutputValue) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="产值金额(分包)" align="center" prop="constructionOutputValue"> <el-table-column label="产值金额(分包)" align="center" prop="constructionOutputValue">
<template #default="{ row }"> <template #default="{ row }">
{{ row.unitType == 0 ? '' : row.constructionOutputValue }} {{ row.unitType == 0 ? '' : proxy.formatPrice(row.constructionOutputValue) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="总数量" align="center" prop="total"> <el-table-column label="总数量" align="center" prop="total">
@ -192,7 +192,7 @@ import { ProgressCategoryVO, ProgressCategoryQuery, ProgressCategoryForm } from
import { getTabList } from '@/api/progress/progressCategoryTemplate'; import { getTabList } from '@/api/progress/progressCategoryTemplate';
import { useUserStoreHook } from '@/store/modules/user'; import { useUserStoreHook } from '@/store/modules/user';
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as any;
const { progress_unit_type, progress_work_type } = toRefs<any>(proxy?.useDict('progress_unit_type', 'progress_work_type')); const { progress_unit_type, progress_work_type } = toRefs<any>(proxy?.useDict('progress_unit_type', 'progress_work_type'));
const activeTab = ref('0'); const activeTab = ref('0');
const relevancyStructure = ref('1'); const relevancyStructure = ref('1');

View File

@ -148,7 +148,7 @@
<el-table-column label="薪水" align="center" min-width="180"> <el-table-column label="薪水" align="center" min-width="180">
<template #default="scope"> <template #default="scope">
<span class="flex justify-center"> <span class="flex justify-center">
{{ scope.row.salary ? scope.row.salary : scope.row.standardSalary }} {{ proxy.formatPrice(scope.row.salary ? scope.row.salary : scope.row.standardSalary) }}
(<dict-tag :options="wage_measure_unit_type" :value="scope.row.wageMeasureUnit"></dict-tag>) (<dict-tag :options="wage_measure_unit_type" :value="scope.row.wageMeasureUnit"></dict-tag>)
</span> </span>
<div class="text-blue text-sm cursor-pointer" @click="openSalaryDialog(scope.row)">{{ scope.row.salary ? '取消变更' : '变更' }}</div> <div class="text-blue text-sm cursor-pointer" @click="openSalaryDialog(scope.row)">{{ scope.row.salary ? '取消变更' : '变更' }}</div>
@ -516,7 +516,7 @@ import { AttendanceMonthVO } from '@/api/project/attendance/types';
import { parseTime } from '@/utils/ruoyi'; import { parseTime } from '@/utils/ruoyi';
const calendar = ref<CalendarInstance>(); const calendar = ref<CalendarInstance>();
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as any;
const { type_of_work, user_sex_type, user_clock_type, user_file_type, user_status_type, wage_measure_unit_type } = toRefs<any>( const { type_of_work, user_sex_type, user_clock_type, user_file_type, user_status_type, wage_measure_unit_type } = toRefs<any>(
proxy?.useDict('type_of_work', 'user_sex_type', 'user_clock_type', 'user_file_type', 'user_status_type', 'wage_measure_unit_type') proxy?.useDict('type_of_work', 'user_sex_type', 'user_clock_type', 'user_file_type', 'user_status_type', 'wage_measure_unit_type')
); );

View File

@ -22,7 +22,7 @@
<div> <div>
<div> <div>
<span>租金</span> <span>租金</span>
<span>{{ detailInfo.rentSum / 1000 }} 万元</span> <span>{{ proxy.formatPrice(detailInfo.rentSum) / 1000 }} 万元</span>
</div> </div>
<el-icon :size="50" color="#3176ff"> <el-icon :size="50" color="#3176ff">
<Postcard /> <Postcard />
@ -83,9 +83,21 @@
{{ scope.row.transferArea && scope.row.designArea ? ((scope.row.transferArea / scope.row.designArea) * 100).toFixed(2) : '0.00' }} {{ scope.row.transferArea && scope.row.designArea ? ((scope.row.transferArea / scope.row.designArea) * 100).toFixed(2) : '0.00' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="土地租金(元)" align="center" prop="landRentAll" width="180" /> <el-table-column label="土地租金(元)" align="center" prop="landRentAll" width="180">
<el-table-column label="青苗赔偿(元)" align="center" prop="seedlingCompensationAll" width="180" /> <template #default="scope">
<el-table-column label="总金额(元)" align="center" prop="totalAmountAll" width="150" /> {{ proxy.formatPrice(scope.row.landRentAll) }}
</template></el-table-column
>
<el-table-column label="青苗赔偿(元)" align="center" prop="seedlingCompensationAll" width="180">
<template #default="scope">
{{ proxy.formatPrice(scope.row.seedlingCompensationAll) }}
</template></el-table-column
>
<el-table-column label="总金额(元)" align="center" prop="totalAmountAll" width="150">
<template #default="scope">
{{ proxy.formatPrice(scope.row.totalAmountAll) }}
</template></el-table-column
>
<el-table-column label="操作" align="center" fixed="right" width="200"> <el-table-column label="操作" align="center" fixed="right" width="200">
<template #default="scope"> <template #default="scope">
@ -168,9 +180,21 @@
<el-table-column label="流转状态" align="center" prop="transferStatusName" /> <el-table-column label="流转状态" align="center" prop="transferStatusName" />
<el-table-column label="已流转面积(亩)" align="center" prop="areaValue" width="180" /> <el-table-column label="已流转面积(亩)" align="center" prop="areaValue" width="180" />
<el-table-column label="流转比例(%)" align="center" prop="transferRatio" width="180" /> <el-table-column label="流转比例(%)" align="center" prop="transferRatio" width="180" />
<el-table-column label="土地租金(元)" align="center" prop="landRent" width="180" /> <el-table-column label="土地租金(元)" align="center" prop="landRent" width="180">
<el-table-column label="青苗赔偿(元)" align="center" prop="seedlingCompensation" width="180" /> <template #default="scope">
<el-table-column label="总金额(元)" align="center" prop="totalAmount" width="150" /> {{ proxy.formatPrice(scope.row.landRent) }}
</template></el-table-column
>
<el-table-column label="青苗赔偿(元)" align="center" prop="seedlingCompensation" width="180">
<template #default="scope">
{{ proxy.formatPrice(scope.row.seedlingCompensation) }}
</template></el-table-column
>
<el-table-column label="总金额(元)" align="center" prop="totalAmount" width="150">
<template #default="scope">
{{ proxy.formatPrice(scope.row.totalAmount) }}
</template></el-table-column
>
<el-table-column label="状态说明" align="center" prop="statusDescription" /> <el-table-column label="状态说明" align="center" prop="statusDescription" />
<el-table-column label="问题总结" align="center" prop="issueSummary" /> <el-table-column label="问题总结" align="center" prop="issueSummary" />
<el-table-column label="下一步策略" align="center" prop="nextStrategy" width="180" /> <el-table-column label="下一步策略" align="center" prop="nextStrategy" width="180" />
@ -557,7 +581,7 @@ interface PageData<T, Q> {
rules: Record<string, any[]>; rules: Record<string, any[]>;
} }
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as any;
// 获取用户 store // 获取用户 store
const userStore = useUserStoreHook(); const userStore = useUserStoreHook();
// 从 store 中获取项目列表和当前选中的项目 // 从 store 中获取项目列表和当前选中的项目

View File

@ -50,9 +50,21 @@
<el-table-column label="流转状态" align="center" prop="transferStatusName" /> <el-table-column label="流转状态" align="center" prop="transferStatusName" />
<el-table-column label="已流转面积(亩)" align="center" prop="transferAea" width="180" /> <el-table-column label="已流转面积(亩)" align="center" prop="transferAea" width="180" />
<el-table-column label="流转比例(%)" align="center" prop="transferRatio" width="180" /> <el-table-column label="流转比例(%)" align="center" prop="transferRatio" width="180" />
<el-table-column label="土地租金(元)" align="center" prop="landRent" width="180" /> <el-table-column label="土地租金(元)" align="center" prop="landRent" width="180">
<el-table-column label="青苗赔偿(元)" align="center" prop="seedlingCompensation" width="180" /> <template #default="scope">
<el-table-column label="总金额(元)" align="center" prop="totalAmount" width="150" /> {{ proxy.formatPrice(scope.row.landRent) }}
</template></el-table-column
>
<el-table-column label="青苗赔偿(元)" align="center" prop="seedlingCompensation" width="180">
<template #default="scope">
{{ proxy.formatPrice(scope.row.seedlingCompensation) }}
</template></el-table-column
>
<el-table-column label="总金额(元)" align="center" prop="totalAmount" width="150">
<template #default="scope">
{{ proxy.formatPrice(scope.row.totalAmount) }}
</template>
</el-table-column>
<el-table-column label="状态说明" align="center" prop="statusDescription" /> <el-table-column label="状态说明" align="center" prop="statusDescription" />
<el-table-column label="问题总结" align="center" prop="issueSummary" /> <el-table-column label="问题总结" align="center" prop="issueSummary" />
<el-table-column label="下一步策略" align="center" prop="nextStrategy" width="180" /> <el-table-column label="下一步策略" align="center" prop="nextStrategy" width="180" />
@ -162,7 +174,7 @@ import { listEnterRoad } from '@/api/system/landTransfer/enterRoad';
import { LandTransferLedgerVO, LandTransferLedgerQuery, LandTransferLedgerForm } from '@/api/system/landTransfer/landTransferLedger/types'; import { LandTransferLedgerVO, LandTransferLedgerQuery, LandTransferLedgerForm } from '@/api/system/landTransfer/landTransferLedger/types';
import { useUserStoreHook } from '@/store/modules/user'; import { useUserStoreHook } from '@/store/modules/user';
import { listLandBlock } from '@/api/system/landTransfer/landBlock'; import { listLandBlock } from '@/api/system/landTransfer/landBlock';
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as any;
// 获取用户 store // 获取用户 store
const userStore = useUserStoreHook(); const userStore = useUserStoreHook();
// 从 store 中获取项目列表和当前选中的项目 // 从 store 中获取项目列表和当前选中的项目

View File

@ -152,7 +152,7 @@
<el-table-column label="薪水" align="center" min-width="180"> <el-table-column label="薪水" align="center" min-width="180">
<template #default="scope"> <template #default="scope">
<span class="flex justify-center"> <span class="flex justify-center">
{{ scope.row.salary ? scope.row.salary : scope.row.standardSalary }} {{ proxy.formatPrice(scope.row.salary ? scope.row.salary : scope.row.standardSalary) }}
(<dict-tag :options="wage_measure_unit_type" :value="scope.row.wageMeasureUnit"></dict-tag>) (<dict-tag :options="wage_measure_unit_type" :value="scope.row.wageMeasureUnit"></dict-tag>)
</span> </span>
<div class="text-blue text-sm cursor-pointer" @click="openSalaryDialog(scope.row)">{{ scope.row.salary ? '取消变更' : '变更' }}</div> <div class="text-blue text-sm cursor-pointer" @click="openSalaryDialog(scope.row)">{{ scope.row.salary ? '取消变更' : '变更' }}</div>
@ -551,7 +551,7 @@ import { AttendanceMonthVO } from '@/api/project/attendance/types';
import { parseTime } from '@/utils/ruoyi'; import { parseTime } from '@/utils/ruoyi';
const calendar = ref<CalendarInstance>(); const calendar = ref<CalendarInstance>();
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as any;
const { type_of_work, user_sex_type, user_clock_type, user_file_type, user_status_type, wage_measure_unit_type, user_post_type } = toRefs<any>( const { type_of_work, user_sex_type, user_clock_type, user_file_type, user_status_type, wage_measure_unit_type, user_post_type } = toRefs<any>(
proxy?.useDict('type_of_work', 'user_sex_type', 'user_clock_type', 'user_file_type', 'user_status_type', 'wage_measure_unit_type', 'user_post_type') proxy?.useDict('type_of_work', 'user_sex_type', 'user_clock_type', 'user_file_type', 'user_status_type', 'wage_measure_unit_type', 'user_post_type')
); );

View File

@ -16,7 +16,7 @@
<el-popover placement="top-start" title="" :width="200" trigger="hover" :content="DetailMoney + '元'"> <el-popover placement="top-start" title="" :width="200" trigger="hover" :content="DetailMoney + '元'">
<template #reference> <template #reference>
<el-tag class="m-2" size="large" <el-tag class="m-2" size="large"
><span style="font-size: 20px; cursor: pointer">金额:{{ totalMoney }}</span></el-tag ><span style="font-size: 20px; cursor: pointer">金额:{{ totalMoney ? proxy.formatPrice(totalMoney) : 0 }}</span></el-tag
> >
</template> </template>
</el-popover> </el-popover>
@ -25,7 +25,9 @@
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" type="index" min-width="50px" /> <el-table-column label="序号" align="center" type="index" min-width="50px" />
<el-table-column label="标题" align="center" prop="title" min-width="120px" /> <el-table-column label="标题" align="center" prop="title" min-width="120px" />
<el-table-column label="金额" align="center" prop="money" min-width="100px" /> <el-table-column label="金额" align="center" prop="money" min-width="100px">
<template #default="scope"> {{ proxy.formatPrice(scope.row.money) }} </template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding" min-width="200px" fixed="right"> <el-table-column label="操作" align="center" class-name="small-padding" min-width="200px" fixed="right">
<template #default="scope"> <template #default="scope">
<el-button type="primary" link @click="handleView(scope.row)" <el-button type="primary" link @click="handleView(scope.row)"

View File

@ -147,7 +147,7 @@
<el-table-column label="薪水" align="center" min-width="180"> <el-table-column label="薪水" align="center" min-width="180">
<template #default="scope"> <template #default="scope">
<span class="flex justify-center"> <span class="flex justify-center">
{{ scope.row.salary ? scope.row.salary : scope.row.standardSalary }} {{ proxy.formatPrice(scope.row.salary ? scope.row.salary : scope.row.standardSalary) }}
(<dict-tag :options="wage_measure_unit_type" :value="scope.row.wageMeasureUnit"></dict-tag>) (<dict-tag :options="wage_measure_unit_type" :value="scope.row.wageMeasureUnit"></dict-tag>)
</span> </span>
<div class="text-blue text-sm cursor-pointer" @click="openSalaryDialog(scope.row)">{{ scope.row.salary ? '取消变更' : '变更' }}</div> <div class="text-blue text-sm cursor-pointer" @click="openSalaryDialog(scope.row)">{{ scope.row.salary ? '取消变更' : '变更' }}</div>
@ -513,7 +513,7 @@ import { AttendanceMonthVO } from '@/api/project/attendance/types';
import { parseTime } from '@/utils/ruoyi'; import { parseTime } from '@/utils/ruoyi';
const calendar = ref<CalendarInstance>(); const calendar = ref<CalendarInstance>();
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as any;
const { type_of_work, user_sex_type, user_clock_type, user_file_type, user_status_type, wage_measure_unit_type } = toRefs<any>( const { type_of_work, user_sex_type, user_clock_type, user_file_type, user_status_type, wage_measure_unit_type } = toRefs<any>(
proxy?.useDict('type_of_work', 'user_sex_type', 'user_clock_type', 'user_file_type', 'user_status_type', 'wage_measure_unit_type') proxy?.useDict('type_of_work', 'user_sex_type', 'user_clock_type', 'user_file_type', 'user_status_type', 'wage_measure_unit_type')
); );

View File

@ -59,7 +59,11 @@
<dict-tag :options="subcontract_type" :value="scope.row.contractType" /> <dict-tag :options="subcontract_type" :value="scope.row.contractType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="合同金额" align="center" prop="contractAmount" /> <el-table-column label="合同金额" align="center" prop="contractAmount">
<template #default="scope">
<span>{{ proxy.formatPrice(scope.row.contractAmount) }}</span>
</template>
</el-table-column>
<el-table-column label="合同时间" align="center" prop="contractTime" width="180"> <el-table-column label="合同时间" align="center" prop="contractTime" width="180">
<template #default="scope"> <template #default="scope">
<span>{{ parseTime(scope.row.contractTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.contractTime, '{y}-{m}-{d}') }}</span>
@ -133,7 +137,7 @@ import { SubcontractVO, SubcontractQuery, SubcontractForm } from '@/api/project/
import { listContractor } from '@/api/project/contractor'; import { listContractor } from '@/api/project/contractor';
import { useUserStoreHook } from '@/store/modules/user'; import { useUserStoreHook } from '@/store/modules/user';
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as any;
// 获取用户 store // 获取用户 store
const userStore = useUserStoreHook(); const userStore = useUserStoreHook();
const currentProject = computed(() => userStore.selectedProject); const currentProject = computed(() => userStore.selectedProject);

View File

@ -71,7 +71,11 @@
{{ scope.row.wageCalculationType == 1 ? '计时' : '计件' }} {{ scope.row.wageCalculationType == 1 ? '计时' : '计件' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="工资标准" align="center" prop="wage" /> <el-table-column label="工资标准" align="center" prop="wage">
<template #default="scope">
{{ proxy.formatPrice(scope.row.wage) }}
</template>
</el-table-column>
<el-table-column label="工资计量单位" align="center" prop="wageMeasureUnit"> <el-table-column label="工资计量单位" align="center" prop="wageMeasureUnit">
<template #default="scope"> <template #default="scope">
<dict-tag :options="wage_measure_unit_type" :value="scope.row.wageMeasureUnit" /> <dict-tag :options="wage_measure_unit_type" :value="scope.row.wageMeasureUnit" />
@ -141,7 +145,7 @@ import { listWorkWage, getWorkWage, delWorkWage, addWorkWage, updateWorkWage } f
import { WorkWageVO, WorkWageQuery, WorkWageForm, SpecialType } from '@/api/project/workWage/types'; import { WorkWageVO, WorkWageQuery, WorkWageForm, SpecialType } from '@/api/project/workWage/types';
import { useUserStoreHook } from '@/store/modules/user'; import { useUserStoreHook } from '@/store/modules/user';
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as any;
const { type_of_work, wage_measure_unit_type } = toRefs<any>(proxy?.useDict('type_of_work', 'wage_measure_unit_type')); const { type_of_work, wage_measure_unit_type } = toRefs<any>(proxy?.useDict('type_of_work', 'wage_measure_unit_type'));
console.log(type_of_work); console.log(type_of_work);

View File

@ -81,8 +81,8 @@
changePrice(scope.row); changePrice(scope.row);
} }
" "
:precision="2" :precision="4"
:step="0.1" :min="0"
:controls="false" :controls="false"
v-if="scope.row.quantity && scope.row.quantity != 0" v-if="scope.row.quantity && scope.row.quantity != 0"
:disabled="versionsData.status != 'draft'" :disabled="versionsData.status != 'draft'"
@ -91,7 +91,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="price" label="总价" align="center"> <el-table-column prop="price" label="总价" align="center">
<template #default="scope"> <template #default="scope">
{{ scope.row.price != 0 ? Number(scope.row.price).toFixed(2) : null }} {{ proxy.formatPrice(scope.row.price) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="taxRate" label="税率" width="100" align="center"> <el-table-column prop="taxRate" label="税率" width="100" align="center">
@ -154,7 +154,7 @@ interface VersionItem {
} }
// 实例与状态初始化 // 实例与状态初始化
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as any;
const userStore = useUserStoreHook(); const userStore = useUserStoreHook();
const currentProject = computed(() => userStore.selectedProject); const currentProject = computed(() => userStore.selectedProject);

View File

@ -41,10 +41,14 @@
<el-table-column prop="specification" label="规格" /> <el-table-column prop="specification" label="规格" />
<el-table-column prop="unit" label="单位" /> <el-table-column prop="unit" label="单位" />
<el-table-column prop="quantity" label="数量" /> <el-table-column prop="quantity" label="数量" />
<el-table-column prop="unitPrice" label="单价" align="center" /> <el-table-column prop="unitPrice" label="单价" align="center">
<template #default="scope">
{{ proxy.formatPrice(scope.row.unitPrice) }}
</template>
</el-table-column>
<el-table-column prop="price" label="总价" align="center"> <el-table-column prop="price" label="总价" align="center">
<template #default="scope"> <template #default="scope">
{{ scope.row.price != 0 ? Number(scope.row.price).toFixed(2) : null }} {{ proxy.formatPrice(scope.row.price) }}
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

View File

@ -41,10 +41,14 @@
<el-table-column prop="specification" label="规格" /> <el-table-column prop="specification" label="规格" />
<el-table-column prop="unit" label="单位" /> <el-table-column prop="unit" label="单位" />
<el-table-column prop="quantity" label="数量" /> <el-table-column prop="quantity" label="数量" />
<el-table-column prop="unitPrice" label="单价" align="center" /> <el-table-column prop="unitPrice" label="单价" align="center">
<template #default="scope">
{{ proxy.formatPrice(scope.row.unitPrice) }}
</template>
</el-table-column>
<el-table-column prop="price" label="总价" align="center"> <el-table-column prop="price" label="总价" align="center">
<template #default="scope"> <template #default="scope">
{{ scope.row.price != 0 ? Number(scope.row.price).toFixed(2) : null }} {{ proxy.formatPrice(scope.row.price) }}
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

View File

@ -25,7 +25,11 @@
</el-table-column> </el-table-column>
<el-table-column prop="name" label="名称" align="center" /> <el-table-column prop="name" label="名称" align="center" />
<el-table-column prop="content" label="内容" align="center" /> <el-table-column prop="content" label="内容" align="center" />
<el-table-column prop="price" label="限价" align="center" /> <el-table-column prop="price" label="限价" align="center">
<template #default="scope">
{{ proxy.formatPrice(scope.row.price) }}
</template>
</el-table-column>
<el-table-column prop="bidd" align="center"> <el-table-column prop="bidd" align="center">
<template #header> <span style="color: red">*</span>招标文件 </template> <template #header> <span style="color: red">*</span>招标文件 </template>
<template #default="scope"> <template #default="scope">
@ -75,8 +79,8 @@
changeContractPrice(val, scope.row); changeContractPrice(val, scope.row);
} }
" "
:precision="2" :precision="4"
:step="1" :min="0"
:controls="false" :controls="false"
:disabled="scope.row.bidStatus == 1" :disabled="scope.row.bidStatus == 1"
v-hasPermi="['tender:biddingPlan:edit']" v-hasPermi="['tender:biddingPlan:edit']"
@ -226,22 +230,27 @@
/> />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="unitPrice" label="单价" align="center" /> <el-table-column prop="unitPrice" label="单价" align="center">
<template #default="scope">
{{ scope.row.unitPrice ? proxy.formatPrice(scope.row.unitPrice) : '' }}
</template>
</el-table-column>
<el-table-column prop="price" label="总价" align="center"> <el-table-column prop="price" label="总价" align="center">
<template #default="scope"> <template #default="scope">
{{ {{
((scope.row.quantity ? Number(scope.row.quantity) : 0) - proxy.formatPrice(
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) - ((scope.row.quantity ? Number(scope.row.quantity) : 0) -
(scope.row.selectNum ? Number(scope.row.selectNum) : 0)) * (scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) -
Number(scope.row.unitPrice) == (scope.row.selectNum ? Number(scope.row.selectNum) : 0)) *
0 Number(scope.row.unitPrice) ==
? '' 0
: ( ? ''
((scope.row.quantity ? Number(scope.row.quantity) : 0) - : ((scope.row.quantity ? Number(scope.row.quantity) : 0) -
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) - (scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) -
(scope.row.selectNum ? Number(scope.row.selectNum) : 0)) * (scope.row.selectNum ? Number(scope.row.selectNum) : 0)) *
Number(scope.row.unitPrice) Number(scope.row.unitPrice),
).toFixed(2) false
)
}} }}
</template> </template>
</el-table-column> </el-table-column>
@ -259,10 +268,14 @@
<el-table-column prop="name" label="工程或费用名称" /> <el-table-column prop="name" label="工程或费用名称" />
<el-table-column prop="unit" label="单位" /> <el-table-column prop="unit" label="单位" />
<el-table-column prop="quantity" label="数量" /> <el-table-column prop="quantity" label="数量" />
<el-table-column prop="unitPrice" label="单价" align="center" /> <el-table-column prop="unitPrice" label="单价" align="center">
<template #default="scope">
{{ scope.row.unitPrice ? proxy.formatPrice(scope.row.unitPrice) : '' }}
</template>
</el-table-column>
<el-table-column prop="price" label="总价" align="center"> <el-table-column prop="price" label="总价" align="center">
<template #default="scope"> <template #default="scope">
{{ scope.row.price }} {{ scope.row.price ? proxy.formatPrice(scope.row.price) : '' }}
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -294,12 +307,14 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { getCurrentInstance, ComponentInternalInstance } from 'vue';
import { useUserStoreHook } from '@/store/modules/user'; import { useUserStoreHook } from '@/store/modules/user';
import { getDicts } from '@/api/system/dict/data'; import { getDicts } from '@/api/system/dict/data';
import { Plus } from '@element-plus/icons-vue'; import { Plus } from '@element-plus/icons-vue';
import { FormInstance } from 'element-plus'; import { FormInstance } from 'element-plus';
import winTheBid from './comm/winTheBid.vue'; import winTheBid from './comm/winTheBid.vue';
import information from './comm/planPage.vue'; import information from './comm/planPage.vue';
const { proxy } = getCurrentInstance();
import { import {
sheetList, sheetList,