|
@@ -1,143 +1,53 @@
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
- <el-form
|
|
|
- :model="queryParams"
|
|
|
- ref="queryForm"
|
|
|
- size="small"
|
|
|
- :inline="true"
|
|
|
- v-show="showSearch"
|
|
|
- label-width="100px"
|
|
|
- >
|
|
|
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
|
|
|
<el-form-item label="数据类型" prop="type">
|
|
|
- <el-select
|
|
|
- v-model="queryParams.type"
|
|
|
- placeholder="请选择数据类型"
|
|
|
- clearable
|
|
|
- filterable
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="dict in typeList"
|
|
|
- :key="dict.value + 'typeList'"
|
|
|
- :label="dict.label"
|
|
|
- :value="dict.value"
|
|
|
- />
|
|
|
+ <el-select v-model="queryParams.type" placeholder="请选择数据类型" clearable filterable class="se">
|
|
|
+ <el-option v-for="dict in typeList" :key="dict.value + 'typeList'" :label="dict.label" :value="dict.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="采集状态" prop="collStatus">
|
|
|
- <el-select
|
|
|
- v-model="queryParams.collStatus"
|
|
|
- placeholder="请选择采集状态"
|
|
|
- clearable
|
|
|
- filterable
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="dict in collStatus"
|
|
|
- :key="dict.value + 'collStatus'"
|
|
|
- :label="dict.label"
|
|
|
- :value="dict.value"
|
|
|
- />
|
|
|
+ <el-select v-model="queryParams.collStatus" placeholder="请选择采集状态" clearable filterable class="se">
|
|
|
+ <el-option v-for="dict in collStatus" :key="dict.value + 'collStatus'" :label="dict.label" :value="dict.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="上报状态" prop="reportStatus">
|
|
|
- <el-select
|
|
|
- v-model="queryParams.reportStatus"
|
|
|
- placeholder="请选择上报状态"
|
|
|
- clearable
|
|
|
- filterable
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="dict in reportStatus"
|
|
|
- :key="dict.value + 'reportStatus'"
|
|
|
- :label="dict.label"
|
|
|
- :value="dict.value"
|
|
|
- />
|
|
|
+ <el-select v-model="queryParams.reportStatus" placeholder="请选择上报状态" clearable filterable class="se">
|
|
|
+ <el-option v-for="dict in reportStatus" :key="dict.value + 'reportStatus'" :label="dict.label" :value="dict.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="审核状态" prop="approveStatus">
|
|
|
- <el-select
|
|
|
- v-model="queryParams.approveStatus"
|
|
|
- placeholder="请选择审核状态"
|
|
|
- clearable
|
|
|
- filterable
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="dict in approveStatus"
|
|
|
- :key="dict.value + 'approveStatus'"
|
|
|
- :label="dict.label"
|
|
|
- :value="dict.value"
|
|
|
- />
|
|
|
+ <el-select v-model="queryParams.approveStatus" placeholder="请选择审核状态" clearable filterable class="se">
|
|
|
+ <el-option v-for="dict in approveStatus" :key="dict.value + 'approveStatus'" :label="dict.label" :value="dict.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="年度" prop="acname">
|
|
|
- <el-input v-model="queryParams.year" placeholder="请输入年度"></el-input>
|
|
|
+ <el-form-item label="年度" prop="year">
|
|
|
+ <el-date-picker v-model="queryParams.year" type="year" format="yyyy" value-format="yyyy" placeholder="选择年度" class="se"></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="月份" prop="month">
|
|
|
+ <el-date-picker v-model="queryParams.month" type="month" format="MM" value-format="MM" placeholder="选择月份" class="se"></el-date-picker>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="月份" prop="acname">
|
|
|
- <el-input v-model="queryParams.month" placeholder="请输入月份"></el-input>
|
|
|
- </el-form-item>
|
|
|
<el-form-item>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- icon="el-icon-search"
|
|
|
- size="mini"
|
|
|
- @click="handleQuery"
|
|
|
- >搜索</el-button
|
|
|
- >
|
|
|
- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
|
|
- >重置</el-button
|
|
|
- >
|
|
|
+ <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
|
|
|
+ <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
|
|
|
<el-row :gutter="10" class="mb8">
|
|
|
<el-col :span="1.5">
|
|
|
- <el-button type="success" plain size="mini" @click="openUpload = true"
|
|
|
- >导入</el-button
|
|
|
- >
|
|
|
-
|
|
|
- <!-- <el-upload
|
|
|
- :show-file-list="false"
|
|
|
- :http-request="httprequest"
|
|
|
- :before-upload="uploadFile"
|
|
|
- class="upload-demo"
|
|
|
- action="#"
|
|
|
- :auto-upload="true"
|
|
|
- :on-change="handleChange"
|
|
|
- :file-list="fileList"
|
|
|
- >
|
|
|
- <el-button type="success" plain size="mini">导入</el-button>
|
|
|
- </el-upload> -->
|
|
|
+ <el-button type="success" @click="openUpload = true">导入</el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
|
- <el-button
|
|
|
- plain
|
|
|
- size="mini"
|
|
|
- @click="handleDownload()"
|
|
|
- :disabled="radio === '' ? true : false"
|
|
|
- >下载导入模板</el-button
|
|
|
- >
|
|
|
+ <el-button @click="handleDownload()" :title="radio === '' ? '请先选择下面对应的单位模板' : ''" :disabled="radio === '' ? true : false">下载导入模板</el-button>
|
|
|
</el-col>
|
|
|
- <right-toolbar
|
|
|
- :showSearch.sync="showSearch"
|
|
|
- @queryTable="getList"
|
|
|
- ></right-toolbar>
|
|
|
+ <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
|
|
</el-row>
|
|
|
|
|
|
- <el-table
|
|
|
-
|
|
|
- :data="GATHERList"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
- @row-click="showRow"
|
|
|
- >
|
|
|
+ <el-table :data="GATHERList" @selection-change="handleSelectionChange" @row-click="showRow">
|
|
|
<!-- @current-change="handleCurrentChange" -->
|
|
|
<el-table-column label="选择" fixed="left" width="70" center>
|
|
|
<template scope="scope">
|
|
|
- <el-radio
|
|
|
- class="radio"
|
|
|
- v-model="radio"
|
|
|
- :label="scope.$index"
|
|
|
- @change.native="getCurrentRow(scope.row)"
|
|
|
- >{{ "" }}</el-radio
|
|
|
- >
|
|
|
+ <el-radio class="radio" v-model="radio" :label="scope.$index" @change.native="getCurrentRow(scope.row)">{{ '' }}</el-radio>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<!-- <el-table-column type="selection" width="55" align="center" /> -->
|
|
@@ -156,7 +66,7 @@
|
|
|
<template slot-scope="scope">
|
|
|
{{ scope.row.year }}
|
|
|
</template>
|
|
|
- </el-table-column>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="月份" align="center" prop="month">
|
|
|
<template slot-scope="scope">
|
|
|
{{ scope.row.month }}
|
|
@@ -174,7 +84,7 @@
|
|
|
<span v-if="scope.row.reportStatus == 1">已上报</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="上报人" align="center" prop="reportName" width="110"/>
|
|
|
+ <el-table-column label="上报人" align="center" prop="reportName" width="110" />
|
|
|
<el-table-column label="上报时间" align="center" prop="createTime" width="100" />
|
|
|
|
|
|
<el-table-column label="审核状态" align="center" prop="approveStatus">
|
|
@@ -185,11 +95,7 @@
|
|
|
<span v-if="scope.row.approveStatus == 3">审核拒绝</span>
|
|
|
</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 slot-scope="scope">
|
|
|
<!-- <el-button
|
|
|
style="margin: 0 2px"
|
|
@@ -198,182 +104,60 @@
|
|
|
@click="handleDownload(scope.row)"
|
|
|
>下载导入模板</el-button
|
|
|
> -->
|
|
|
- <el-button
|
|
|
- style="margin: 0 2px"
|
|
|
- v-if="scope.row.collStatus == 0"
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- @click="handleUpdate(scope.row)"
|
|
|
- >录入</el-button
|
|
|
- >
|
|
|
+ <el-button style="margin: 0 2px" v-if="scope.row.collStatus == 0" size="mini" type="text" @click="handleUpdate(scope.row)">录入</el-button>
|
|
|
<template v-if="scope.row.reportStatus == 0 && scope.row.collStatus == 1">
|
|
|
- <el-popconfirm
|
|
|
- title="确定上报吗?"
|
|
|
- @confirm="handleReport(scope.row)"
|
|
|
- >
|
|
|
- <el-button
|
|
|
- style="margin: 0 2px"
|
|
|
-
|
|
|
- size="mini"
|
|
|
- slot="reference"
|
|
|
- type="text"
|
|
|
- >上报</el-button
|
|
|
- >
|
|
|
+ <el-popconfirm title="确定上报吗?" @confirm="handleReport(scope.row)">
|
|
|
+ <el-button style="margin: 0 2px" size="mini" slot="reference" type="text">上报</el-button>
|
|
|
+ </el-popconfirm>
|
|
|
+ </template>
|
|
|
+ <el-popconfirm title="确定提交吗?" @confirm="handleApprove(scope.row)">
|
|
|
+ <el-button style="margin: 0 2px" v-if="scope.row.approveStatus == 0 && scope.row.collStatus == 1" size="mini" type="text" slot="reference">提交审核</el-button>
|
|
|
</el-popconfirm>
|
|
|
- </template>
|
|
|
- <el-popconfirm
|
|
|
- title="确定提交吗?"
|
|
|
- @confirm="handleApprove(scope.row)"
|
|
|
- >
|
|
|
- <el-button
|
|
|
- style="margin: 0 2px"
|
|
|
- v-if="scope.row.approveStatus == 0 && scope.row.collStatus == 1"
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- slot="reference"
|
|
|
- >提交审核</el-button
|
|
|
- >
|
|
|
- </el-popconfirm>
|
|
|
- <el-button
|
|
|
- style="margin: 0 2px"
|
|
|
- v-if="scope.row.collStatus == 1"
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- @click="handleDetail(scope.row, 0)"
|
|
|
- >查看</el-button
|
|
|
- >
|
|
|
+ <el-button style="margin: 0 2px" v-if="scope.row.collStatus == 1" size="mini" type="text" @click="handleDetail(scope.row, 0)">查看</el-button>
|
|
|
|
|
|
- <el-button
|
|
|
- style="margin: 0 2px"
|
|
|
- v-if="
|
|
|
- scope.row.collStatus == 1 &&
|
|
|
- scope.row.reportStatus == 0 &&
|
|
|
- scope.row.approveStatus == 0
|
|
|
- "
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- @click="handleDetail(scope.row, 1)"
|
|
|
- >修改</el-button
|
|
|
- >
|
|
|
+ <el-button style="margin: 0 2px" v-if="scope.row.collStatus == 1 && scope.row.reportStatus == 0 && scope.row.approveStatus == 0" size="mini" type="text" @click="handleDetail(scope.row, 1)">修改</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
|
|
|
- <pagination
|
|
|
- v-show="total > 0"
|
|
|
- :total="total"
|
|
|
- :page.sync="queryParams.pageNum"
|
|
|
- :limit.sync="queryParams.pageSize"
|
|
|
- @pagination="getList"
|
|
|
- />
|
|
|
+ <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
|
|
|
|
|
|
<!-- 上传文件对话框 -->
|
|
|
- <el-dialog
|
|
|
- center
|
|
|
- title="导入"
|
|
|
- :visible.sync="openUpload"
|
|
|
- width="50%"
|
|
|
- append-to-body
|
|
|
- >
|
|
|
- <el-form
|
|
|
- ref="uploadForm"
|
|
|
- :model="uploadForm"
|
|
|
- :rules="rules"
|
|
|
- label-width="120px"
|
|
|
- >
|
|
|
+ <el-dialog center title="导入" :visible.sync="openUpload" width="50%" append-to-body>
|
|
|
+ <el-form ref="uploadForm" :model="uploadForm" :rules="rules" label-width="120px">
|
|
|
<el-form-item label="数据类型" prop="type">
|
|
|
- <el-select
|
|
|
- v-model="uploadForm.type"
|
|
|
- placeholder="请选择数据类型"
|
|
|
- clearable
|
|
|
- filterable
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="dict in typeList"
|
|
|
- :key="dict.value + 'typeList'"
|
|
|
- :label="dict.label"
|
|
|
- :value="dict.value"
|
|
|
- />
|
|
|
+ <el-select v-model="uploadForm.type" placeholder="请选择数据类型" clearable filterable>
|
|
|
+ <el-option v-for="dict in typeList" :key="dict.value + 'typeList'" :label="dict.label" :value="dict.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
-
|
|
|
<el-form-item label="文件" prop="linkUrl" v-show="uploadForm.type">
|
|
|
- <el-upload
|
|
|
- class="upload-demo"
|
|
|
- ref="upload"
|
|
|
- action="#"
|
|
|
- :http-request="httprequest"
|
|
|
- :before-upload="uploadFile"
|
|
|
- :file-list="fileList"
|
|
|
- :auto-upload="false"
|
|
|
- :limit="1"
|
|
|
- >
|
|
|
- <el-button slot="trigger" size="small" type="primary"
|
|
|
- >选取文件</el-button
|
|
|
- >
|
|
|
+ <el-upload class="upload-demo" ref="upload" action="#" :http-request="httprequest" :before-upload="uploadFile" :file-list="fileList" :auto-upload="false" :limit="1">
|
|
|
+ <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
|
|
|
</el-upload>
|
|
|
- <!-- <el-upload
|
|
|
- :http-request="httprequest"
|
|
|
- :before-upload="uploadFile"
|
|
|
- :limit="1"
|
|
|
- class="upload-demo"
|
|
|
- action="#"
|
|
|
- :auto-upload="true"
|
|
|
- :on-change="handleChange"
|
|
|
- :file-list="fileList"
|
|
|
- >
|
|
|
- <el-button size="small" type="primary">点击上传</el-button>
|
|
|
- </el-upload> -->
|
|
|
</el-form-item>
|
|
|
+ <div class="tips-text">
|
|
|
+ <span class="tit">提示</span>
|
|
|
+ <p>1.请先下载对应单位名称模板;</p>
|
|
|
+ <p>2.上传前,请先检查数据的完整性;</p>
|
|
|
+ </div>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button type="primary" @click="submitUpload">导 入</el-button>
|
|
|
<el-button @click="cancel">取 消</el-button>
|
|
|
- <!-- <el-button @click="cancel">取 消</el-button> -->
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 录入数据采集对话框 -->
|
|
|
- <el-dialog
|
|
|
- center
|
|
|
- :title="title"
|
|
|
- :visible.sync="open"
|
|
|
- width="50%"
|
|
|
- append-to-body
|
|
|
- >
|
|
|
- <el-tabs
|
|
|
- v-if="this.form.type == 0"
|
|
|
- v-model="activeName"
|
|
|
- type="border-card"
|
|
|
- @tab-click="handleClick"
|
|
|
- >
|
|
|
- <el-tab-pane
|
|
|
- v-for="(item, index) in tabList"
|
|
|
- :key="index + 'tabs'"
|
|
|
- :label="item.normName"
|
|
|
- :name="item.normName"
|
|
|
- >
|
|
|
- <el-form
|
|
|
- v-for="(listItem, listIndex) in form.feeLists"
|
|
|
- :key=" index + listIndex + listItem.normId"
|
|
|
- :rules='validatorList(listItem.normfeeName)'
|
|
|
- :model="listItem"
|
|
|
- :ref="'form' + listIndex"
|
|
|
- >
|
|
|
+ <el-dialog center :title="title" :visible.sync="open" width="50%" append-to-body>
|
|
|
+ <el-tabs v-if="this.form.type == 0" v-model="activeName" type="border-card" @tab-click="handleClick">
|
|
|
+ <el-tab-pane v-for="(item, index) in tabList" :key="index + 'tabs'" :label="item.normName" :name="item.normName">
|
|
|
+ <el-form v-for="(listItem, listIndex) in form.feeLists" :key="index + listIndex + listItem.normId" :rules="validatorList(listItem.normfeeName)" :model="listItem" :ref="'form' + listIndex">
|
|
|
<!-- :rules="rules" ref="form" -->
|
|
|
- <el-form-item
|
|
|
- :key="listItem.normfeeId"
|
|
|
- :label="listItem.normfeeName"
|
|
|
- v-if="listItem.normId == item.normId"
|
|
|
- prop="collCalue"
|
|
|
- >
|
|
|
+ <el-form-item :key="listItem.normfeeId" :label="listItem.normfeeName" v-if="listItem.normId == item.normId" prop="collCalue">
|
|
|
<!-- 这里科研失败!想动态绑定校验规则的 -->
|
|
|
<!-- :prop="listItem.normfeeId" -->
|
|
|
<!-- :rules="rules.listItem.normfeeId" -->
|
|
|
- <el-input
|
|
|
- v-model="listItem.collCalue"
|
|
|
- :placeholder="'请输入' + listItem.normfeeName"
|
|
|
- ></el-input>
|
|
|
+ <el-input v-model="listItem.collCalue" :placeholder="'请输入' + listItem.normfeeName"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
|
|
@@ -392,30 +176,17 @@
|
|
|
</el-form> -->
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
- <template v-else-if="this.form.type == 1">
|
|
|
- <el-form
|
|
|
- v-for="(listItem, listIndex) in form.feeLists"
|
|
|
- :model="listItem"
|
|
|
- :ref="'form' + listIndex"
|
|
|
- :rules="rules"
|
|
|
- >
|
|
|
- <!-- :rules="rules" ref="form" -->
|
|
|
- <el-form-item
|
|
|
- :key="listItem.normfeeId"
|
|
|
- :label="listItem.normfeeName"
|
|
|
- prop="collCalue"
|
|
|
-
|
|
|
- >
|
|
|
- <!-- 这里科研失败!想动态绑定校验规则的 -->
|
|
|
- <!-- :prop="listItem.normfeeId" -->
|
|
|
- <!-- :rules="rules.listItem.normfeeId" -->
|
|
|
- <el-input
|
|
|
- v-model="listItem.collCalue"
|
|
|
- :placeholder="'请输入' + listItem.normfeeName"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </template>
|
|
|
+ <template v-else-if="this.form.type == 1">
|
|
|
+ <el-form v-for="(listItem, listIndex) in form.feeLists" :model="listItem" :ref="'form' + listIndex" :rules="rules">
|
|
|
+ <!-- :rules="rules" ref="form" -->
|
|
|
+ <el-form-item :key="listItem.normfeeId" :label="listItem.normfeeName" prop="collCalue">
|
|
|
+ <!-- 这里科研失败!想动态绑定校验规则的 -->
|
|
|
+ <!-- :prop="listItem.normfeeId" -->
|
|
|
+ <!-- :rules="rules.listItem.normfeeId" -->
|
|
|
+ <el-input v-model="listItem.collCalue" :placeholder="'请输入' + listItem.normfeeName"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </template>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button type="primary" @click="submitForm('add')">确 定</el-button>
|
|
|
<el-button @click="cancel">取 消</el-button>
|
|
@@ -424,46 +195,16 @@
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 查看或修改 -->
|
|
|
- <el-dialog
|
|
|
- center
|
|
|
- :title="title"
|
|
|
- :visible.sync="openDetail"
|
|
|
- width="50%"
|
|
|
- append-to-body
|
|
|
- >
|
|
|
- <el-tabs
|
|
|
- v-if="this.form.type == 0"
|
|
|
- v-model="activeName"
|
|
|
- type="border-card"
|
|
|
- @tab-click="handleClick"
|
|
|
- >
|
|
|
- <el-tab-pane
|
|
|
- v-for="(item, index) in tabList"
|
|
|
- :key="index + 'tabs'"
|
|
|
- :label="item.normName"
|
|
|
- :name="item.normName"
|
|
|
- >
|
|
|
- <el-form
|
|
|
- v-for="(listItem, listIndex) in form.feeLists"
|
|
|
- :model="listItem"
|
|
|
- :ref="'form' + listIndex"
|
|
|
- :rules="rules"
|
|
|
- >
|
|
|
+ <el-dialog center :title="title" :visible.sync="openDetail" width="50%" append-to-body>
|
|
|
+ <el-tabs v-if="this.form.type == 0" v-model="activeName" type="border-card" @tab-click="handleClick">
|
|
|
+ <el-tab-pane v-for="(item, index) in tabList" :key="index + 'tabs'" :label="item.normName" :name="item.normName">
|
|
|
+ <el-form v-for="(listItem, listIndex) in form.feeLists" :model="listItem" :ref="'form' + listIndex" :rules="rules">
|
|
|
<!-- :rules="rules" ref="form" -->
|
|
|
- <el-form-item
|
|
|
- prop="collCalue"
|
|
|
- :key="listItem.normfeeId"
|
|
|
- :label="listItem.normfeeName"
|
|
|
- v-if="listItem.normId == item.normId"
|
|
|
- >
|
|
|
+ <el-form-item prop="collCalue" :key="listItem.normfeeId" :label="listItem.normfeeName" v-if="listItem.normId == item.normId">
|
|
|
<!-- 这里科研失败!想动态绑定校验规则的 -->
|
|
|
<!-- :prop="listItem.normfeeId" -->
|
|
|
<!-- :rules="rules.listItem.normfeeId" -->
|
|
|
- <el-input
|
|
|
- :disabled="!edit"
|
|
|
- v-model="listItem.collCalue"
|
|
|
- :placeholder="'请输入' + listItem.normfeeName"
|
|
|
- ></el-input>
|
|
|
+ <el-input :disabled="!edit" v-model="listItem.collCalue" :placeholder="'请输入' + listItem.normfeeName"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
|
|
@@ -483,30 +224,17 @@
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
|
|
|
- <el-form
|
|
|
- :model="form"
|
|
|
- v-else-if="this.form.type == 1"
|
|
|
- >
|
|
|
+ <el-form :model="form" v-else-if="this.form.type == 1">
|
|
|
<!-- :rules="rules" ref="form" -->
|
|
|
- <el-form-item
|
|
|
- v-for="(listItem, listIndex) in form.feeLists"
|
|
|
- :key="listItem.normfeeId"
|
|
|
- :label="listItem.normfeeName"
|
|
|
- >
|
|
|
+ <el-form-item v-for="(listItem, listIndex) in form.feeLists" :key="listItem.normfeeId" :label="listItem.normfeeName">
|
|
|
<!-- 这里科研失败!想动态绑定校验规则的 -->
|
|
|
<!-- :prop="listItem.normfeeId" -->
|
|
|
<!-- :rules="rules.listItem.normfeeId" -->
|
|
|
- <el-input
|
|
|
- :disabled="!edit"
|
|
|
- v-model="listItem.collCalue"
|
|
|
- :placeholder="'请输入' + listItem.normfeeName"
|
|
|
- ></el-input>
|
|
|
+ <el-input :disabled="!edit" v-model="listItem.collCalue" :placeholder="'请输入' + listItem.normfeeName"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="submitForm('edit')" v-if="edit"
|
|
|
- >确 定</el-button
|
|
|
- >
|
|
|
+ <el-button type="primary" @click="submitForm('edit')" v-if="edit">确 定</el-button>
|
|
|
<el-button type="primary" @click="cancel">返 回</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
@@ -514,52 +242,40 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import {
|
|
|
- listGATHER,
|
|
|
- getGATHER,
|
|
|
- delGATHER,
|
|
|
- addGATHER,
|
|
|
- updateGATHER,
|
|
|
- getInfoByColl,
|
|
|
- approve,
|
|
|
- report,
|
|
|
- download,
|
|
|
- upload,
|
|
|
-} from "@/api/portal/GATHER/GATHER.js";
|
|
|
-import { saveAs } from "file-saver";
|
|
|
-import { getToken } from "@/utils/auth";
|
|
|
-import axios from "axios";
|
|
|
+import { listGATHER, getGATHER, delGATHER, addGATHER, updateGATHER, getInfoByColl, approve, report, download, upload } from '@/api/portal/GATHER/GATHER.js';
|
|
|
+import { saveAs } from 'file-saver';
|
|
|
+import { getToken } from '@/utils/auth';
|
|
|
+import axios from 'axios';
|
|
|
|
|
|
export default {
|
|
|
- name: "GATHER",
|
|
|
+ name: 'GATHER',
|
|
|
data() {
|
|
|
-
|
|
|
return {
|
|
|
edit: Boolean, //false 查看 true修改
|
|
|
tabList: [],
|
|
|
feeLists: [],
|
|
|
- activeName: "",
|
|
|
+ activeName: '',
|
|
|
//数据类型(0=量化指标数据,1=月报表数据)
|
|
|
typeList: [
|
|
|
- { label: "量化指标数据", value: "0" },
|
|
|
- { label: "月报表数据", value: "1" },
|
|
|
+ { label: '量化指标数据', value: '0' },
|
|
|
+ { label: '月报表数据', value: '1' }
|
|
|
],
|
|
|
//采集状态(0=未采集,1=已采集)
|
|
|
collStatus: [
|
|
|
- { label: "未采集", value: "0" },
|
|
|
- { label: "已采集", value: "1" },
|
|
|
+ { label: '未采集', value: '0' },
|
|
|
+ { label: '已采集', value: '1' }
|
|
|
],
|
|
|
//上报状态(0=未上报,=1已上报)
|
|
|
reportStatus: [
|
|
|
- { label: "未上报", value: "0" },
|
|
|
- { label: "已上报", value: "1" },
|
|
|
+ { label: '未上报', value: '0' },
|
|
|
+ { label: '已上报', value: '1' }
|
|
|
],
|
|
|
//审核状态(0=未审核,1审核中,2=审核通过,3=审核拒绝)
|
|
|
approveStatus: [
|
|
|
- { label: "未审核", value: "0" },
|
|
|
- { label: "审核中", value: "1" },
|
|
|
- { label: "审核通过", value: "2" },
|
|
|
- { label: "审核拒绝", value: "3" },
|
|
|
+ { label: '未审核', value: '0' },
|
|
|
+ { label: '审核中', value: '1' },
|
|
|
+ { label: '审核通过', value: '2' },
|
|
|
+ { label: '审核拒绝', value: '3' }
|
|
|
],
|
|
|
// 根路径
|
|
|
baseURL: process.env.VUE_APP_BASE_API,
|
|
@@ -578,7 +294,7 @@ export default {
|
|
|
// 数据采集表格数据
|
|
|
GATHERList: [],
|
|
|
// 弹出层标题
|
|
|
- title: "",
|
|
|
+ title: '',
|
|
|
// 是否显示弹出层
|
|
|
open: false,
|
|
|
openDetail: false,
|
|
@@ -594,85 +310,88 @@ export default {
|
|
|
delFlag: null,
|
|
|
deptId: null,
|
|
|
type: null,
|
|
|
+ year: null,
|
|
|
month: null,
|
|
|
collStatus: null,
|
|
|
reportStatus: null,
|
|
|
- approveStatus: null,
|
|
|
+ approveStatus: null
|
|
|
},
|
|
|
// 表单参数
|
|
|
form: {},
|
|
|
// 表单校验
|
|
|
rules: {
|
|
|
// id: [{ required: true, message: "$comment不能为空", trigger: "blur" }],
|
|
|
- collCalue: [{ required: true, message: "不能为空", trigger: "blur" },
|
|
|
- { trigger: "blur", validator: this.validatorFloatNum }
|
|
|
- ]
|
|
|
- },
|
|
|
- rulesOne: {
|
|
|
-
|
|
|
+ collCalue: [
|
|
|
+ { required: true, message: '不能为空', trigger: 'blur' },
|
|
|
+ { trigger: 'blur', validator: this.validatorFloatNum }
|
|
|
+ ]
|
|
|
},
|
|
|
+ rulesOne: {},
|
|
|
|
|
|
//设置文件名字
|
|
|
- setFileName: "",
|
|
|
- radio: "",
|
|
|
+ setFileName: '',
|
|
|
+ radio: '',
|
|
|
rowData: {},
|
|
|
fileList: [],
|
|
|
uploadForm: {},
|
|
|
- openUpload: false,
|
|
|
+ openUpload: false
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
this.getList();
|
|
|
},
|
|
|
methods: {
|
|
|
- validatorNum(rule, value, callback) {
|
|
|
-
|
|
|
- },
|
|
|
+ validatorNum(rule, value, callback) {},
|
|
|
validatorFloatNum(rule, value, callback) {
|
|
|
let reg = /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g;
|
|
|
if (!reg.test(value)) {
|
|
|
- callback(new Error('请输入数字和正确格式的数字'));
|
|
|
- }else if(value.split(".").length > 2) {
|
|
|
- callback(new Error("请输入正确格式的数字")); //防止输入多个小数点
|
|
|
- }else if (value.indexOf(".") != -1 && value.split('.')[1].length > 2) {
|
|
|
- callback(new Error('最多只能输入两位小数')) //小数点后两位
|
|
|
- }else {
|
|
|
- callback()
|
|
|
- }
|
|
|
+ callback(new Error('请输入数字和正确格式的数字'));
|
|
|
+ } else if (value.split('.').length > 2) {
|
|
|
+ callback(new Error('请输入正确格式的数字')); //防止输入多个小数点
|
|
|
+ } else if (value.indexOf('.') != -1 && value.split('.')[1].length > 2) {
|
|
|
+ callback(new Error('最多只能输入两位小数')); //小数点后两位
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
},
|
|
|
validatorNum(rule, value, callback) {
|
|
|
let reg = /^[+]?(0|([1-9]\d*))(\.\d+)?$/g;
|
|
|
if (!reg.test(value)) {
|
|
|
- callback(new Error('请输入正数和正确格式的数字'));
|
|
|
- }else if(value.split(".").length > 2) {
|
|
|
- callback(new Error("请输入正确格式的数字")); //防止输入多个小数点
|
|
|
- }else if (value.indexOf(".") != -1 && value.split('.')[1].length > 2) {
|
|
|
- callback(new Error('最多只能输入两位小数')) //小数点后两位
|
|
|
- }else {
|
|
|
- callback()
|
|
|
- }
|
|
|
+ callback(new Error('请输入正数和正确格式的数字'));
|
|
|
+ } else if (value.split('.').length > 2) {
|
|
|
+ callback(new Error('请输入正确格式的数字')); //防止输入多个小数点
|
|
|
+ } else if (value.indexOf('.') != -1 && value.split('.')[1].length > 2) {
|
|
|
+ callback(new Error('最多只能输入两位小数')); //小数点后两位
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
},
|
|
|
validatorList(name) {
|
|
|
- if(typeof name != 'string') return
|
|
|
+ if (typeof name != 'string') return;
|
|
|
|
|
|
- if(name.includes('增幅') || name.includes('验收率') || name.includes('开发率') || name.includes('比重')) {
|
|
|
- return { collCalue: [
|
|
|
- { required: true, message: "不能为空", trigger: "blur" },
|
|
|
- {trigger: "blur", validator: this.validatorFloatNum }]
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- if(name == '期末单位面积企业从业人员' || name == '活跃企业数' || name == '期末企业从业人员') {
|
|
|
- return { collCalue: [
|
|
|
- { required: true, message: "不能为空", trigger: "blur" },
|
|
|
- {pattern: /^[1-9]\d*$/, message: "请输入正整数",trigger: "blur"}]
|
|
|
- }
|
|
|
- }else {
|
|
|
- return { collCalue: [
|
|
|
- { required: true, message: "不能为空", trigger: "blur" },
|
|
|
- {trigger: "blur", validator: this.validatorNum }]
|
|
|
- }
|
|
|
- }
|
|
|
+ if (name.includes('增幅') || name.includes('验收率') || name.includes('开发率') || name.includes('比重')) {
|
|
|
+ return {
|
|
|
+ collCalue: [
|
|
|
+ { required: true, message: '不能为空', trigger: 'blur' },
|
|
|
+ { trigger: 'blur', validator: this.validatorFloatNum }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ }
|
|
|
+ if (name == '期末单位面积企业从业人员' || name == '活跃企业数' || name == '期末企业从业人员') {
|
|
|
+ return {
|
|
|
+ collCalue: [
|
|
|
+ { required: true, message: '不能为空', trigger: 'blur' },
|
|
|
+ { pattern: /^[1-9]\d*$/, message: '请输入正整数', trigger: 'blur' }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ return {
|
|
|
+ collCalue: [
|
|
|
+ { required: true, message: '不能为空', trigger: 'blur' },
|
|
|
+ { trigger: 'blur', validator: this.validatorNum }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ }
|
|
|
},
|
|
|
submitUpload() {
|
|
|
this.$refs.upload.submit();
|
|
@@ -683,7 +402,7 @@ export default {
|
|
|
},
|
|
|
handleCurrentChange(val, index) {
|
|
|
this.currentRow = val;
|
|
|
- this.$emit("data", val.pkg);
|
|
|
+ this.$emit('data', val.pkg);
|
|
|
},
|
|
|
handleChange(file, fileList) {
|
|
|
this.fileList = fileList.slice(-3);
|
|
@@ -696,26 +415,27 @@ export default {
|
|
|
//导入
|
|
|
uploadFile(file) {
|
|
|
let formData = new FormData();
|
|
|
- formData.append("file", file);
|
|
|
- formData.append("type", this.uploadForm.type);
|
|
|
- upload(formData)
|
|
|
- this.cancel()
|
|
|
- this.openUpload = false
|
|
|
+ formData.append('file', file);
|
|
|
+ formData.append('type', this.uploadForm.type);
|
|
|
+ upload(formData).then(res => {
|
|
|
+ this.$modal.msgSuccess('上传采集附件成功!');
|
|
|
+ this.getList();
|
|
|
+ this.cancel();
|
|
|
+ this.openUpload = false;
|
|
|
+ });
|
|
|
},
|
|
|
//下载模板
|
|
|
handleDownload() {
|
|
|
let row = this.rowData;
|
|
|
axios({
|
|
|
- url: process.env.VUE_APP_BASE_API + "/gather/download/" + row.id,
|
|
|
- method: "get",
|
|
|
- responseType: "blob",
|
|
|
+ url: process.env.VUE_APP_BASE_API + '/gather/download/' + row.id,
|
|
|
+ method: 'get',
|
|
|
+ responseType: 'blob',
|
|
|
headers: {
|
|
|
- Authorization: "Bearer " + getToken(),
|
|
|
- },
|
|
|
- }).then((res) => {
|
|
|
- const temp = res.headers["content-disposition"]
|
|
|
- .split(";")[1]
|
|
|
- .split("filename=")[1];
|
|
|
+ Authorization: 'Bearer ' + getToken()
|
|
|
+ }
|
|
|
+ }).then(res => {
|
|
|
+ const temp = res.headers['content-disposition'].split(';')[1].split('filename=')[1];
|
|
|
const fileName = decodeURIComponent(temp);
|
|
|
const blob = new Blob([res.data]);
|
|
|
saveAs(blob, fileName);
|
|
@@ -724,15 +444,15 @@ export default {
|
|
|
},
|
|
|
//上报
|
|
|
handleReport(data) {
|
|
|
- report(data).then((res) => {
|
|
|
- this.$modal.msgSuccess("上报成功");
|
|
|
+ report(data).then(res => {
|
|
|
+ this.$modal.msgSuccess('上报成功');
|
|
|
this.getList();
|
|
|
});
|
|
|
},
|
|
|
//提交审核
|
|
|
handleApprove(data) {
|
|
|
- this.$modal.msgSuccess("提交审核成功");
|
|
|
- approve(data).then((res) => {
|
|
|
+ this.$modal.msgSuccess('提交审核成功');
|
|
|
+ approve(data).then(res => {
|
|
|
this.getList();
|
|
|
});
|
|
|
},
|
|
@@ -741,7 +461,7 @@ export default {
|
|
|
/** 查询数据采集列表 */
|
|
|
getList() {
|
|
|
this.loading = true;
|
|
|
- listGATHER(this.queryParams).then((response) => {
|
|
|
+ listGATHER(this.queryParams).then(response => {
|
|
|
this.GATHERList = response.rows;
|
|
|
this.total = response.total;
|
|
|
this.loading = false;
|
|
@@ -762,15 +482,15 @@ export default {
|
|
|
deptId: null,
|
|
|
type: null,
|
|
|
month: null,
|
|
|
- collStatus: "0",
|
|
|
- reportStatus: "0",
|
|
|
- approveStatus: "0",
|
|
|
+ collStatus: '0',
|
|
|
+ reportStatus: '0',
|
|
|
+ approveStatus: '0'
|
|
|
};
|
|
|
this.uploadForm = {
|
|
|
- type: "",
|
|
|
+ type: ''
|
|
|
};
|
|
|
this.fileList = [];
|
|
|
- this.resetForm("form");
|
|
|
+ this.resetForm('form');
|
|
|
},
|
|
|
/** 搜索按钮操作 */
|
|
|
handleQuery() {
|
|
@@ -779,12 +499,12 @@ export default {
|
|
|
},
|
|
|
/** 重置按钮操作 */
|
|
|
resetQuery() {
|
|
|
- this.resetForm("queryForm");
|
|
|
+ this.resetForm('queryForm');
|
|
|
this.handleQuery();
|
|
|
},
|
|
|
// 多选框选中数据
|
|
|
handleSelectionChange(selection) {
|
|
|
- this.ids = selection.map((item) => item.id);
|
|
|
+ this.ids = selection.map(item => item.id);
|
|
|
this.single = selection.length !== 1;
|
|
|
this.multiple = !selection.length;
|
|
|
},
|
|
@@ -793,7 +513,7 @@ export default {
|
|
|
this.reset();
|
|
|
this.open = true;
|
|
|
this.openDetail = true;
|
|
|
- this.title = "添加数据采集";
|
|
|
+ this.title = '添加数据采集';
|
|
|
},
|
|
|
/** 录入按钮操作 */
|
|
|
handleUpdate(row) {
|
|
@@ -801,11 +521,11 @@ export default {
|
|
|
this.tabList = [];
|
|
|
this.form = [];
|
|
|
const id = row.id || this.ids;
|
|
|
- getInfoByColl(id).then((response) => {
|
|
|
+ getInfoByColl(id).then(response => {
|
|
|
//深拷贝,而不是拷贝地址
|
|
|
this.form = JSON.parse(JSON.stringify(response.data));
|
|
|
this.open = true;
|
|
|
- this.title = "数据录入";
|
|
|
+ this.title = '数据录入';
|
|
|
//深拷贝,而不是拷贝地址
|
|
|
this.tabList = JSON.parse(JSON.stringify(response.data.feeLists));
|
|
|
let dataList = response.data.feeLists;
|
|
@@ -859,11 +579,11 @@ export default {
|
|
|
this.tabList = [];
|
|
|
this.form = [];
|
|
|
const id = row.id || this.ids;
|
|
|
- getGATHER(id).then((response) => {
|
|
|
+ getGATHER(id).then(response => {
|
|
|
//深拷贝,而不是拷贝地址
|
|
|
this.form = JSON.parse(JSON.stringify(response.data));
|
|
|
this.openDetail = true;
|
|
|
- this.title = "数据查看";
|
|
|
+ this.title = '数据查看';
|
|
|
//深拷贝,而不是拷贝地址
|
|
|
this.tabList = JSON.parse(JSON.stringify(response.data.feeLists));
|
|
|
let dataList = response.data.feeLists;
|
|
@@ -923,39 +643,38 @@ export default {
|
|
|
// }
|
|
|
// }
|
|
|
// 验证表单
|
|
|
- let p = []
|
|
|
+ let p = [];
|
|
|
p = this.form.feeLists.map((item, index) => {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
- this.$refs['form' + index][0].validate((valid) => {
|
|
|
+ this.$refs['form' + index][0].validate(valid => {
|
|
|
if (valid) {
|
|
|
- resolve() //完成态
|
|
|
- } else {
|
|
|
- reject() //已失败
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
-
|
|
|
- })
|
|
|
- Promise.all(p).then(() => {
|
|
|
- if (type == "add") {
|
|
|
- addGATHER(this.form).then((response) => {
|
|
|
- this.$modal.msgSuccess("录入成功");
|
|
|
- this.open = false;
|
|
|
- this.getList();
|
|
|
- });
|
|
|
- } else if (type == "edit") {
|
|
|
- updateGATHER(this.form).then((response) => {
|
|
|
- this.$modal.msgSuccess("修改成功");
|
|
|
- this.openDetail = false;
|
|
|
- this.getList();
|
|
|
+ resolve(); //完成态
|
|
|
+ } else {
|
|
|
+ reject(); //已失败
|
|
|
+ }
|
|
|
+ });
|
|
|
});
|
|
|
- }
|
|
|
- }).catch((err) => {
|
|
|
- console.log(err)
|
|
|
- this.$message.error('请检查是否有必填项未输入!')
|
|
|
+ });
|
|
|
+ Promise.all(p)
|
|
|
+ .then(() => {
|
|
|
+ if (type == 'add') {
|
|
|
+ addGATHER(this.form).then(response => {
|
|
|
+ this.$modal.msgSuccess('录入成功');
|
|
|
+ this.open = false;
|
|
|
+ this.getList();
|
|
|
+ });
|
|
|
+ } else if (type == 'edit') {
|
|
|
+ updateGATHER(this.form).then(response => {
|
|
|
+ this.$modal.msgSuccess('修改成功');
|
|
|
+ this.openDetail = false;
|
|
|
+ this.getList();
|
|
|
+ });
|
|
|
+ }
|
|
|
})
|
|
|
-
|
|
|
-
|
|
|
+ .catch(err => {
|
|
|
+ console.log(err);
|
|
|
+ this.$message.error('请检查是否有必填项未输入!');
|
|
|
+ });
|
|
|
},
|
|
|
/** 删除按钮操作 */
|
|
|
handleDelete(row) {
|
|
@@ -967,20 +686,20 @@ export default {
|
|
|
})
|
|
|
.then(() => {
|
|
|
this.getList();
|
|
|
- this.$modal.msgSuccess("删除成功");
|
|
|
+ this.$modal.msgSuccess('删除成功');
|
|
|
})
|
|
|
.catch(() => {});
|
|
|
},
|
|
|
/** 导出按钮操作 */
|
|
|
handleExport() {
|
|
|
this.download(
|
|
|
- "business/GATHER/export",
|
|
|
+ 'business/GATHER/export',
|
|
|
{
|
|
|
- ...this.queryParams,
|
|
|
+ ...this.queryParams
|
|
|
},
|
|
|
`GATHER_${new Date().getTime()}.xlsx`
|
|
|
);
|
|
|
- },
|
|
|
- },
|
|
|
+ }
|
|
|
+ }
|
|
|
};
|
|
|
</script>
|