明树Git Lab

Commit d27fdd74 authored by zhanghan's avatar zhanghan

需求提交

parent af5f598d
Pipeline #108935 passed with stage
in 22 seconds
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
> >
删除选中文件 删除选中文件
</el-button> </el-button>
<slot name="actions"></slot>
</div> </div>
<!-- 文件列表表格 --> <!-- 文件列表表格 -->
<el-table <el-table
...@@ -106,6 +107,14 @@ ...@@ -106,6 +107,14 @@
:value="option.value" :value="option.value"
/> />
</el-select> </el-select>
<!-- 字典选择器 CommonSelector -->
<CommonSelector
v-else-if="col.type === 'dictSelect'"
v-model="row[col.prop]"
:dictName="col.dictName"
:disabled="disabled || col.disabled"
@change="handleCustomColChange(row, col.prop, $index)"
/>
<!-- 自定义插槽(最高优先级) --> <!-- 自定义插槽(最高优先级) -->
<slot <slot
v-else v-else
...@@ -231,6 +240,8 @@ import moment from "moment"; ...@@ -231,6 +240,8 @@ import moment from "moment";
import windowConfig from "@/window"; import windowConfig from "@/window";
// 引入需要的图标 // 引入需要的图标
import { Document, Download, Delete, ArrowDown } from "@element-plus/icons-vue"; import { Document, Download, Delete, ArrowDown } from "@element-plus/icons-vue";
// 引入 CommonSelector 组件
import CommonSelector from "@/components/CommonSelector.vue";
// 定义组件 props(新增 customColumns 配置) // 定义组件 props(新增 customColumns 配置)
const props = defineProps({ const props = defineProps({
...@@ -277,7 +288,7 @@ const props = defineProps({ ...@@ -277,7 +288,7 @@ const props = defineProps({
* 列配置项说明: * 列配置项说明:
* @param {string} prop - 字段名(必填) * @param {string} prop - 字段名(必填)
* @param {string} label - 列标题(必填) * @param {string} label - 列标题(必填)
* @param {string} type - 组件类型:input/date/datetime/select(默认显示文本) * @param {string} type - 组件类型:input/textarea/date/datetime/select/dictSelect(默认显示文本)
* @param {number} width - 列宽度 * @param {number} width - 列宽度
* @param {string} fixed - 是否固定列:left/right * @param {string} fixed - 是否固定列:left/right
* @param {string} align - 对齐方式:left/center/right * @param {string} align - 对齐方式:left/center/right
...@@ -286,6 +297,7 @@ const props = defineProps({ ...@@ -286,6 +297,7 @@ const props = defineProps({
* @param {string} format - 日期格式化(仅date/datetime) * @param {string} format - 日期格式化(仅date/datetime)
* @param {string} valueFormat - 日期值格式化(仅date/datetime) * @param {string} valueFormat - 日期值格式化(仅date/datetime)
* @param {Array} options - 下拉选项(仅select),格式:[{label: '选项1', value: '1'}, ...] * @param {Array} options - 下拉选项(仅select),格式:[{label: '选项1', value: '1'}, ...]
* @param {string} dictName - 字典名称(仅dictSelect),用于 CommonSelector 组件
*/ */
}, },
}); });
......
...@@ -241,6 +241,21 @@ ...@@ -241,6 +241,21 @@
/> />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column
prop="tgje"
label="调概金额"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.tgje"
:min="0"
:max="99999999999.99999999"
controls-position="right"
:disabled="!fyfxkzIsEdit"
/>
</template>
</el-table-column>
<el-table-column <el-table-column
prop="sqyc" prop="sqyc"
label="上期预测" label="上期预测"
...@@ -1158,7 +1173,7 @@ const saveFyfxkz = () => { ...@@ -1158,7 +1173,7 @@ const saveFyfxkz = () => {
// 验证时间范围是否重复(排除当前编辑的记录) // 验证时间范围是否重复(排除当前编辑的记录)
const isDuplicate = rangeList.value.some( const isDuplicate = rangeList.value.some(
(item) => item.key === newKey && item.key !== selectRange.value (item) => item.key === newKey && item.key !== selectRange.value,
); );
if (isDuplicate) { if (isDuplicate) {
return ElMessage.warning("该时间范围已存在,请选择其他时间"); return ElMessage.warning("该时间范围已存在,请选择其他时间");
...@@ -1422,7 +1437,7 @@ const saveCwpj = () => { ...@@ -1422,7 +1437,7 @@ const saveCwpj = () => {
// 验证时间范围是否重复(排除当前编辑的记录) // 验证时间范围是否重复(排除当前编辑的记录)
const isDuplicate = cwpjRangeList.value.some( const isDuplicate = cwpjRangeList.value.some(
(item) => item.key === newKey && item.key !== cwpjSelectRange.value (item) => item.key === newKey && item.key !== cwpjSelectRange.value,
); );
if (isDuplicate) { if (isDuplicate) {
return ElMessage.warning("该时间范围已存在,请选择其他时间"); return ElMessage.warning("该时间范围已存在,请选择其他时间");
......
...@@ -148,6 +148,13 @@ ...@@ -148,6 +148,13 @@
:label-width="100" :label-width="100"
></el-form-item> ></el-form-item>
<div class="tab-handle"> <div class="tab-handle">
<el-button
type="primary"
size="small"
@click="exportTemplate"
style="margin-left: 12px"
>模版导出</el-button
>
<el-button <el-button
type="primary" type="primary"
size="small" size="small"
...@@ -155,6 +162,7 @@ ...@@ -155,6 +162,7 @@
:disabled="!fxczqkData.length" :disabled="!fxczqkData.length"
>导出</el-button >导出</el-button
> >
<el-upload <el-upload
ref="uploadRef" ref="uploadRef"
class="upload-demo" class="upload-demo"
...@@ -551,6 +559,9 @@ const importTableData = (file) => { ...@@ -551,6 +559,9 @@ const importTableData = (file) => {
const exportTableData = () => { const exportTableData = () => {
exportTableFile(fxczqkData.value, tableColumns, "", "风险处置情况"); exportTableFile(fxczqkData.value, tableColumns, "", "风险处置情况");
}; };
const exportTemplate = () => {
exportTableFile([], tableColumns, "", "风险处置情况模版");
};
const backClick = () => { const backClick = () => {
router.back(-1); router.back(-1);
......
...@@ -309,7 +309,7 @@ ...@@ -309,7 +309,7 @@
</el-col> </el-col>
</el-row> </el-row>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="年度" name="年度"> <!-- <el-collapse-item title="年度" name="年度">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="年度" required> <el-form-item label="年度" required>
...@@ -323,7 +323,7 @@ ...@@ -323,7 +323,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-collapse-item> </el-collapse-item> -->
<el-collapse-item <el-collapse-item
title="投融资与运营指标(万元)" title="投融资与运营指标(万元)"
...@@ -541,10 +541,21 @@ ...@@ -541,10 +541,21 @@
<el-input v-model="formData.qddw" /> <el-input v-model="formData.qddw" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6">
<el-form-item label="签订时间">
<el-date-picker
v-model="formData.qdsj"
type="date"
placeholder="请选择"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item <el-form-item
style="padding: 8px 0" style="padding: 8px 0"
:label="`已盖章签字的${formData?.niandu}年度目标责任书附件`" :label="`已盖章签字的目标责任书附件`"
> >
<FileUploader <FileUploader
v-model="formData.ygzqzdyyjdmbzrsfj" v-model="formData.ygzqzdyyjdmbzrsfj"
......
...@@ -42,6 +42,12 @@ ...@@ -42,6 +42,12 @@
<FileUploader <FileUploader
v-model="formData.qylht" v-model="formData.qylht"
:custom-columns="[ :custom-columns="[
{
prop: 'htlx',
label: '权益类合同类型',
type: 'dictSelect',
dictName: 'qylhtlx',
},
{ {
prop: 'jfqdsj', prop: 'jfqdsj',
label: '甲方签订时间', label: '甲方签订时间',
...@@ -66,6 +72,12 @@ ...@@ -66,6 +72,12 @@
<el-form-item label="经济类合同"> <el-form-item label="经济类合同">
<FileUploader <FileUploader
:custom-columns="[ :custom-columns="[
{
prop: 'htlx',
label: '经济类合同类型',
type: 'dictSelect',
dictName: 'jjlhtlx',
},
{ {
prop: 'jfqdsj', prop: 'jfqdsj',
label: '甲方签订时间', label: '甲方签订时间',
...@@ -133,12 +145,30 @@ ...@@ -133,12 +145,30 @@
<el-tab-pane label="变更索赔类" name="变更索赔类"> <el-tab-pane label="变更索赔类" name="变更索赔类">
<el-row :gutter="20"> <el-row :gutter="20">
<!-- 变更索赔文件 --> <!-- 变更索赔文件 -->
<el-col :span="24"> <el-col :span="24">
<el-form-item label="变更索赔文件"> <el-form-item label="变更索赔文件">
<FileUploader <FileUploader
v-model="formData.bgsp" v-model="formData.bgsp"
:custom-columns="customColumnsJs" :custom-columns="customColumnsJs"
/> >
<template #actions>
<div class="gov-notice-wrapper">
<div class="notice-item">
<span class="item-label">【变更】</span>
<span class="item-text"
>投资项目金额达到300万元(含)以上的设计变更立项、施工图和费用审核。</span
>
</div>
<div class="notice-item">
<span class="item-label">【索赔】</span>
<span class="item-text"
>预计金额300万元(含)以上的工程索赔立项、费用审核。</span
>
</div>
</div>
</template>
</FileUploader>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -365,4 +395,34 @@ onMounted(() => { ...@@ -365,4 +395,34 @@ onMounted(() => {
.el-row { .el-row {
margin-bottom: 8px; margin-bottom: 8px;
} }
// 政府公文样式
.gov-notice-wrapper {
background-color: #ffffff;
.notice-item {
padding-left: 16px;
display: flex;
align-items: flex-start;
line-height: 1.8;
font-size: 14px;
color: #606266;
&:last-child {
margin-bottom: 0;
}
.item-label {
color: #e6a23c;
font-weight: 600;
margin-right: 8px;
flex-shrink: 0;
}
.item-text {
flex: 1;
text-align: justify;
}
}
}
</style> </style>
...@@ -167,7 +167,7 @@ ...@@ -167,7 +167,7 @@
</div> </div>
<el-table <el-table
:data="jsqtzjcZxjcsList" :data="jsqtzjcZxjcsList"
style="width: 100%" style="width: 100%; overflow-y: scroll"
empty-text="暂无数据" empty-text="暂无数据"
border border
> >
...@@ -217,7 +217,7 @@ ...@@ -217,7 +217,7 @@
/> />
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column prop="zgcsqd" label="整改措施清单"> <!-- <el-table-column prop="zgcsqd" label="整改措施清单">
<template #default="scope"> <template #default="scope">
<el-input <el-input
v-model.number="scope.row.zgcsqd" v-model.number="scope.row.zgcsqd"
...@@ -226,7 +226,11 @@ ...@@ -226,7 +226,11 @@
</template> </template>
</el-table-column> --> </el-table-column> -->
<el-table-column prop="zgcsqd" label="整改措施清单"> <el-table-column
prop="zgcsqd"
min-width="120px"
label="整改措施清单"
>
<template #default="scope"> <template #default="scope">
<FileUploader <FileUploader
v-model="scope.row.zgcsqd" v-model="scope.row.zgcsqd"
...@@ -235,7 +239,11 @@ ...@@ -235,7 +239,11 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="jcbg" label="检查报告"> <el-table-column
min-width="120px"
prop="jcbg"
label="检查报告"
>
<template #default="scope"> <template #default="scope">
<FileUploader <FileUploader
v-model="scope.row.jcbg" v-model="scope.row.jcbg"
...@@ -244,7 +252,11 @@ ...@@ -244,7 +252,11 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="fjcl" label="附件材料"> <el-table-column
min-width="120px"
prop="fjcl"
label="附件材料"
>
<template #default="scope"> <template #default="scope">
<FileUploader <FileUploader
v-model="scope.row.fjcl" v-model="scope.row.fjcl"
...@@ -252,6 +264,17 @@ ...@@ -252,6 +264,17 @@
></FileUploader> ></FileUploader>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="zgjz" label="整改进展">
<template #default="scope">
<el-input
type="textarea"
rows="2"
v-model.number="scope.row.zgjz"
placeholder="请输入整改进展"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="60"> <el-table-column label="操作" width="60">
<template #default="scope"> <template #default="scope">
<el-button <el-button
...@@ -487,4 +510,13 @@ onMounted(() => { ...@@ -487,4 +510,13 @@ onMounted(() => {
line-height: 40px; line-height: 40px;
} }
} }
// 支持表格横向滚动
.tab-content {
overflow-x: auto;
}
.project-tab-content {
overflow-x: auto;
}
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment