[add] 企标评审会记录联调
This commit is contained in:
@@ -23,8 +23,10 @@ const collectStandard = (params) => getAction('', params)
|
|||||||
// 分享企标
|
// 分享企标
|
||||||
const shareStandard = (params) => getAction('', params)
|
const shareStandard = (params) => getAction('', params)
|
||||||
|
|
||||||
// 企标评审会记录
|
// 企标评审会记录-设置优质标准
|
||||||
const setQualityStandard = (params) => getAction('', params)
|
const setQualityStandard = (params) => getAction('/enterprise/reviewMeeting/setQualityStandards', params)
|
||||||
|
// 获取评分详情
|
||||||
|
const getScoreDetail = (params) => getAction('/enterprise/reviewMeeting/evaluateDetail/' + `${params.id}`, params)
|
||||||
|
|
||||||
export {
|
export {
|
||||||
getEnterpriseStandardTableHeader,
|
getEnterpriseStandardTableHeader,
|
||||||
@@ -39,5 +41,6 @@ export {
|
|||||||
collectStandard,
|
collectStandard,
|
||||||
shareStandard,
|
shareStandard,
|
||||||
|
|
||||||
setQualityStandard
|
setQualityStandard,
|
||||||
|
getScoreDetail
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,48 @@ module.exports = {
|
|||||||
temporaryPermissionSet: 'Temporary Permission Setting',
|
temporaryPermissionSet: 'Temporary Permission Setting',
|
||||||
collection: 'Collect',
|
collection: 'Collect',
|
||||||
cancelCollection: 'Cancel Collection',
|
cancelCollection: 'Cancel Collection',
|
||||||
templateExport: 'Enterprise Standard Template'
|
templateExport: 'Enterprise Standard Template',
|
||||||
|
pleaseSelectLeastOneNode: 'Please select Level 2 and below system first',
|
||||||
|
authorizationDepart: '授权部门',
|
||||||
|
authorizationUser: '授权人员',
|
||||||
|
maturityDate: '授权到期日期',
|
||||||
|
detailTitle: '企业标准详情页',
|
||||||
|
evaluate: '企标评价',
|
||||||
|
updateRecord: '更新记录',
|
||||||
|
submitQuestion: '提交问题',
|
||||||
|
standardResolutionSheet: '标准分解单'
|
||||||
|
},
|
||||||
|
// 评审会记录
|
||||||
|
reviewMeeting: {
|
||||||
|
enterpriseStandardName: '企标名称',
|
||||||
|
enterpriseStandardNum: '企标编号',
|
||||||
|
reviewData: '评审日期',
|
||||||
|
setQualityStandard: '设置优质标准',
|
||||||
|
reviewDetail: '评分详情',
|
||||||
|
principalDrafter: '主起草人',
|
||||||
|
mainDraftUnit: '主起草单位',
|
||||||
|
reviewer: '评审人',
|
||||||
|
average: '平均总分',
|
||||||
|
isQuality: '是否推荐为优质标准',
|
||||||
|
selectMaxTen: '请最多选择10条',
|
||||||
|
scoreDetailTitle: '企标详情',
|
||||||
|
project: '项目',
|
||||||
|
desc: '描述',
|
||||||
|
score: '分值',
|
||||||
|
grade: '评分',
|
||||||
|
groundsForDemerit: '扣分理由'
|
||||||
|
},
|
||||||
|
// 宣贯
|
||||||
|
publicize: {
|
||||||
|
enterpriseStandardNum: '企标编号',
|
||||||
|
enterpriseStandardName: '企标名称',
|
||||||
|
publicizeData: '宣贯日期',
|
||||||
|
publicist: '宣贯人',
|
||||||
|
exportName: '企标宣贯表',
|
||||||
|
fileExportName: '企标宣贯表',
|
||||||
|
templateName: '企标宣贯模板',
|
||||||
|
releaseDate: '发布日期',
|
||||||
|
materialDate: '实施日期',
|
||||||
|
relatedMaterial: '相关材料'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
<a-col :span="6">
|
<a-col :span="6">
|
||||||
<a-form-item :label="$t('enterpriseStandardLibrary.publicize.publicizeData')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item :label="$t('enterpriseStandardLibrary.publicize.publicizeData')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<a-range-picker
|
<a-range-picker
|
||||||
:placeholder="$t('pleaseEnter')+$t('enterpriseStandardLibrary.publicize.publicizeData')"
|
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
format="YYYY-MM-DD"
|
format="YYYY-MM-DD"
|
||||||
@change="publicizeDataChange"
|
@change="publicizeDataChange"
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
@change="handleTableChange">
|
@change="handleTableChange">
|
||||||
|
|
||||||
<!-- 企标编号/企标名称 -->
|
<!-- 企标编号/企标名称 -->
|
||||||
<template v-slot:enterpriseStandardNum="{text, record}">
|
<template v-slot:toDeatil="{text, record}">
|
||||||
<a-tooltip overlay-class-name="tooltip-style">
|
<a-tooltip overlay-class-name="tooltip-style">
|
||||||
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
|
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
|
||||||
<a class="link-a" @click="handleGoDetail(record)">{{ text }}</a>
|
<a class="link-a" @click="handleGoDetail(record)">{{ text }}</a>
|
||||||
@@ -66,12 +66,10 @@
|
|||||||
|
|
||||||
<!-- 操作栏 -->
|
<!-- 操作栏 -->
|
||||||
<div slot="action" slot-scope="{text, record}" class="action-span-cell">
|
<div slot="action" slot-scope="{text, record}" class="action-span-cell">
|
||||||
<a @click="handleEdit(record)" class="table-ope-btn">{{ $t('edit') }}</a>
|
|
||||||
<a @click="handleReviewDetail(record)" class="table-ope-btn">{{ $t('enterpriseStandardLibrary.reviewMeeting.reviewDetail') }}</a>
|
<a @click="handleReviewDetail(record)" class="table-ope-btn">{{ $t('enterpriseStandardLibrary.reviewMeeting.reviewDetail') }}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</j-table>
|
</j-table>
|
||||||
<review-meeting-modal ref="modalForm" @ok="modalFormOk"></review-meeting-modal>
|
|
||||||
|
|
||||||
<score-detail ref="scoreDetail" @ok="loadData"></score-detail>
|
<score-detail ref="scoreDetail" @ok="loadData"></score-detail>
|
||||||
</div>
|
</div>
|
||||||
@@ -79,15 +77,15 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import '@assets/less/common.less'
|
||||||
import JTable from '@/components/jero/JTable'
|
import JTable from '@/components/jero/JTable'
|
||||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||||
import { setQualityStandard } from '@/api/enterpriseStandardLibraryApi'
|
import { setQualityStandard } from '@/api/enterpriseStandardLibraryApi'
|
||||||
import ScoreDetail from './modules/ScoreDetail'
|
import ScoreDetail from './modules/ScoreDetail'
|
||||||
import ReviewMeetingModal from './modules/ReviewMeetingModal'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ReviewMeetingList',
|
name: 'ReviewMeetingList',
|
||||||
components: { ReviewMeetingModal, ScoreDetail, JTable },
|
components: { ScoreDetail, JTable },
|
||||||
mixins: [JeroListMixin],
|
mixins: [JeroListMixin],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
@@ -113,55 +111,56 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'standardNo',
|
dataIndex: 'standardNo',
|
||||||
scopedSlots: { customRender: 'enterpriseStandardNum' }
|
scopedSlots: { customRender: 'toDeatil' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('enterpriseStandardLibrary.reviewMeeting.enterpriseStandardName'),
|
title: this.$t('enterpriseStandardLibrary.reviewMeeting.enterpriseStandardName'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'standardName',
|
dataIndex: 'standardName',
|
||||||
scopedSlots: { customRender: 'enterpriseStandardName' }
|
scopedSlots: { customRender: 'toDeatil' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('enterpriseStandardLibrary.reviewMeeting.principalDrafter'),
|
title: this.$t('enterpriseStandardLibrary.reviewMeeting.principalDrafter'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'principalDrafter',
|
dataIndex: 'mainDraftingUser',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'text' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('enterpriseStandardLibrary.reviewMeeting.mainDraftUnit'),
|
title: this.$t('enterpriseStandardLibrary.reviewMeeting.mainDraftUnit'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'mainDraftUnit',
|
dataIndex: 'mainDraftingUnit',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'text' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('enterpriseStandardLibrary.reviewMeeting.reviewData'),
|
title: this.$t('enterpriseStandardLibrary.reviewMeeting.reviewData'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'reviewData',
|
dataIndex: 'reviewDate',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'text' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('enterpriseStandardLibrary.reviewMeeting.reviewer'),
|
title: this.$t('enterpriseStandardLibrary.reviewMeeting.reviewer'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'declareUserName',
|
dataIndex: 'reviewUsers',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'text' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('enterpriseStandardLibrary.reviewMeeting.average'),
|
title: this.$t('enterpriseStandardLibrary.reviewMeeting.average'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'declareFileName',
|
dataIndex: 'avgScore',
|
||||||
|
sorter: true,
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'text' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('enterpriseStandardLibrary.reviewMeeting.isQuality'),
|
title: this.$t('enterpriseStandardLibrary.reviewMeeting.isQuality'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'isQuality',
|
dataIndex: 'qualityFlag',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'text' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -182,6 +181,18 @@ export default {
|
|||||||
this.queryParam.reviewStartDate = val[0]
|
this.queryParam.reviewStartDate = val[0]
|
||||||
this.queryParam.reviewEndDate = val[1]
|
this.queryParam.reviewEndDate = val[1]
|
||||||
},
|
},
|
||||||
|
handleTableChange (pagination, filters, sorter) {
|
||||||
|
// 分页、排序、筛选变化时触发
|
||||||
|
if (Object.keys(sorter).length > 0 && sorter.order) {
|
||||||
|
this.isorter.column = sorter.field
|
||||||
|
this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc'
|
||||||
|
} else {
|
||||||
|
this.isorter.column = 'createTime'
|
||||||
|
this.isorter.order = 'desc'
|
||||||
|
}
|
||||||
|
this.ipagination = pagination
|
||||||
|
this.loadData()
|
||||||
|
},
|
||||||
// 点击跳转企标详情
|
// 点击跳转企标详情
|
||||||
handleGoDetail (record) {
|
handleGoDetail (record) {
|
||||||
this.$openPageNewSheet({
|
this.$openPageNewSheet({
|
||||||
@@ -213,7 +224,7 @@ export default {
|
|||||||
},
|
},
|
||||||
// 点击评分详情
|
// 点击评分详情
|
||||||
handleReviewDetail (record) {
|
handleReviewDetail (record) {
|
||||||
|
this.$refs.scoreDetail.open(record.id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,103 +0,0 @@
|
|||||||
<template>
|
|
||||||
<a-modal
|
|
||||||
:title="title"
|
|
||||||
:maskClosable="true"
|
|
||||||
:width="800"
|
|
||||||
:closable="true"
|
|
||||||
@cancel="handleCancel"
|
|
||||||
@ok="handleOk"
|
|
||||||
:visible="visible">
|
|
||||||
|
|
||||||
<a-spin :spinning="confirmLoading">
|
|
||||||
<a-form :form="form">
|
|
||||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('enterpriseStandardLibrary.reviewMeeting.isQuality')">
|
|
||||||
<j-dict-select-tag
|
|
||||||
v-decorator.trim="[ 'isQuality', validatorRules.isQuality]">
|
|
||||||
</j-dict-select-tag>
|
|
||||||
</a-form-item>
|
|
||||||
</a-form>
|
|
||||||
</a-spin>
|
|
||||||
|
|
||||||
</a-modal>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import pick from 'lodash.pick'
|
|
||||||
import { postAction } from '@/api/manage'
|
|
||||||
import JDictSelectTag from '@/components/dict/JDictSelectTag'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: 'ReviewMeetingModal',
|
|
||||||
components: { JDictSelectTag },
|
|
||||||
data () {
|
|
||||||
return {
|
|
||||||
title: '',
|
|
||||||
visible: false,
|
|
||||||
confirmLoading: false,
|
|
||||||
form: this.$form.createForm(this),
|
|
||||||
model: {},
|
|
||||||
labelCol: {
|
|
||||||
xs: { span: 24 },
|
|
||||||
sm: { span: 6 }
|
|
||||||
},
|
|
||||||
wrapperCol: {
|
|
||||||
xs: { span: 24 },
|
|
||||||
sm: { span: 16 }
|
|
||||||
},
|
|
||||||
validatorRules: {
|
|
||||||
isQuality: {
|
|
||||||
rules: [
|
|
||||||
{ required: false, message: this.$t('pleaseEnter') + this.$t('enterpriseStandardLibrary.standard.authorizationDepart') }
|
|
||||||
],
|
|
||||||
validateTrigger: 'change'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
url: {
|
|
||||||
edit: ''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
edit (record) {
|
|
||||||
this.visible = true
|
|
||||||
this.form.resetFields()
|
|
||||||
this.model = Object.assign({}, record)
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.form.setFieldsValue(pick(this.model, 'isQuality'))
|
|
||||||
})
|
|
||||||
},
|
|
||||||
handleCancel () {
|
|
||||||
this.close()
|
|
||||||
},
|
|
||||||
handleOk () {
|
|
||||||
if (this.confirmLoading) return
|
|
||||||
this.form.validateFields((err, values) => {
|
|
||||||
if (!err) {
|
|
||||||
this.confirmLoading = true
|
|
||||||
const param = Object.assign({}, values)
|
|
||||||
param.id = this.model.id
|
|
||||||
postAction(this.url.edit, param).then(res => {
|
|
||||||
if (res.success) {
|
|
||||||
this.$message.success(res.success)
|
|
||||||
this.$emit('ok')
|
|
||||||
this.visible = false
|
|
||||||
} else {
|
|
||||||
this.$message.warning(res.message)
|
|
||||||
}
|
|
||||||
}).finally(() => {
|
|
||||||
this.confirmLoading = false
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
close () {
|
|
||||||
this.visible = false
|
|
||||||
this.model = {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
|
|
||||||
</style>
|
|
||||||
@@ -40,6 +40,8 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
import { getScoreDetail } from '../../../../api/enterpriseStandardLibraryApi'
|
||||||
|
|
||||||
const fixDataSourse = [
|
const fixDataSourse = [
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
@@ -359,9 +361,6 @@ export default {
|
|||||||
dataSource: []
|
dataSource: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
|
||||||
this.initData()
|
|
||||||
},
|
|
||||||
watch: {
|
watch: {
|
||||||
leftCurr: {
|
leftCurr: {
|
||||||
immediate: true,
|
immediate: true,
|
||||||
@@ -386,10 +385,26 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
initData () {
|
open (id) {
|
||||||
this.scoreData = initData
|
this.visible = true
|
||||||
this.nameArr = Object.keys(this.scoreData)
|
this.initData(id)
|
||||||
this.leftCurr = this.nameArr[0]
|
},
|
||||||
|
initData (id) {
|
||||||
|
this.confirmLoading = true
|
||||||
|
getScoreDetail({ id: id }).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.scoreData = res.result
|
||||||
|
this.nameArr = Object.keys(this.scoreData)
|
||||||
|
this.leftCurr = this.nameArr[0]
|
||||||
|
} else {
|
||||||
|
this.$message.warning(res.message)
|
||||||
|
this.scoreData = []
|
||||||
|
this.nameArr = []
|
||||||
|
this.leftCurr = ''
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.confirmLoading = false
|
||||||
|
})
|
||||||
},
|
},
|
||||||
// 左侧选中改变
|
// 左侧选中改变
|
||||||
leftChange (value) {
|
leftChange (value) {
|
||||||
|
|||||||
Reference in New Issue
Block a user