[add] 企标复审计划

This commit is contained in:
lideqin
2023-09-12 11:04:28 +08:00
parent c722b2a719
commit 9cca3a2726
5 changed files with 284 additions and 2 deletions
+6 -1
View File
@@ -35,6 +35,9 @@ const getCheckReportById = (params) => getAction('', params)
// 企标稽查-根据id获取整改计划
const getRectificationPlanById = (params) => getAction('', params)
// 企标复审计划-发起复审
const initReview = (params) => getAction('', params)
export {
getEnterpriseStandardTableHeader,
getEnterpriseStandardSearchForm,
@@ -53,5 +56,7 @@ export {
deferredCheck,
getCheckReportById,
getRectificationPlanById
getRectificationPlanById,
initReview
}
@@ -91,5 +91,13 @@ module.exports = {
rectificationPlanFinishTime: '整改计划完成时间',
rectificationActualFinishTime: '整改实际完成时间',
rectificationStatus: '整改状态'
},
// 复审计划
reviewPlan: {
enterpriseStandardNum: '企标编号',
enterpriseStandardName: '企标名称',
publishDate: '发布日期',
reviewDate: '复审日期',
initReview: '发起复审'
}
}
@@ -91,5 +91,13 @@ module.exports = {
rectificationPlanFinishTime: '整改计划完成时间',
rectificationActualFinishTime: '整改实际完成时间',
rectificationStatus: '整改状态'
},
// 复审计划
reviewPlan: {
enterpriseStandardNum: '企标编号',
enterpriseStandardName: '企标名称',
publishDate: '发布日期',
reviewDate: '复审日期',
initReview: '发起复审'
}
}
@@ -62,7 +62,11 @@
</template>
<div style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">{{ $t('query') }}</a-button>
<a @click="handleToggleSearch">
{{ toggleSearchStatus ? $t('putAway') : $t('open') }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px">{{ $t('query') }}</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
</div>
@@ -0,0 +1,257 @@
<template>
<a-card :bordered="false">
<!-- 搜索区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :span="6">
<a-form-item :label="$t('enterpriseStandardLibrary.reviewPlan.enterpriseStandardNum')" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input :placeholder="$t('pleaseEnter')+$t('enterpriseStandardLibrary.reviewPlan.enterpriseStandardNum')" v-model="queryParam.standardNo"></a-input>
</a-form-item>
</a-col>
<a-col :span="6">
<a-form-item :label="$t('enterpriseStandardLibrary.reviewPlan.enterpriseStandardName')" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input :placeholder="$t('pleaseEnter')+$t('enterpriseStandardLibrary.reviewPlan.enterpriseStandardName')" v-model="queryParam.standardName"></a-input>
</a-form-item>
</a-col>
<a-col :span="6">
<a-form-item :label="$t('enterpriseStandardLibrary.reviewPlan.publishDate')" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-range-picker
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
@change="publishDateChange"
v-model="queryParam.publishDate">
</a-range-picker>
</a-form-item>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :span="6">
<a-form-item :label="$t('enterpriseStandardLibrary.reviewPlan.reviewDate')" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-range-picker
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
@change="reviewDateChange"
v-model="queryParam.reviewData">
</a-range-picker>
</a-form-item>
</a-col>
</template>
<div style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
<a @click="handleToggleSearch">
{{ toggleSearchStatus ? $t('putAway') : $t('open') }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px">{{ $t('query') }}</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
</div>
</a-row>
</a-form>
</div>
<!-- 操作区域 -->
<div class="table-operator">
<!-- 发起复审 -->
<a-button icon="plus" type="primary" ghost @click="handleInitReview">
{{ $t('enterpriseStandardLibrary.reviewPlan.initReview') }}
</a-button>
</div>
<div>
<j-table
:can-drag="true"
:scroll="{x: '100%'}"
ref="table"
size="middle"
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type: 'radio'}"
@change="handleTableChange">
<!-- 企标编号/企标名称 -->
<template v-slot:toDetail="{text, record}">
<a-tooltip overlay-class-name="tooltip-style">
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
<a class="link-a" @click="handleGoDetail(record)">{{ text }}</a>
</a-tooltip>
</template>
<!-- 复审日期 大于当前日期时标红 -->
<template slot="reviewDate" slot-scope="text">
<a-tooltip overlay-class-name="tooltip-style">
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
<div class="table-text">{{ text || text === 0 ? text : global.emptyLine }}</div>
</a-tooltip>
</template>
</j-table>
</div>
</a-card>
</template>
<script>
import JTable from '@/components/jero/JTable'
import { JeroListMixin } from '@/mixins/JeroListMixin'
import { initReview } from '@/api/enterpriseStandardLibraryApi'
export default {
name: 'ReviewPlanList',
components: { JTable },
mixins: [JeroListMixin],
data () {
return {
columns: [
{
title: this.$t('serialNumber'),
dataIndex: '',
key: 'rowIndex',
width: 60,
align: 'center',
customRender: function (t, r, index) {
return parseInt(index) + 1
}
},
{
title: this.$t('enterpriseStandardLibrary.check.basedStandardNo'),
align: 'center',
width: 180,
dataIndex: 'standardNo',
scopedSlots: { customRender: 'toDetail' }
},
{
title: this.$t('enterpriseStandardLibrary.check.basedStandardName'),
align: 'center',
width: 180,
dataIndex: 'standardName',
scopedSlots: { customRender: 'toDetail' }
},
{
title: this.$t('enterpriseStandardLibrary.check.planCheckTarget'),
align: 'center',
width: 180,
dataIndex: 'planCheckTarget',
scopedSlots: { customRender: 'text' }
},
{
title: this.$t('enterpriseStandardLibrary.check.workGroup'),
align: 'center',
width: 180,
dataIndex: 'workGroup',
scopedSlots: { customRender: 'text' }
},
{
title: this.$t('enterpriseStandardLibrary.check.department'),
align: 'center',
width: 180,
dataIndex: 'department',
scopedSlots: { customRender: 'text' }
},
{
title: this.$t('enterpriseStandardLibrary.check.scheduledCheckDate'),
align: 'center',
width: 180,
dataIndex: 'scheduledCheckDate',
scopedSlots: { customRender: 'scheduledCheckDate' }
},
{
title: this.$t('enterpriseStandardLibrary.check.headOfCheck'),
align: 'center',
width: 180,
dataIndex: 'headOfCheck',
scopedSlots: { customRender: 'text' }
},
{
title: this.$t('enterpriseStandardLibrary.check.contactPerson'),
align: 'center',
width: 180,
dataIndex: 'contactPerson',
scopedSlots: { customRender: 'text' }
},
{
title: this.$t('enterpriseStandardLibrary.check.checkFinishDate'),
align: 'center',
width: 180,
dataIndex: 'checkFinishDate',
scopedSlots: { customRender: 'text' }
},
{
title: this.$t('enterpriseStandardLibrary.check.actualChecker'),
align: 'center',
width: 180,
dataIndex: 'actualChecker',
scopedSlots: { customRender: 'text' }
},
{
title: this.$t('enterpriseStandardLibrary.check.status'),
align: 'center',
width: 180,
dataIndex: 'status',
scopedSlots: { customRender: 'text' }
},
{
title: this.$t('enterpriseStandardLibrary.check.createDate'),
align: 'center',
width: 180,
dataIndex: 'createDate',
scopedSlots: { customRender: 'text' }
},
{
title: this.$t('operation'),
scopedSlots: { customRender: 'action' },
align: 'center',
width: 200
}
],
url: {
list: '/enterprise/recheckPlan/page'
}
}
},
methods: {
// 发布日期改变
publishDateChange (val) {
this.queryParam.releaseStartDate = val[0]
this.queryParam.releaseEndDate = val[1]
},
// 复审日期改变
reviewDataChange (val) {
this.queryParam.recheckStartDate = val[0]
this.queryParam.recheckEndDate = val[1]
},
// 点击跳转企标详情
handleGoDetail (record) {
this.$openPageNewSheet({
path: '/enterpriseStandardLibrary/enterpriseStandardDetail',
query: {
id: record.id
}
})
},
// 发起复审
handleInitReview () {
if (this.selectedRowKeys.length <= 0) {
this.$message.warning(this.$t('selectARecord'))
return
}
const params = {}
params.id = this.selectedRowKeys[0]
initReview(params).then(res => {
if (res.success) {
this.$message.success(res.message)
this.loadData()
} else {
this.$message.warning(res.message)
}
})
}
}
}
</script>
<style scoped>
</style>