This commit is contained in:
dhr
2025-09-08 15:44:35 +08:00
parent 6e33ae2972
commit dc35cb8354
6 changed files with 72 additions and 23 deletions

View File

@ -98,3 +98,10 @@ export const cashTotal = () => {
method: 'get'
});
};
//安全天数
export const getSafetyDay = (projectId) => {
return request({
url: '/money/big/screen/safetyDay/' + projectId,
method: 'get'
});
};

View File

@ -140,9 +140,9 @@ const createEarth = () => {
// 加载底图
loadBaseMap(earthInstance.viewer);
// 可以取消注释以下代码来设置初始视角
// // 可以取消注释以下代码来设置初始视角
// YJ.Global.flyTo(earthInstance, view);
// YJ.Global.setDefaultView(earthInstance.viewer, view)
// YJ.Global.setDefaultView(earthInstance.viewer, view);
// 地球创建完成后获取并渲染轨迹数据
getTrajectoryData();

View File

@ -6,7 +6,7 @@
</div>
<div style="font-size: 12px; padding-left: 10px">安全生产天数</div>
<div class="header_left_text">
1,235
{{ safetyDay }}
<span style="font-size: 12px"></span>
</div>
</div>
@ -41,12 +41,42 @@
</template>
<script setup lang="ts">
import { ref, computed, onMounted } from 'vue';
import { useUserStoreHook } from '@/store/modules/user';
import { getSafetyDay } from '@/api/largeScreen/index';
const week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
const date = ref({
ymd: '',
hms: '',
week: 0
});
const safetyDay = ref('');
const userStore = useUserStoreHook();
const currentProject = computed(() => userStore.selectedProject);
// 获取安全生产天数
const getSafetyDays = async () => {
try {
console.log('currentProject', currentProject.value.id);
if (currentProject.value?.id) {
const res = await getSafetyDay(currentProject.value.id);
console.log('111111', res);
if (res.code === 200 && res.data) {
safetyDay.value = res.data.safetyDay.toString();
}
}
} catch (error) {
console.error('获取安全生产天数失败:', error);
}
};
// 组件挂载时获取数据
onMounted(() => {
getSafetyDays();
});
const setTime = () => {
let date1 = new Date();
let year: any = date1.getFullYear();

View File

@ -38,7 +38,6 @@
</template>
</el-card>
<!-- 本地数据懒加载表格 -->
<el-table
:data="state.tableData"
v-loading="state.loading.list"
@ -52,15 +51,16 @@
:load="loadLocalChildNodes"
@expand-change="handleExpandChange"
>
<!-- 1. 普通列添加 align="center" 实现表头+单元格居中 -->
<el-table-column align="center" prop="num" label="编号" />
<el-table-column prop="name" label="工程或费用名称" width="180" />
<el-table-column prop="unit" label="单位" />
<el-table-column prop="specification" label="规格型号" width="80" />
<el-table-column prop="quantity" label="数量" width="100" />
<el-table-column prop="batchNumber" label="批次号" width="200" />
<el-table-column align="center" prop="name" label="工程或费用名称" width="180" />
<el-table-column align="center" prop="unit" label="单位" />
<el-table-column align="center" prop="specification" label="规格型号" width="80" />
<el-table-column align="center" prop="quantity" label="数量" width="100" />
<el-table-column align="center" prop="batchNumber" label="批次号" width="200" />
<!-- 优化的输入框列 -->
<el-table-column prop="brand" label="品牌">
<!-- 2. 带输入框的列添加 align="center" + 输入框内联样式 text-align: center -->
<el-table-column align="center" prop="brand" label="品牌">
<template #default="{ row }">
<el-input
v-model.lazy="row.brand"
@ -70,11 +70,12 @@
clearable
:key="`brand-${row.id}`"
@change="handleInputChange(row, 'brand')"
style="text-align: center"
/>
</template>
</el-table-column>
<el-table-column prop="texture" label="材质">
<el-table-column align="center" prop="texture" label="材质">
<template #default="{ row }">
<el-input
v-model.lazy="row.texture"
@ -84,6 +85,7 @@
clearable
:key="`texture-${row.id}`"
@change="handleInputChange(row, 'texture')"
style="text-align: center"
/>
</template>
</el-table-column>

View File

@ -74,10 +74,10 @@
<el-table-column label="设计面积(亩)" align="center" prop="designArea" width="180" />
<el-table-column label="责任人" align="center" prop="responsiblePerson" />
<el-table-column label="预计完成时间" align="center" prop="expectedFinishDate" width="180"> </el-table-column>
<el-table-column label="流转状态" align="center" prop="transferStatusName" />
<el-table-column label="流转状态" align="center" prop="type" />
<el-table-column label="已流转面积(亩)" align="center" prop="transferArea" width="180" />
<el-table-column label="不流转数据" align="center" prop="noTrans" width="180" />
<el-table-column label="未流转数据" align="center" prop="noTransferAea" width="180" />
<el-table-column label="不流转面积(亩)" align="center" prop="noTrans" width="180" />
<el-table-column label="未流转面积(亩)" align="center" prop="noTransferAea" width="180" />
<el-table-column label="流转比例(%)" align="center" width="180">
<template #default="scope">
{{ scope.row.transferArea && scope.row.designArea ? ((scope.row.transferArea / scope.row.designArea) * 100).toFixed(2) : '0.00' }}
@ -120,7 +120,7 @@
</div>
<div class="summary-item transfer-area">
<div class="summary-content">
<span class="summary-label">已流转面积</span>
<span class="summary-label">已流转面积()</span>
<span class="summary-value">{{ sonSummaryInfo.totalTransferArea }} </span>
</div>
<el-icon class="summary-icon" :size="50" color="#3176ff">
@ -129,7 +129,7 @@
</div>
<div class="summary-item non-transfer-area">
<div class="summary-content">
<span class="summary-label">不流转面积</span>
<span class="summary-label">不流转面积()</span>
<span class="summary-value">{{ sonSummaryInfo.totalNonTransferArea }} </span>
</div>
<el-icon class="summary-icon" :size="50" color="#3176ff">
@ -138,7 +138,7 @@
</div>
<div class="summary-item remaining-area">
<div class="summary-content">
<span class="summary-label">未流转面积</span>
<span class="summary-label">未流转面积()</span>
<span class="summary-value">{{ sonSummaryInfo.remainingArea }} </span>
</div>
<el-icon class="summary-icon" :size="50" color="#3176ff">
@ -292,7 +292,7 @@
<el-form-item label="已流转面积(亩)" prop="areaValue">
<el-input v-model="sonForm.areaValue" type="number" placeholder="请输入已流转面积" @input="calcSonTransferRatio" />
<div style="color: #ff4d4f; font-size: 12px; margin-top: 4px">
{{ sonForm.areaValue && sonForm.transferStatus == '1' ? `提示:已流转面积不能超过设计面积 ${sonForm.designArea}` : '' }}
{{ sonForm.areaValue && sonForm.transferStatus == '1' ? `提示:当前剩余${sonSummaryInfo.remainingArea}未流转面积` : '' }}
</div>
</el-form-item>
</el-col>
@ -325,7 +325,7 @@
<el-form-item label="不流转面积(亩)" prop="areaValue">
<el-input v-model="sonForm.areaValue" type="number" placeholder="请输入不流转面积" />
<div style="color: #ff4d4f; font-size: 12px; margin-top: 4px">
{{ sonForm.areaValue && sonForm.transferStatus == '2' ? `提示:不流转面积不能超过设计面积 ${sonForm.designArea}` : '' }}
{{ sonForm.areaValue && sonForm.transferStatus == '2' ? `提示:当前剩余 ${sonSummaryInfo.remainingArea}未流转面积` : '' }}
</div>
</el-form-item>
</el-col>
@ -751,6 +751,16 @@ const sonRules = {
projectId: [{ required: true, message: '项目ID不能为空', trigger: 'blur' }],
parentId: [{ required: true, message: '父级ID不能为空', trigger: 'blur' }],
landType: [{ required: true, message: '土地类型不能为空', trigger: 'change' }],
landRent: [{ required: true, message: '土地租金不能为空', trigger: 'blur' }],
seedlingCompensation: [{ required: true, message: '青苗赔偿不能为空', trigger: 'blur' }],
totalAmount: [{ required: true, message: '总金额不能为空', trigger: 'blur' }],
statusDescription: [{ required: true, message: '状态说明不能为空', trigger: 'blur' }],
issueSummary: [{ required: true, message: '问题总结不能为空', trigger: 'blur' }],
nextStrategy: [{ required: true, message: '下一步策略不能为空', trigger: 'blur' }],
noContractArea: [{ required: true, message: '不签约面积不能为空', trigger: 'blur' }],
noSurveyArea: [{ required: true, message: '不测量面积不能为空', trigger: 'blur' }],
noContractReason: [{ required: true, message: '不签约原因不能为空', trigger: 'blur' }],
nonTransferReason: [{ required: true, message: '不流转原因不能为空', trigger: 'blur' }],
transferRatio: [
{
required: true,

View File

@ -223,8 +223,8 @@
<!-- 第十行安全生产许可证有效期仅劳务类型显示 -->
<el-row :gutter="20" class="mb-4" v-if="form.supplierType === '劳务'">
<el-col :span="12">
<el-form-item label="安全生产许可证发证日期" prop="safeCertificateValidity">
<el-date-picker v-model="form.safeCertificateValidity" type="date" placeholder="请选择发证日期" />
<el-form-item label="安全生产许可证有效期" prop="safeCertificateValidity">
<el-date-picker v-model="form.safeCertificateValidity" type="date" placeholder="请选择有效期" />
</el-form-item>
</el-col>
<el-col :span="12">
@ -243,7 +243,7 @@
<el-form-item label="注册造价工程师" prop="registeredEngineerNumber">
<el-input v-model="form.registeredEngineerNumber" placeholder="请输入注册造价工程师数量" clearable />
</el-form-item>
<el-form-item label="其他(分别写)" prop="otherBuildingNumber">
<el-form-item label="其他人员数量" prop="otherBuildingNumber">
<el-input v-model="form.otherBuildingNumber" placeholder="请输入其他人员数量" clearable />
</el-form-item>
</el-col>