|
@@ -340,46 +340,155 @@
|
|
|
<el-table
|
|
<el-table
|
|
|
style="margin-top: 20px"
|
|
style="margin-top: 20px"
|
|
|
border
|
|
border
|
|
|
- :data="formData.dataRequirements"
|
|
|
|
|
|
|
+ :data="groupedDataRequirements"
|
|
|
size="mini"
|
|
size="mini"
|
|
|
|
|
+ :show-header="true"
|
|
|
|
|
+ :row-class-name="getRowClassName"
|
|
|
>
|
|
>
|
|
|
|
|
+ <el-table-column prop="seq" label="序号" width="80" align="center">
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <span v-if="!scope.row.isCategoryHeader">
|
|
|
|
|
+ {{ scope.row.seq || scope.row.index }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
- prop="seq"
|
|
|
|
|
- label="序号"
|
|
|
|
|
- width="80"
|
|
|
|
|
- align="center"
|
|
|
|
|
- ></el-table-column>
|
|
|
|
|
- <el-table-column
|
|
|
|
|
- prop="name"
|
|
|
|
|
|
|
+ prop="informationName"
|
|
|
label="报送资料"
|
|
label="报送资料"
|
|
|
min-width="280"
|
|
min-width="280"
|
|
|
- ></el-table-column>
|
|
|
|
|
|
|
+ >
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <div
|
|
|
|
|
+ v-if="scope.row.isCategoryHeader"
|
|
|
|
|
+ class="category-header-cell"
|
|
|
|
|
+ >
|
|
|
|
|
+ {{ scope.row.categoryName }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <span v-else>{{ scope.row.informationName || '-' }}</span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
- prop="type"
|
|
|
|
|
|
|
+ prop="informationType"
|
|
|
label="资料类型"
|
|
label="资料类型"
|
|
|
width="130"
|
|
width="130"
|
|
|
align="center"
|
|
align="center"
|
|
|
- ></el-table-column>
|
|
|
|
|
|
|
+ >
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <span v-if="!scope.row.isCategoryHeader">
|
|
|
|
|
+ <span
|
|
|
|
|
+ v-if="
|
|
|
|
|
+ scope.row.informationType !== null &&
|
|
|
|
|
+ scope.row.informationType !== undefined
|
|
|
|
|
+ "
|
|
|
|
|
+ >
|
|
|
|
|
+ {{
|
|
|
|
|
+ getDictName(
|
|
|
|
|
+ 'materialType',
|
|
|
|
|
+ String(scope.row.informationType)
|
|
|
|
|
+ ) || scope.row.informationType
|
|
|
|
|
+ }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ <span v-else>-</span>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
- prop="required"
|
|
|
|
|
|
|
+ prop="isRequired"
|
|
|
label="是否必填"
|
|
label="是否必填"
|
|
|
width="110"
|
|
width="110"
|
|
|
align="center"
|
|
align="center"
|
|
|
- ></el-table-column>
|
|
|
|
|
|
|
+ >
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <span v-if="!scope.row.isCategoryHeader">
|
|
|
|
|
+ {{ scope.row.isRequired === '1' ? '是' : '否' }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
- prop="uploadStatus"
|
|
|
|
|
|
|
+ prop="isUploaded"
|
|
|
label="是否上传"
|
|
label="是否上传"
|
|
|
width="110"
|
|
width="110"
|
|
|
align="center"
|
|
align="center"
|
|
|
- ></el-table-column>
|
|
|
|
|
|
|
+ >
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <span v-if="!scope.row.isCategoryHeader">
|
|
|
|
|
+ <span v-if="scope.row.isUploaded === '1'">已上传</span>
|
|
|
|
|
+ <span v-else class="text-danger">未上传</span>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
prop="operation"
|
|
prop="operation"
|
|
|
label="操作"
|
|
label="操作"
|
|
|
width="220"
|
|
width="220"
|
|
|
align="center"
|
|
align="center"
|
|
|
- ></el-table-column>
|
|
|
|
|
|
|
+ >
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <template v-if="!scope.row.isCategoryHeader">
|
|
|
|
|
+ <template v-if="scope.row.isUploaded === '1'">
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ type="text"
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ @click="handleFileView(scope.row)"
|
|
|
|
|
+ >
|
|
|
|
|
+ 查看
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ type="text"
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ @click="handleFileDownload(scope.row)"
|
|
|
|
|
+ >
|
|
|
|
|
+ 下载
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ type="text"
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ @click="handleFileUpload(scope.row)"
|
|
|
|
|
+ >
|
|
|
|
|
+ 上传
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template v-else>
|
|
|
|
|
+ <template
|
|
|
|
|
+ v-if="
|
|
|
|
|
+ getDictName(
|
|
|
|
|
+ 'materialType',
|
|
|
|
|
+ String(scope.row.informationType)
|
|
|
|
|
+ ) === '预置模版' ||
|
|
|
|
|
+ scope.row.informationType === '预置模版'
|
|
|
|
|
+ "
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ type="text"
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ @click="handleTemplateDownload(scope.row)"
|
|
|
|
|
+ >
|
|
|
|
|
+ 模版下载
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ type="text"
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ @click="handleDataUpload(scope.row)"
|
|
|
|
|
+ >
|
|
|
|
|
+ 数据上传
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template v-else>
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ type="text"
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ @click="handleFileUpload(scope.row)"
|
|
|
|
|
+ >
|
|
|
|
|
+ 上传
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ </el-table>
|
|
|
|
|
|
|
|
- <template slot="default">
|
|
|
|
|
|
|
+ <!-- <template slot="default">
|
|
|
<template
|
|
<template
|
|
|
v-if="
|
|
v-if="
|
|
|
formData.dataRequirements.categories &&
|
|
formData.dataRequirements.categories &&
|
|
@@ -488,8 +597,7 @@
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
</template>
|
|
</template>
|
|
|
- </template>
|
|
|
|
|
- </el-table>
|
|
|
|
|
|
|
+ </template> -->
|
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
<!-- 成本调查表 -->
|
|
<!-- 成本调查表 -->
|
|
|
<el-tab-pane label="成本调查表" name="costSurvey">
|
|
<el-tab-pane label="成本调查表" name="costSurvey">
|
|
@@ -746,28 +854,28 @@
|
|
|
:rules="materialRules"
|
|
:rules="materialRules"
|
|
|
label-width="100px"
|
|
label-width="100px"
|
|
|
>
|
|
>
|
|
|
- <el-form-item label="资料类别" prop="category">
|
|
|
|
|
|
|
+ <el-form-item label="资料类别" prop="informationType">
|
|
|
<el-select
|
|
<el-select
|
|
|
- v-model="materialForm.category"
|
|
|
|
|
|
|
+ v-model="materialForm.informationType"
|
|
|
placeholder="请选择资料类别"
|
|
placeholder="请选择资料类别"
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
>
|
|
>
|
|
|
<el-option
|
|
<el-option
|
|
|
- v-for="item in materialCategoryOptions"
|
|
|
|
|
- :key="item.value"
|
|
|
|
|
- :label="item.label"
|
|
|
|
|
- :value="item.value"
|
|
|
|
|
|
|
+ v-for="item in dictData['materialType']"
|
|
|
|
|
+ :key="item.key"
|
|
|
|
|
+ :label="item.name"
|
|
|
|
|
+ :value="item.key"
|
|
|
></el-option>
|
|
></el-option>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="资料名称" prop="name">
|
|
|
|
|
|
|
+ <el-form-item label="资料名称" prop="informationName">
|
|
|
<el-input
|
|
<el-input
|
|
|
- v-model="materialForm.name"
|
|
|
|
|
|
|
+ v-model="materialForm.informationName"
|
|
|
placeholder="请输入资料名称"
|
|
placeholder="请输入资料名称"
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
></el-input>
|
|
></el-input>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="资料要求" prop="requirement">
|
|
|
|
|
|
|
+ <el-form-item label="资料要求" prop="informationRequire">
|
|
|
<el-upload
|
|
<el-upload
|
|
|
class="upload-demo"
|
|
class="upload-demo"
|
|
|
action="#"
|
|
action="#"
|
|
@@ -781,7 +889,7 @@
|
|
|
>
|
|
>
|
|
|
<el-button size="small" type="primary">选择文件</el-button>
|
|
<el-button size="small" type="primary">选择文件</el-button>
|
|
|
<div slot="tip" class="el-upload__tip">
|
|
<div slot="tip" class="el-upload__tip">
|
|
|
- 只能上传jpg/png/pdf文件,且不超过10MB,最多上传5个文件
|
|
|
|
|
|
|
+ 最多上传5个文件,支持所有格式
|
|
|
</div>
|
|
</div>
|
|
|
</el-upload>
|
|
</el-upload>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -809,6 +917,8 @@
|
|
|
import {
|
|
import {
|
|
|
getProjectInformationInfo,
|
|
getProjectInformationInfo,
|
|
|
getTaskRequirementList,
|
|
getTaskRequirementList,
|
|
|
|
|
+ addOrUpdateTaskRequirement,
|
|
|
|
|
+ submitTaskRequirement,
|
|
|
} from '@/api/auditTaskProcessing'
|
|
} from '@/api/auditTaskProcessing'
|
|
|
import RegionSelector from '@/views/costAudit/projectInfo/auditProjectManage/annualReviewPlan/RegionSelector.vue'
|
|
import RegionSelector from '@/views/costAudit/projectInfo/auditProjectManage/annualReviewPlan/RegionSelector.vue'
|
|
|
import CatalogCascader from '@/views/costAudit/projectInfo/auditProjectManage/annualReviewPlan/CatalogCascader.vue'
|
|
import CatalogCascader from '@/views/costAudit/projectInfo/auditProjectManage/annualReviewPlan/CatalogCascader.vue'
|
|
@@ -836,6 +946,8 @@
|
|
|
attributionYear: [], // 归属年度
|
|
attributionYear: [], // 归属年度
|
|
|
projectProposal: [], // 立项来源
|
|
projectProposal: [], // 立项来源
|
|
|
auditType: [], //监审形式
|
|
auditType: [], //监审形式
|
|
|
|
|
+ materialType: [], // 资料类型
|
|
|
|
|
+ materialCategory: [], // 资料类别
|
|
|
},
|
|
},
|
|
|
// 立项依据文件列表
|
|
// 立项依据文件列表
|
|
|
accordingFileList: [],
|
|
accordingFileList: [],
|
|
@@ -843,6 +955,7 @@
|
|
|
otherFileList: [],
|
|
otherFileList: [],
|
|
|
// 页面标题
|
|
// 页面标题
|
|
|
pageTitle: '立项信息',
|
|
pageTitle: '立项信息',
|
|
|
|
|
+ projectId: '', // 项目ID
|
|
|
taskId: '', // 任务ID
|
|
taskId: '', // 任务ID
|
|
|
// 当前激活的标签页
|
|
// 当前激活的标签页
|
|
|
activeTab: 'projectInfo',
|
|
activeTab: 'projectInfo',
|
|
@@ -898,84 +1011,7 @@
|
|
|
zip: 200333,
|
|
zip: 200333,
|
|
|
},
|
|
},
|
|
|
],
|
|
],
|
|
|
- dataRequirements: {
|
|
|
|
|
- categories: [
|
|
|
|
|
- {
|
|
|
|
|
- categoryId: 'comprehensive',
|
|
|
|
|
- name: '综合性资料',
|
|
|
|
|
- items: [
|
|
|
|
|
- {
|
|
|
|
|
- seq: 1,
|
|
|
|
|
- name: '企业基本情况介绍: 包括企业名称、企业地址、企业员工数量等。',
|
|
|
|
|
- type: '文档文件',
|
|
|
|
|
- required: '是',
|
|
|
|
|
- uploaded: true,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- seq: 2,
|
|
|
|
|
- name: '组织机构图: 企业组织架构及……',
|
|
|
|
|
- type: '文档文件',
|
|
|
|
|
- required: '是',
|
|
|
|
|
- uploaded: false,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- seq: 3,
|
|
|
|
|
- name: '营业执照:',
|
|
|
|
|
- type: '文档文件',
|
|
|
|
|
- required: '是',
|
|
|
|
|
- uploaded: true,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- seq: 4,
|
|
|
|
|
- name: '企业管理制度:',
|
|
|
|
|
- type: '文档文件',
|
|
|
|
|
- required: '是',
|
|
|
|
|
- uploaded: false,
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- categoryId: 'financial',
|
|
|
|
|
- name: '财务会计资料',
|
|
|
|
|
- items: [
|
|
|
|
|
- {
|
|
|
|
|
- seq: 1,
|
|
|
|
|
- name: '财务审计表',
|
|
|
|
|
- type: 'excel文件',
|
|
|
|
|
- required: '是',
|
|
|
|
|
- uploaded: true,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- seq: 2,
|
|
|
|
|
- name: '资产卡片',
|
|
|
|
|
- type: '预置模版',
|
|
|
|
|
- required: '是',
|
|
|
|
|
- uploaded: true,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- seq: 3,
|
|
|
|
|
- name: '',
|
|
|
|
|
- type: '预置模版',
|
|
|
|
|
- required: '是',
|
|
|
|
|
- uploaded: false,
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- categoryId: 'other',
|
|
|
|
|
- name: '其他资料',
|
|
|
|
|
- items: [
|
|
|
|
|
- {
|
|
|
|
|
- seq: 1,
|
|
|
|
|
- name: '',
|
|
|
|
|
- type: '文档文件',
|
|
|
|
|
- required: '否',
|
|
|
|
|
- uploaded: false,
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- },
|
|
|
|
|
|
|
+ dataRequirements: [],
|
|
|
costSurveyData: [
|
|
costSurveyData: [
|
|
|
{
|
|
{
|
|
|
index: 1,
|
|
index: 1,
|
|
@@ -1140,15 +1176,16 @@
|
|
|
// 补充材料弹窗相关数据
|
|
// 补充材料弹窗相关数据
|
|
|
materialDialogVisible: false,
|
|
materialDialogVisible: false,
|
|
|
materialForm: {
|
|
materialForm: {
|
|
|
- category: '',
|
|
|
|
|
- name: '',
|
|
|
|
|
|
|
+ informationType: '',
|
|
|
|
|
+ informationName: '',
|
|
|
|
|
+ informationRequire: '',
|
|
|
fileList: [],
|
|
fileList: [],
|
|
|
},
|
|
},
|
|
|
materialRules: {
|
|
materialRules: {
|
|
|
- category: [
|
|
|
|
|
|
|
+ informationType: [
|
|
|
{ required: true, message: '请选择资料类别', trigger: 'change' },
|
|
{ required: true, message: '请选择资料类别', trigger: 'change' },
|
|
|
],
|
|
],
|
|
|
- name: [
|
|
|
|
|
|
|
+ informationName: [
|
|
|
{ required: true, message: '请输入资料名称', trigger: 'blur' },
|
|
{ required: true, message: '请输入资料名称', trigger: 'blur' },
|
|
|
],
|
|
],
|
|
|
},
|
|
},
|
|
@@ -1166,13 +1203,91 @@
|
|
|
currentSurveyData: null,
|
|
currentSurveyData: null,
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
+ computed: {
|
|
|
|
|
+ // 按类别分组的报送资料列表
|
|
|
|
|
+ groupedDataRequirements() {
|
|
|
|
|
+ if (
|
|
|
|
|
+ !this.formData.dataRequirements ||
|
|
|
|
|
+ !Array.isArray(this.formData.dataRequirements) ||
|
|
|
|
|
+ this.formData.dataRequirements.length === 0
|
|
|
|
|
+ ) {
|
|
|
|
|
+ return []
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 按类别分组
|
|
|
|
|
+ const groups = {}
|
|
|
|
|
+ this.formData.dataRequirements.forEach((item, index) => {
|
|
|
|
|
+ // 获取类别标识,使用 informationType 作为类别 key
|
|
|
|
|
+ const categoryKey =
|
|
|
|
|
+ item.informationType ||
|
|
|
|
|
+ item.category ||
|
|
|
|
|
+ item.categoryId ||
|
|
|
|
|
+ item.categoryName ||
|
|
|
|
|
+ 'other'
|
|
|
|
|
+ // 优先从字典中获取类别名称
|
|
|
|
|
+ let categoryName = ''
|
|
|
|
|
+ if (categoryKey) {
|
|
|
|
|
+ // 优先使用 getDictNameByValue 根据 value 查找
|
|
|
|
|
+ categoryName = this.getDictNameByValue(
|
|
|
|
|
+ 'materialCategory',
|
|
|
|
|
+ categoryKey
|
|
|
|
|
+ )
|
|
|
|
|
+ // 如果 getDictNameByValue 没找到,尝试使用 getDictName 根据 key 查找
|
|
|
|
|
+ if (!categoryName || categoryName === String(categoryKey)) {
|
|
|
|
|
+ categoryName = this.getDictName('materialCategory', categoryKey)
|
|
|
|
|
+ }
|
|
|
|
|
+ // 如果字典中都找不到,使用 item.categoryName 作为后备
|
|
|
|
|
+ if (!categoryName || categoryName === String(categoryKey)) {
|
|
|
|
|
+ categoryName = item.informationTypeName || categoryKey
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (!groups[categoryKey]) {
|
|
|
|
|
+ groups[categoryKey] = {
|
|
|
|
|
+ categoryKey,
|
|
|
|
|
+ categoryName: categoryName || String(categoryKey),
|
|
|
|
|
+ items: [],
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 添加序号(每个类别内从1开始)
|
|
|
|
|
+ const itemWithSeq = {
|
|
|
|
|
+ ...item,
|
|
|
|
|
+ index: index + 1,
|
|
|
|
|
+ seq: groups[categoryKey].items.length + 1,
|
|
|
|
|
+ }
|
|
|
|
|
+ groups[categoryKey].items.push(itemWithSeq)
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ // 将分组转换为扁平数组,插入类别标题行
|
|
|
|
|
+ const result = []
|
|
|
|
|
+ Object.keys(groups).forEach((categoryKey) => {
|
|
|
|
|
+ const group = groups[categoryKey]
|
|
|
|
|
+ // 添加类别标题行
|
|
|
|
|
+ result.push({
|
|
|
|
|
+ isCategoryHeader: true,
|
|
|
|
|
+ categoryName: group.categoryName,
|
|
|
|
|
+ categoryKey: group.categoryKey,
|
|
|
|
|
+ })
|
|
|
|
|
+ // 添加该类别下的所有项目
|
|
|
|
|
+ group.items.forEach((item) => {
|
|
|
|
|
+ result.push({
|
|
|
|
|
+ ...item,
|
|
|
|
|
+ isCategoryHeader: false,
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ return result
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
mounted() {
|
|
mounted() {
|
|
|
this.getAllUnitList()
|
|
this.getAllUnitList()
|
|
|
this.getDefaultDem()
|
|
this.getDefaultDem()
|
|
|
this.getUser()
|
|
this.getUser()
|
|
|
// 从路由参数中获取 formType
|
|
// 从路由参数中获取 formType
|
|
|
console.log('路由参数', this.$route.query)
|
|
console.log('路由参数', this.$route.query)
|
|
|
- this.taskId = this.$route.query.info.projectId
|
|
|
|
|
|
|
+ this.projectId = this.$route.query.info.projectId
|
|
|
|
|
+ this.taskId = this.$route.query.info.userTask.id
|
|
|
this.tabCheck = this.$route.query.info.status
|
|
this.tabCheck = this.$route.query.info.status
|
|
|
if (this.tabCheck === 'jtsy') {
|
|
if (this.tabCheck === 'jtsy') {
|
|
|
this.tabVisiable = false
|
|
this.tabVisiable = false
|
|
@@ -1270,6 +1385,13 @@
|
|
|
// this.formData.catalogId = value.join(',')
|
|
// this.formData.catalogId = value.join(',')
|
|
|
this.formData.basicInfo.catalogId = value
|
|
this.formData.basicInfo.catalogId = value
|
|
|
},
|
|
},
|
|
|
|
|
+ // 表格行样式
|
|
|
|
|
+ getRowClassName({ row }) {
|
|
|
|
|
+ if (row.isCategoryHeader) {
|
|
|
|
|
+ return 'category-header-row'
|
|
|
|
|
+ }
|
|
|
|
|
+ return ''
|
|
|
|
|
+ },
|
|
|
// 标签页切换
|
|
// 标签页切换
|
|
|
handleTabClick(tab) {
|
|
handleTabClick(tab) {
|
|
|
console.log(tab, 'qiehuan')
|
|
console.log(tab, 'qiehuan')
|
|
@@ -1284,16 +1406,29 @@
|
|
|
},
|
|
},
|
|
|
// 获取立项项目信息
|
|
// 获取立项项目信息
|
|
|
getProjectInformation() {
|
|
getProjectInformation() {
|
|
|
- getProjectInformationInfo(this.taskId).then((res) => {
|
|
|
|
|
|
|
+ getProjectInformationInfo(this.projectId).then((res) => {
|
|
|
console.log('立项项目信息', res)
|
|
console.log('立项项目信息', res)
|
|
|
this.formData.basicInfo = res.value
|
|
this.formData.basicInfo = res.value
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
// 获取报送资料要求列表
|
|
// 获取报送资料要求列表
|
|
|
- getTaskRequirementPage(taskId) {
|
|
|
|
|
- getTaskRequirementList(taskId).then((res) => {
|
|
|
|
|
- console.log('报送资料要求', res)
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ getTaskRequirementPage() {
|
|
|
|
|
+ console.log('送报资料接口', this.taskId)
|
|
|
|
|
+ getTaskRequirementList(this.taskId)
|
|
|
|
|
+ .then((res) => {
|
|
|
|
|
+ console.log('报送资料要求', res)
|
|
|
|
|
+ if (res && res.code === 200 && res.value) {
|
|
|
|
|
+ this.formData.dataRequirements = Array.isArray(res.value)
|
|
|
|
|
+ ? res.value
|
|
|
|
|
+ : []
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.formData.dataRequirements = []
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch((err) => {
|
|
|
|
|
+ console.error('获取报送资料失败', err)
|
|
|
|
|
+ this.formData.dataRequirements = []
|
|
|
|
|
+ })
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
// 提交
|
|
// 提交
|
|
@@ -1301,8 +1436,20 @@
|
|
|
this.loading.submit = true
|
|
this.loading.submit = true
|
|
|
// 保存逻辑
|
|
// 保存逻辑
|
|
|
setTimeout(() => {
|
|
setTimeout(() => {
|
|
|
- this.loading.submit = false
|
|
|
|
|
- Message.success('提交成功')
|
|
|
|
|
|
|
+ submitTaskRequirement({ taskId: this.taskId })
|
|
|
|
|
+ .then((res) => {
|
|
|
|
|
+ this.loading.submit = false
|
|
|
|
|
+ console.log('提交成功', res)
|
|
|
|
|
+ if (res && res.code === 200) {
|
|
|
|
|
+ Message.success('提交成功')
|
|
|
|
|
+ } else {
|
|
|
|
|
+ Message.error('提交失败')
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch((err) => {
|
|
|
|
|
+ console.error('提交失败', err)
|
|
|
|
|
+ Message.error('提交失败')
|
|
|
|
|
+ })
|
|
|
}, 500)
|
|
}, 500)
|
|
|
},
|
|
},
|
|
|
|
|
|
|
@@ -1413,8 +1560,9 @@
|
|
|
// 重置补充材料表单
|
|
// 重置补充材料表单
|
|
|
resetMaterialForm() {
|
|
resetMaterialForm() {
|
|
|
this.materialForm = {
|
|
this.materialForm = {
|
|
|
- category: '',
|
|
|
|
|
- name: '',
|
|
|
|
|
|
|
+ informationType: '',
|
|
|
|
|
+ informationName: '',
|
|
|
|
|
+ informationRequire: '',
|
|
|
fileList: [],
|
|
fileList: [],
|
|
|
}
|
|
}
|
|
|
if (this.$refs.materialForm) {
|
|
if (this.$refs.materialForm) {
|
|
@@ -1455,18 +1603,7 @@
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
beforeMaterialUpload(file) {
|
|
beforeMaterialUpload(file) {
|
|
|
- const isJPG = file.type === 'image/jpeg' || file.type === 'image/png'
|
|
|
|
|
- const isPDF = file.type === 'application/pdf'
|
|
|
|
|
- const isLt10M = file.size / 1024 / 1024 < 10
|
|
|
|
|
-
|
|
|
|
|
- if (!isJPG && !isPDF) {
|
|
|
|
|
- Message.error('只能上传 JPG/PNG/PDF 格式的文件!')
|
|
|
|
|
- return false
|
|
|
|
|
- }
|
|
|
|
|
- if (!isLt10M) {
|
|
|
|
|
- Message.error('上传文件大小不能超过 10MB!')
|
|
|
|
|
- return false
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // 允许所有格式的文件上传,不进行格式限制
|
|
|
return true
|
|
return true
|
|
|
},
|
|
},
|
|
|
|
|
|
|
@@ -1569,4 +1706,23 @@
|
|
|
.ml10 {
|
|
.ml10 {
|
|
|
margin-left: 10px;
|
|
margin-left: 10px;
|
|
|
}
|
|
}
|
|
|
|
|
+ .text-danger {
|
|
|
|
|
+ color: #d9001b;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 类别头行样式
|
|
|
|
|
+ ::v-deep .category-header-row {
|
|
|
|
|
+ background-color: #f5f7fa !important;
|
|
|
|
|
+
|
|
|
|
|
+ td {
|
|
|
|
|
+ background-color: #f5f7fa !important;
|
|
|
|
|
+ padding: 12px 16px !important;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .category-header-cell {
|
|
|
|
|
+ font-weight: 700;
|
|
|
|
|
+ color: #303133;
|
|
|
|
|
+ padding-left: 16px;
|
|
|
|
|
+ }
|
|
|
</style>
|
|
</style>
|