Merge branch 'dev_2024325_LCZGF_39' into 'master'

Dev 2024325 lczgf 39

See merge request laws-foton-slrs/foton-laws-system-front!176
This commit is contained in:
王晓勇
2024-04-15 03:47:08 +00:00
36 changed files with 7339 additions and 4554 deletions
+6 -4
View File
@@ -212,10 +212,11 @@ export default {
},
watch: {
value: {
handler(val) {
if (this.showFileModel) {
this.getShowFileList()
}
handler () {
this.getShowFileList()
// if (this.showFileModel) {
// this.getShowFileList()
// }
}
}
},
@@ -540,6 +541,7 @@ export default {
*/
getShowFileList() {
return new Promise((resolve, reject) => {
this.showFileList = []
if (this.value && this.value !== '') {
let paramefile = this.value
if (paramefile.charAt(paramefile.length - 1) === ',') {
+8 -1
View File
@@ -48,7 +48,12 @@
</div>
</el-dialog>
<!-- 导入失败-->
<el-dialog :visible.sync="importFailed" :close-on-click-modal="false" width="400px">
<el-dialog
:visible.sync="importFailed"
:close-on-click-modal="false"
width="400px"
append-to-body
>
<p slot="title" style="color:#f60">
<span>导入失败</span>
</p>
@@ -141,6 +146,8 @@ export default {
})
}
this.fileList = fileList
} else {
this.fileList = []
}
},
onClose () {
@@ -0,0 +1,722 @@
<template>
<el-drawer
ref="standard"
title="查询结果"
size="1250px"
:visible.sync="visible"
direction="rtl"
append-to-body
>
<div style="flex: 1" class="drawer-content">
<div style="height: calc(100% - 56px)">
<el-form
:model="searchForm"
inline
class="label-input-form search-area"
style="justify-content: left;"
>
<el-form-item label="标准/政策来源" class="search-item">
<el-select
v-model="searchForm.dataSource"
placeholder="请选择标准/政策来源"
@change="dataSourceChange"
>
<el-option v-for="i in dataSourceOptions" :value="i.value" :label="i.label" />
</el-select>
</el-form-item>
<el-form-item
label="标准编号/政策文号"
style="margin-right:10px"
class="search-item"
>
<el-input
v-model="searchForm.lawNumber"
clearable
placeholder="根据编号查找"
:maxlength="100"
/>
</el-form-item>
<el-form-item
label="标准名称/政策名称"
style="margin-right:10px"
class="search-item"
>
<el-input
v-model="searchForm.lawName"
placeholder="根据名称查找"
clearable
:maxlength="100"
/>
</el-form-item>
<el-form-item>
<el-button
size="mini"
type="primary"
class="common-button-primary"
@click="onSearch"
>
查询
</el-button>
<el-button
class="common-button-default"
size="mini"
@click="onClear"
>
清空
</el-button>
</el-form-item>
</el-form>
<el-table
v-if="showTable"
ref="reviseDrawerTable"
:data="standardData"
tooltip-effect="dark"
style="width: 100%;"
border
height="calc(100% - 51px)"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px', fontWeight: 'bold', height: '48px'}"
@selection-change="selectionChange"
>
<el-table-column
fixed="left"
type="selection"
width="55"
align="center"
/>
<el-table-column
fixed="left"
type="index"
width="55"
label="序号"
align="center"
>
<template slot-scope="{scope, column, $index}">
{{ ($index + 1) + (searchForm.page - 1) * searchForm.pageSize }}
</template>
</el-table-column>
<div v-if="searchForm.dataSource === 'INLAND'">
<el-table-column
label="标准号"
width="150"
prop="standCode"
>
<template slot-scope="scope">
<a
v-if="scope.row.standYear && textStatusMap[scope.row.textStatus] === '废止'"
class="table-jump"
style="color: #F56C6C"
@click="handlePreview(scope.row)"
>{{ scope.row.standCode }}</a>
<a
v-else-if="scope.row.standYear"
class="table-jump"
style="color: #333333"
@click="handlePreview(scope.row)"
>{{ scope.row.standCode }}</a>
<a
v-else
class="table-jump"
style="color: #333333"
@click="handlePreview(scope.row)"
>{{ scope.row.standCode }}</a>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="标准名称"
min-width="300"
>
<template slot-scope="scope">
<a v-if="textStatusMap[scope.row.textStatus] === '废止'" class="table-jump" style="color: #F56C6C" @click="handlePreview(scope.row)">{{ scope.row.standName }}</a>
<a v-else style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standName }}</a>
</template>
</el-table-column>
<el-table-column
prop="issueTime"
width="120"
label="发布日期"
>
<template slot-scope="scope">
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{ scope.row.issueTime }}</span>
<span v-else>{{ scope.row.issueTime }}</span>
</template>
</el-table-column>
<el-table-column
prop="ssrq"
width="120"
label="实施日期"
>
<template slot-scope="scope">
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{ scope.row.ssrq }}</span>
<span v-else>{{ scope.row.ssrq }}</span>
</template>
</el-table-column>
<el-table-column
prop="xcxssrq"
width="150"
label="新车型实施日期"
>
<template slot-scope="scope">
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{ scope.row.xcxssrq }}</span>
<span v-else>{{ scope.row.xcxssrq }}</span>
</template>
</el-table-column>
<el-table-column
prop="zccssrq"
width="150"
label="在产车实施日期"
>
<template slot-scope="scope">
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{ scope.row.zccssrq }}</span>
<span v-else>{{ scope.row.zccssrq }}</span>
</template>
</el-table-column>
<el-table-column
prop="textStatus"
width="110"
label="标准状态"
>
<template slot-scope="scope">
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{
textStatusMap[scope.row.textStatus]
}}</span>
<span v-else>{{ textStatusMap[scope.row.textStatus] }}</span>
</template>
</el-table-column>
</div>
<div v-if="searchForm.dataSource === 'FOREIGN'">
<el-table-column
label="标准号"
width="150"
prop="standCode"
>
<template slot-scope="scope">
<a
v-if="scope.row.standYear && textStatusMap[scope.row.textStatus] === '废止'"
style="color: #F56C6C"
class="table-jump"
@click="handlePreview(scope.row)"
>{{ scope.row.standCode }}</a>
<a
v-else-if="scope.row.standYear && textStatusMap[scope.row.textStatus] === '——' "
style="color: #409EFF"
class="table-jump"
@click="handlePreview(scope.row)"
>{{ scope.row.standCode }}</a>
<a
v-else-if="scope.row.standYear"
style="color: #333333"
class="table-jump"
@click="handlePreview(scope.row)"
>{{ scope.row.standCode }}</a>
<a
v-else
style="color: #333333"
class="table-jump"
@click="handlePreview(scope.row)"
>{{ scope.row.standCode }}</a>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="标准名称"
min-width="300"
>
<template slot-scope="scope">
<a v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{
scope.row.standName
}}</a>
<a v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF" class="table-jump" @click="handlePreview(scope.row)">{{
scope.row.standName
}}</a>
<a v-else style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{
scope.row.standName
}}</a>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standEnName"
label="英文名称"
min-width="300"
>
<template slot-scope="scope">
<a v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{
scope.row.standEnName
}}</a>
<a v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF" class="table-jump" @click="handlePreview(scope.row)">{{
scope.row.standEnName
}}</a>
<a v-else style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{
scope.row.standEnName
}}</a>
</template>
</el-table-column>
<el-table-column
prop="issueTime"
width="120"
label="发布日期"
>
<template slot-scope="scope">
<div v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">
{{ scope.row.issueTime }}
</div>
<div v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">
{{ scope.row.issueTime }}
</div>
<div v-else style="color: #333333">
{{ scope.row.issueTime }}
</div>
</template>
</el-table-column>
<el-table-column
prop="ssrq"
width="120"
label="实施日期"
>
<template slot-scope="scope">
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{
scope.row.ssrq
}}</span>
<span v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">{{
scope.row.ssrq
}}</span>
<span v-else style="color: #333333">{{ scope.row.ssrq }}</span>
</template>
</el-table-column>
<el-table-column
prop="xcxssrq"
width="150"
label="新车型实施日期"
>
<template slot-scope="scope">
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{
scope.row.xcxssrq
}}</span>
<span v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">{{
scope.row.xcxssrq
}}</span>
<span v-else style="color: #333333">{{
scope.row.xcxssrq
}}</span>
</template>
</el-table-column>
<el-table-column
prop="zccssrq"
width="150"
label="在产车实施日期"
>
<template slot-scope="scope">
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{
scope.row.zccssrq
}}</span>
<span v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">{{
scope.row.zccssrq
}}</span>
<span v-else style="color: #333333">{{
scope.row.zccssrq
}}</span>
</template>
</el-table-column>
<el-table-column
prop="textStatus"
width="110"
label="标准状态"
>
<template slot-scope="scope">
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{
textStatusMap[scope.row.textStatus]
}}</span>
<span v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">{{
textStatusMap[scope.row.textStatus]
}}</span>
<span v-else style="color: #333333">{{ textStatusMap[scope.row.textStatus] }}</span>
</template>
</el-table-column>
</div>
<div v-if="searchForm.dataSource === 'FOREIGN_LAWS'">
<el-table-column
show-overflow-tooltip
label="政策文号"
width="150"
>
<template slot-scope="scope">
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsNo }}</a>
<a v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsNo }}</a>
<a v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'" style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsNo }}</a>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="lawsName"
label="中文名称"
min-width="300"
>
<template slot-scope="scope">
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsName }}</a>
<a v-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsName }}</a>
<a v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'" style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsName }}</a>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="lawsEnName"
label="英文名称"
min-width="300"
>
<template slot-scope="scope">
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsEnName }}</a>
<a v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsEnName }}</a>
<a v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'" style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsEnName }}</a>
</template>
</el-table-column>
<el-table-column
prop="issueTime"
label="发文日期"
width="120"
>
<template slot-scope="scope">
<span v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C">{{ scope.row.issueTime }}</span>
<span v-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C">{{ scope.row.issueTime }}</span>
<span v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'">{{ scope.row.issueTime }}</span>
</template>
</el-table-column>
<el-table-column
prop="XCXSSRQLAWS"
label="新车实施日期"
width="150"
>
<template slot-scope="scope">
<span v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C">{{ scope.row.putTime }}</span>
<span v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C">{{ scope.row.putTime }}</span>
<span v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'">{{ scope.row.XCXSSRQLAWS }}</span>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standStatusShow"
:label="standardStatusName"
width="110"
>
<template slot-scope="scope">
<span v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C">
{{ scope.row.standStatusShow }}
</span>
<span v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C">
{{ scope.row.standStatusShow }}
</span>
<span v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'">
{{ scope.row.standStatusShow }}
</span>
</template>
</el-table-column>
</div>
<div v-if="searchForm.dataSource === 'BUSINESS_STAND'">
<el-table-column
show-overflow-tooltip
label="企标编号"
width="150"
>
<template slot-scope="scope">
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standCode }}</a>
<a v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standCode }}</a>
<a v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'" style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standCode }}</a>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standName"
label="中文名称"
min-width="300"
>
<template slot-scope="scope">
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standName }}</a>
<a v-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standName }}</a>
<a v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'" style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standName }}</a>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standEnName"
label="英文名称"
min-width="300"
>
<template slot-scope="scope">
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standEnName }}</a>
<a v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standEnName }}</a>
<a v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'" style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standEnName }}</a>
</template>
</el-table-column>
<el-table-column
prop="issueTime"
label="发布日期"
width="120"
>
<template slot-scope="scope">
<span v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C">{{ scope.row.issueTime }}</span>
<span v-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C">{{ scope.row.issueTime }}</span>
<span v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'">{{ scope.row.issueTime }}</span>
</template>
</el-table-column>
<el-table-column
prop="putTime"
label="实施日期"
width="120"
>
<template slot-scope="scope">
<span v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C">{{ scope.row.putTime }}</span>
<span v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C">{{ scope.row.putTime }}</span>
<span v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'">{{ scope.row.putTime }}</span>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="standStatusShow"
label="标准状态"
width="110"
>
<template slot-scope="scope">
<span v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C">
{{ scope.row.standStatusShow }}
</span>
<span v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C">
{{ scope.row.standStatusShow }}
</span>
<span v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'">
{{ scope.row.standStatusShow }}
</span>
</template>
</el-table-column>
</div>
</el-table>
</div>
<pagination
:page="searchForm.page"
:total="searchForm.total"
@pageChange="pageChange"
@pageSizeChange="pageSizeChange"
/>
</div>
<div class="drawer-footer">
<el-button
round
class="common-button-primary"
icon="el-icon-check"
type="primary"
@click="onDrag"
>
带入
</el-button>
<el-button
round
class="common-button-default"
icon="el-icon-close"
@click="onCancel"
>
取消
</el-button>
</div>
<loading :loading="loading">数据获取中</loading>
</el-drawer>
</template>
<script>
export default {
name: 'StandardListDrawer',
data () {
const dataSourceOptions = [
{
label: '国内标准库',
value: 'INLAND'
},
{
label: '海外标准库',
value: 'FOREIGN'
},
{
label: '国内外政策库',
value: 'FOREIGN_LAWS'
},
{
label: '企业标准库',
value: 'BUSINESS_STAND'
},
]
const searchForm = {
dataSource: 'INLAND',
standType: 'INLAND',
lawCode: '',
lawName: '',
productType: '',
page: 1,
total: 0,
pageSize: this.$store.getters.userInfo.configContent,
}
return {
searchForm,
initSearchForm: JSON.parse(JSON.stringify(searchForm)),
dataSourceOptions,
standardData: [],
loading: false,
url: {
INLANDFOREIGN: 'sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage',
FOREIGN_LAWS: 'lawss/sarLawsInfo/page',
BUSINESS_STAND: 'lawss/sarBussionessStand/getSarBussionStandPage'
},
textStatusMap: {},
showTable: true,
visible: false,
selectedList: [],
}
},
computed: {
standardStatusName () {
return this.searchForm.standType === 'FOREIGN_LAWS' ? '政策状态' : '标准状态'
}
},
created () {
this.getDicTypeListCode()
this.getData()
},
methods: {
open () {
this.visible = true
this.searchForm = JSON.parse(JSON.stringify(this.initSearchForm))
this.selectedList = []
this.getData()
},
onCancel () {
this.visible = false
},
getData () {
this.searchForm.standType = this.searchForm.dataSource
const params = { dataSource: this.searchForm.dataSource, standType: this.searchForm.standType, page: this.searchForm.page, total: this.searchForm.total, ...this.searchForm.pageSize }
const config = {
_this: this,
loading: 'loading'
}
let url = this.url.INLANDFOREIGN
switch (this.searchForm.dataSource) {
case 'INLAND':
case 'FOREIGN':
url = this.url.INLANDFOREIGN
params.standNumber = this.searchForm.lawNumber
params.standName = this.searchForm.lawName
break
case 'FOREIGN_LAWS':
url = this.url.FOREIGN_LAWS
params.lawsNo = this.searchForm.lawNumber
params.lawsName = this.searchForm.lawName
break
case 'BUSINESS_STAND':
url = this.url.BUSINESS_STAND
params.standCode = this.searchForm.lawNumber
params.standName = this.searchForm.lawName
break
}
this.$http._getData(url, params, config).then(res => {
if (res.ok) {
this.standardData = res.data.list
this.searchForm.total = res.data.count
this.showTable = false
this.$nextTick(() => {
this.showTable = true
})
}
})
},
pageChange (page) {
this.searchForm.page = page
this.getData()
},
pageSizeChange (pageSize) {
this.searchForm.pageSize = pageSize
this.getData()
},
dataSourceChange () {
const standType = this.searchForm.dataSource
this.searchForm = JSON.parse(JSON.stringify(this.initSearchForm))
this.searchForm.dataSource = standType
this.searchForm.standType = standType
this.standType = standType
console.log(this.standType)
this.getData()
},
onSearch () {
this.searchForm.page = 1
this.getData()
},
onClear () {
this.searchForm.page = 1
this.searchForm.lawNumber = ''
this.searchForm.lawName = ''
this.getData()
},
getDicTypeListCode () {
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
if (res.ok) {
this.dict = { ...res.data }
this.setMap(this.dict.WBZTCLASS, 'textStatusMap')
}
})
},
setMap (data, key) {
data.forEach(item => {
this.$set(this[key], item.value, item.label);
});
},
selectionChange (selection) {
this.selectedList = selection
},
// 点击查看
handlePreview (item) {
let name = '', id = item.id, pageType = ''
if (item.standType === 'INLAND') {
name = 'OtherStandardDetails'
pageType = 'INLAND_STAND'
}else if (item.standType === 'FOREIGN') {
name = 'OtherStandardDetails'
pageType = 'FOREIGN_STAND'
}else if (item.country !== undefined) {
name = 'OtherLawsStandDetails'
pageType = 'LAWS_STAND'
} else {
name = 'OtherBussStandardDetails'
pageType = 'BUSINESS_STAND'
}
const routeUrl = this.$router.resolve({ name, params: { id, pageType } })
window.open(routeUrl.href, '_blank')
},
onDrag () {
this.$emit('dragIn', {
list: this.selectedList,
type: this.searchForm.dataSource
})
this.visible = false
}
}
}
</script>
<style scoped lang="less">
.drawer-content{
padding: 0 19px;
overflow-y: auto;
flex: 1;
position: relative;
}
.drawer-footer {
width: 100%;
padding: 0 20px;
height: 70px;
line-height: 69px;
border-top: 1px solid #e8e8e8;
text-align: right;
background: #fff;
z-index: 999;
}
</style>
@@ -5,33 +5,35 @@
<h4>{{ title }}</h4>
<div style="margin-top: 10px;width: 300px;max-width: 100%">
<el-input
:disabled="disabled"
:value="name"
:placeholder="`选择${title}`"
readonly
@click.native="choice(id)"></el-input>
:disabled="disabled"
:value="name"
:placeholder="placeholder || `选择${title}`"
readonly
@click.native="choice(id)"
/>
</div>
</el-form-item>
</el-card>
<Role-tree v-if="!disabled"
:check-box="!multiple"
:is-title="`选择${title}`"
:is-visible.sync="modalShowFlag"
@checkedRole="checkedRole"
:nodeList="nodeList"
></Role-tree>
<Role-tree
v-if="!disabled"
:check-box="!multiple"
:is-title="`选择${title}`"
:is-visible.sync="modalShowFlag"
:nodeList="nodeList"
@checkedRole="checkedRole"
/>
</el-timeline-item>
</template>
<script>
export default {
name: "TimeLineFormItem",
name: 'TimeLineFormItem',
props: {
id:{
id: {
type: String,
required: true
},
name:{
name: {
type: String,
required: true
},
@@ -50,14 +52,17 @@ export default {
type: String,
required: true
},
multiple: {// 多选
multiple: { // 多选
type: Boolean,
default: false
},
placeholder: {
type: String
}
},
data () {
return {
drawerTitle: '', //drawer标题
drawerTitle: '', // drawer标题
modalShowFlag: false, // drawer开关
nodeList: [],
}
@@ -77,7 +82,7 @@ export default {
this.$emit('update:name', name)
},
joint (data, type) {
return data.reduce((init,item) => {
return data.reduce((init, item) => {
if (init === '') {
return item[type]
} else {
@@ -47,6 +47,7 @@
:visible.sync="fileMadel"
title="上传文件"
:close-on-click-modal="false"
append-to-body
>
<el-upload
ref="importfile"
@@ -195,6 +196,9 @@ export default {
}
this.fileList = fileList
this.FileList = fileList
} else {
this.fileList = []
this.FileList = []
}
},
beforeUpload (file) {
+13 -6
View File
@@ -1,9 +1,9 @@
<template>
<!--导出文件改名字模态框-->
<el-dialog :visible.sync="exportModelFlag" title="导出文件" width="300px" :append-to-body="appendToBody">
<el-dialog :visible.sync="exportModelFlag" title="导出文件" width="310px" :append-to-body="appendToBody">
<el-form :inline="true" class="label-input-form search-area">
<el-form-item label="导出名称" class="search-item">
<el-input v-model="exportName" placeholder="请输入导出文件名称" :maxlength="30" clearable label="导出名称"/>
<el-input class="exportFileInput" v-model="exportName" placeholder="请输入导出文件名称" :maxlength="30" clearable label="导出名称"/>
</el-form-item>
</el-form>
<span slot="footer" class="demo-drawer-footer">
@@ -16,7 +16,7 @@
<script>
export default {
name: "exportDialog",
data () {
data() {
return {
exportModelFlag: false,
exportName: ''
@@ -29,14 +29,14 @@ export default {
}
},
methods: {
openModel () {
openModel() {
this.exportName = ''
this.exportModelFlag = true
},
cancel () {
cancel() {
this.exportModelFlag = false
},
submit () {
submit() {
// 导出文件名
this.$emit('exportName', this.exportName)
}
@@ -45,9 +45,14 @@ export default {
</script>
<style scoped>
.exportFileInput /deep/.el-input__inner {
padding-right: 0 !important;
}
/deep/ .label-input-form .add-form-item .el-form-item__content .el-input .el-input__inner {
width: 280px;
}
/deep/ .el-dialog .el-dialog__header {
width: 100%;
font-size: 14px;
@@ -58,9 +63,11 @@ export default {
text-overflow: ellipsis;
white-space: nowrap;
}
/deep/ .el-dialog .el-dialog__body {
padding: 15px 20px;
}
/deep/ .el-dialog .el-dialog__footer .el-button {
height: 32px;
padding: 8px 23px;
@@ -0,0 +1,113 @@
<template>
<el-drawer
title="政策体系"
:visible.sync="visible"
>
<el-input v-model="filterText" placeholder="请输入政策体系" class="filterInput" style="width: 100%;padding: 10px 5px"/>
<div style="flex: 1">
<el-tree
ref="tree"
:data="treeList"
:props="defaultProps"
node-key="id"
highlight-current
:filter-node-method="filterNode"
:expand-on-click-node="false"
>
<span slot-scope="{ node, data }" class="custom-tree-node">
<span :class="data.children.length !== 0 ? 'is-show' : 'is-leaf-none'" />
<span style="font-size:12px"> {{ node.label }} </span>
</span>
</el-tree>
</div>
<div class="demo-drawer-footer" style="height: 51px">
<el-button size="mini" @click="cancel">取消</el-button>
<el-button size="mini" type="primary" @click="submit">确定</el-button>
</div>
</el-drawer>
</template>
<script>
export default {
name: 'PolicyTree',
data () {
return {
visible: false,
getListStand: 'sarResource/ts-resource/getListStandIgnoreMyCollection',
treeList: [],
filterText: '',
defaultProps: {
children: 'children',
label: 'menuName'
},
}
},
mounted () {
this.getList()
},
watch: {
filterText (val) {
this.$refs.tree.filter(val);
},
},
methods: {
filterNode (value, data) {
if (!value) return true;
return data.menuName.indexOf(value) !== -1;
},
getList () {
this.$http._getData(this.getListStand, {
sorDivide: 'FOREIGN_LAWS',
userId: this.$store.getters.userInfo.userId
}).then(res => {
if (res.ok) {
this.treeList = res.data
}
})
},
open (key) {
this.visible = true
this.$nextTick(() => {
this.filterText = ''
key === '' ?
this.$refs.tree.setCurrentKey() :
this.$refs.tree.setCurrentKey(key)
})
},
cancel () {
this.visible = false
},
submit () {
const currentNode = this.$refs.tree.getCurrentNode()
if (!currentNode) {
this.$message({
message: '请选择政策体系',
type: 'warning'
})
return
}
this.$emit('choose', currentNode)
this.cancel()
}
}
}
</script>
<style scoped>
/deep/ .is-leaf-none{
position: relative;
display: inline-block;
width: 15px;
height: 15px;
background: url('~@/assets/images/shangqi/img/none-file-new.png');
background-size:100% 100%;
}
/deep/ .is-show{
position: relative;
display: inline-block;
width: 15px;
height: 15px;
background:url('~@/assets/images/shangqi/img/tree.png');
background-size:100% 100%;
}
</style>
+1 -1
View File
@@ -61,7 +61,7 @@
<template slot="title">
<div class="modular-header">
<div class="modular-header-title">
<i class="icon-modular-title" /><span>会议议题</span>
<i class="icon-modular-title" /><span>会议议题{{ index + 1 }}</span>
</div>
</div>
</template>
@@ -53,7 +53,7 @@
<p class="half"><label style=" margin-right: 157px;">发文日期</label><span>{{ sarStandardsInfoEO.issueTime || '-' }}</span></p>
<p class="half"><label style=" margin-right: 157px;">发文单位</label><span>{{ sarStandardsInfoEO.issueCompany || '-' }}</span></p>
<p class="half"><label style=" margin-right: 125px;">征集意见周期</label><span>{{ formatDateFunc(sarStandardsInfoEO.commentCycleStart) || '' }} - {{formatDateFunc(sarStandardsInfoEO.commentCycleEnd) || ''}}</span></p>
<p class="half"><label style=" margin-right: 156px;">标准状态</label><span style="">{{ sarStandardsInfoEO.standStatusShow || '-' }}</span></p>
<p class="half"><label style=" margin-right: 156px;">政策状态</label><span style="">{{ sarStandardsInfoEO.standStatusShow || '-' }}</span></p>
<p class="half"><label style=" margin-right: 157px;">适用车型</label><span>{{ sarStandardsInfoEO.lawsSycx || '-' }}</span></p>
<p class="half"><label style=" margin-right: 95px;">是否纳入认证清单</label><span>{{ sarStandardsInfoEO.isRelateAccess === '1' ? '是' : (sarStandardsInfoEO.isRelateAccess ? '否':'-')}}</span></p>
<p class="half"><label style=" margin-right: 190px;">年度</label><span>{{ sarStandardsInfoEO.lawsYear || '-' }}</span></p>
@@ -64,11 +64,17 @@
<span v-else>{{ sarStandardsInfoEO.lawsNotisyncNum || '-' }}</span>
</p>
<!--<p class="half"><label style=" margin-right: 125px;">通知文号链接</label><span>{{ sarStandardsInfoEO.notisyncNumLink || '-' }}</span></p>-->
<p class="half"><label style=" margin-right: 157px;">信息</label><span>{{ sarStandardsInfoEO.lawsBulletin || '-' }}</span></p>
<p class="half"><label style=" margin-right: 157px;">信息</label><span>{{ sarStandardsInfoEO.lawsBulletin || '-' }}</span></p>
<p class="half"><label style=" margin-right: 157px;">参考消息</label><span>{{ sarStandardsInfoEO.referenceNews || '-' }}</span></p>
<p class="half"><label style=" margin-right: 190px;">标签</label><span>{{ sarStandardsInfoEO.lawsLabel || '-' }}</span></p>
<p class="half"><label style=" margin-right: 62px;">备注最终政策发布</label><span>{{ sarStandardsInfoEO.lawsRemark || '-' }}</span></p>
<!--<p class="half"><label style=" margin-right: 157px;">适用区域</label><span>{{ sarStandardsInfoEO.lawsSyqy || '-' }}</span></p>-->
<!--<p class="half"><label style=" margin-right: 157px;">政策文号</label><span>{{ sarStandardsInfoEO.lawsNo || '-' }}</span></p>-->
<!-- <p class="half"><label style=" margin-right: 62px;">备注最终政策发布</label><span>{{ sarStandardsInfoEO.lawsRemark || '-' }}</span></p>-->
<p class="half"><label style=" margin-right: 157px;">政策要点</label><span>{{ sarStandardsInfoEO.lawsKeyPoint || '-' }}</span></p>
<p class="half"><label style=" margin-right: 190px;">备注</label><span>{{ sarStandardsInfoEO.lawsRemark || '-' }}</span></p>
<p class="half">
<label style=" margin-right: 125px;">政策原文链接</label>
<a v-if="sarStandardsInfoEO.lawsOriginalLink && sarStandardsInfoEO.lawsOriginalLink !== ''" :href="sarStandardsInfoEO.lawsOriginalLink" target="_blank">{{ sarStandardsInfoEO.lawsOriginalLink }}</a>
<span v-else>-</span>
</p>
<template v-for="(child, childIndex) in item.child2">
<p class="half">
<label style=" margin-right: 156px;">{{child.attrName}}</label>
@@ -1,87 +1,101 @@
<template>
<el-drawer :title="title"
:visible="showDrawer"
:wrapperClosable="false"
@close="onClose"
size="1050px">
<el-drawer
:title="title"
:visible="showDrawer"
:wrapperClosable="false"
size="1050px"
@close="onClose"
>
<div class="drawer-content">
<el-form
v-if="showDrawer && reloadForm"
ref="formRef"
:model="form"
:rules="rules"
class="label-input-form"
v-if="showDrawer && reloadForm"
ref="formRef"
:model="form"
:rules="rules"
class="label-input-form"
>
<el-col :span="24"><div class="divider-line">基础信息</div></el-col>
<el-row>
<el-col :span="12">
<el-form-item label="会议名称" prop="meetingName" label-width="150px" class="add-form-item">
<el-input v-model="form.meetingName"
placeholder="请输入会议名称"
clearable></el-input>
<el-input
v-model="form.meetingName"
placeholder="请输入会议名称"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="课题名称" prop="topicName" label-width="150px" class="add-form-item">
<el-input v-model="form.topicName"
placeholder="请输入课题名称"
clearable></el-input>
<el-input
v-model="form.topicName"
placeholder="请输入课题名称"
clearable
/>
<el-button
type="primary"
class="common-button-primary"
size="mini"
style="position:absolute;top: 10px;right: 0;"
@click="handleGetTopic"
>调取课题</el-button>
type="primary"
class="common-button-primary"
size="mini"
style="position:absolute;top: 10px;right: 0;"
@click="handleGetTopic"
>
调取课题
</el-button>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="会议主办单位" prop="meetingOrganizer" label-width="150px" class="add-form-item">
<el-input v-model="form.meetingOrganizer"
placeholder="请输入会议主办单位"
clearable></el-input>
<el-input
v-model="form.meetingOrganizer"
placeholder="请输入会议主办单位"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="12">
<CustomDatePick
:config="{
attrName: '会议时间',
attrField: 'meetingTime'
}"
v-model="form.meetingTime"
></CustomDatePick>
v-model="form.meetingTime"
:config="{
attrName: '会议时间',
attrField: 'meetingTime'
}"
/>
</el-col>
<el-col :span="12">
<el-form-item label="会议地点" prop="meetingAddress" label-width="150px" class="add-form-item">
<el-input v-model="form.meetingAddress"
placeholder="请输入会议地点"
clearable></el-input>
<el-input
v-model="form.meetingAddress"
placeholder="请输入会议地点"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="参会人员" prop="participants" label-width="150px" class="add-form-item">
<el-input v-model="form.participants"
placeholder="请输入参会人员"
clearable></el-input>
<el-input
v-model="form.participants"
placeholder="请输入参会人员"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="12">
<custom-file
:config="{
attrName: '会议纪要',
attrField: 'meetingMinutes'
}"
v-model="form.meetingMinutes"
></custom-file>
v-model="form.meetingMinutes"
:config="{
attrName: '会议纪要',
attrField: 'meetingMinutes'
}"
/>
</el-col>
<el-col :span="24">
<CustomTextarea
:config="{
v-model="form.meetingContent"
:config="{
attrName: '会议主要内容',
attrField: 'meetingContent'
}"
v-model="form.meetingContent"
></CustomTextarea>
/>
</el-col>
</el-row>
<el-col :span="24"><div class="divider-line">会议分类</div></el-col>
@@ -89,13 +103,16 @@
<el-col :span="12">
<el-form-item label="1级会议分类" prop="firstMeetingType" label-width="150px" class="add-form-item">
<template slot="label">1级会议分类</template>
<el-select v-model="form.firstMeetingType"
placeholder="请选择1级会议分类"
clearable>
<el-select
v-model="form.firstMeetingType"
placeholder="请选择1级会议分类"
clearable
>
<el-option
v-for="opt in dict.firstMeetingType"
:key="opt.value"
:value="opt.value === undefined ? '' :opt.value" :label="opt.label"
v-for="opt in dict.firstMeetingType"
:key="opt.value"
:value="opt.value === undefined ? '' :opt.value"
:label="opt.label"
>
{{ opt.label }}
</el-option>
@@ -105,13 +122,16 @@
<el-col :span="12">
<el-form-item label="2级会议分类" prop="secondMeetingType" label-width="150px" class="add-form-item">
<template slot="label">2级会议分类</template>
<el-select v-model="form.secondMeetingType"
placeholder="请选择2级会议分类"
clearable>
<el-select
v-model="form.secondMeetingType"
placeholder="请选择2级会议分类"
clearable
>
<el-option
v-for="opt in dict.secondMeetingType"
:key="opt.value"
:value="opt.value === undefined ? '' :opt.value" :label="opt.label"
v-for="opt in dict.secondMeetingType"
:key="opt.value"
:value="opt.value === undefined ? '' :opt.value"
:label="opt.label"
>
{{ opt.label }}
</el-option>
@@ -121,65 +141,115 @@
</el-row>
<el-row>
<template v-for="(item, index) in form.meetingTopicList">
<el-col :span="24">
<div class="divider-line">
会议议题
<el-button type="primary" size="mini" icon="el-icon-plus" @click="addMeetingTopic"
:style="{visibility: (index === form.meetingTopicList.length - 1) ? 'visible' : 'collapse'}"></el-button>
<el-button type="primary" size="mini" icon="el-icon-minus" @click="removeMeetingTopic(index)"
:style="{visibility: (form.meetingTopicList.length < 2 && index === 0) ? 'collapse' : 'visible'}"></el-button>
</div>
</el-col>
<el-col :span="24">
<div class="divider-line" style="display: flex;align-items: center;justify-content: space-between">
<div>
会议议题{{ index + 1 }}
<el-button
style="margin-left: 10px"
type="primary"
size="mini"
icon="el-icon-plus"
:style="{visibility: (index === form.meetingTopicList.length - 1) ? 'visible' : 'collapse'}"
@click="addMeetingTopic"
/>
<el-button
type="primary"
size="mini"
icon="el-icon-minus"
:style="{visibility: (form.meetingTopicList.length < 2 && index === 0) ? 'collapse' : 'visible'}"
@click="removeMeetingTopic(index)"
/>
</div>
<div style="display: flex;align-items: center">
<i
class="el-icon-bottom move-icon"
style="transform: rotate(180deg)"
:style="{visibility: (index === 0) ? 'collapse' : 'visible'}"
@click="moveOrder(index, 'top')"
/>
<i
class="el-icon-bottom move-icon"
:style="{visibility: (index === form.meetingTopicList.length - 1) ? 'collapse' : 'visible'}"
@click="moveOrder(index, 'bottom')"
/>
</div>
</div>
</el-col>
<el-col :span="12">
<el-form-item label="议题名称" :prop="'meetingTopicList.' + index + '.agendaName'" :rules="rules.agendaName" label-width="150px" class="add-form-item">
<el-input v-model="item.agendaName"
placeholder="请输入议题名称"
clearable></el-input>
<el-form-item
label="议题名称"
:prop="'meetingTopicList.' + index + '.agendaName'"
:rules="rules.agendaName"
label-width="150px"
class="add-form-item"
>
<el-input
v-model="item.agendaName"
placeholder="请输入议题名称"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="12">
<customFile
v-model="item.agendaMaterials"
:config="{
attrName: '议题材料',
attrField: `meetingTopicList.${index}.agendaMaterials`
}"
:rules="rules.agendaMaterials"
v-model="item.agendaMaterials"
></customFile>
/>
</el-col>
<el-col :span="12">
<el-form-item label="汇报人" :prop="'meetingTopicList.' + index + '.reporter'" :rules="rules.reporter" label-width="150px" class="add-form-item">
<el-input v-model="item.reporter"
placeholder="请输入汇报人"
clearable></el-input>
<el-form-item
label="汇报人"
:prop="'meetingTopicList.' + index + '.reporter'"
:rules="rules.reporter"
label-width="150px"
class="add-form-item"
>
<el-input
v-model="item.reporter"
placeholder="请输入汇报人"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="汇报人单位" :prop="'meetingTopicList.' + index + '.reportingUnit'" :rules="rules.reportingUnit" label-width="150px" class="add-form-item">
<el-input v-model="item.reportingUnit"
placeholder="请输入汇报人单位"
clearable></el-input>
<el-form-item
label="汇报人单位"
:prop="'meetingTopicList.' + index + '.reportingUnit'"
:rules="rules.reportingUnit"
label-width="150px"
class="add-form-item"
>
<el-input
v-model="item.reportingUnit"
placeholder="请输入汇报人单位"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="24">
<CustomTextarea
:config="{
attrName: '议题主要内容',
attrField: `meetingTopicList.${index}.agendaContent`
}"
:rules="rules.agendaContent"
v-model="item.agendaContent"
></CustomTextarea>
v-model="item.agendaContent"
:config="{
attrName: '议题主要内容',
attrField: `meetingTopicList.${index}.agendaContent`
}"
:rules="rules.agendaContent"
/>
</el-col>
</template>
</el-row>
</el-form>
</div>
<div class="drawer-footer">
<el-button icon="el-icon-check" type="primary" @click="onSubmit" :loading="isSubmit">提交</el-button>
<el-button icon="el-icon-close" @click="onClose" :loading="isSubmit">取消</el-button>
<el-button icon="el-icon-check" type="primary" :loading="isSubmit" @click="onSubmit">提交</el-button>
<el-button icon="el-icon-close" :loading="isSubmit" @click="onClose">取消</el-button>
</div>
<TopicsTable ref="TopicsTableRef" @dragIn="dragIn"></TopicsTable>
<TopicsTable ref="TopicsTableRef" @dragIn="dragIn" />
</el-drawer>
</template>
@@ -187,10 +257,10 @@
import CustomDatePick from '@/components/CustomFormComponents/DatePicker'
import CustomFile from '@/components/CustomFormComponents/File'
import CustomTextarea from '@/components/CustomFormComponents/Textarea'
import TopicsTable from "./TopicsTable";
import TopicsTable from './TopicsTable';
export default {
name: "editDrawer",
name: 'EditDrawer',
components: {
CustomDatePick,
CustomFile,
@@ -213,52 +283,52 @@ export default {
type: Object
}
},
data (){
data () {
const rules = {
meetingName: [
{required: true, type: 'string', message: '会议名称不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '会议名称不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change' }
],
meetingOrganizer: [
{required: true, type: 'string', message: '会议主办单位不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '会议主办单位不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '会议主办单位不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '会议主办单位不能超过500个字符', trigger: 'change' }
],
meetingTime: [
{required: true, message: '会议时间不能为空', trigger: 'change'}
{ required: true, message: '会议时间不能为空', trigger: 'change' }
],
meetingAddress: [
{required: true, type: 'string', message: '会议地点不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '会议地点不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '会议地点不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '会议地点不能超过500个字符', trigger: 'change' }
],
participants: [
{required: true, type: 'string', message: '参会人员不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '参会人员不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '参会人员不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '参会人员不能超过500个字符', trigger: 'change' }
],
meetingContent: [
{required: true, type: 'string', message: '会议主要内容不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '会议主要内容不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '会议主要内容不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '会议主要内容不能超过500个字符', trigger: 'change' }
],
firstMeetingType: [
{required: true, message: '1级会议分类不能为空', trigger: 'change'}
{ required: true, message: '1级会议分类不能为空', trigger: 'change' }
],
secondMeetingType: [
{required: true, message: '2级会议分类不能为空', trigger: 'change'}
{ required: true, message: '2级会议分类不能为空', trigger: 'change' }
],
agendaName: [
{required: true, type: 'string', message: '议题名称不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '议题名称不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '议题名称不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '议题名称不能超过500个字符', trigger: 'change' }
],
reporter: [
{required: true, type: 'string', message: '汇报人不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '汇报人不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '汇报人不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '汇报人不能超过500个字符', trigger: 'change' }
],
reportingUnit: [
{required: true, type: 'string', message: '汇报人单位不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '汇报人单位不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '汇报人单位不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '汇报人单位不能超过500个字符', trigger: 'change' }
],
agendaContent: [
{required: true, type: 'string', message: '议题主要内容不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '议题主要内容不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '议题主要内容不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '议题主要内容不能超过500个字符', trigger: 'change' }
],
}
const form = {
@@ -288,7 +358,7 @@ export default {
reloadForm: true,
api: {
add: 'lawss/insideOutsideMeeting/addMeetingInfo',
delete :'lawss/insideOutsideMeeting/deleteMeetingInfo',
delete: 'lawss/insideOutsideMeeting/deleteMeetingInfo',
update: 'lawss/insideOutsideMeeting/updateMeetingInfo'
}
}
@@ -311,10 +381,10 @@ export default {
reportingUnit: '',
agendaContent: ''
}
this.form.meetingTopicList = [...this.form.meetingTopicList, meetingTopicItem]
this.form.meetingTopicList = [ ...this.form.meetingTopicList, meetingTopicItem ]
},
removeMeetingTopic (index) {
let res = []
const res = []
this.form.meetingTopicList.forEach((item, i) => {
if (i !== index) {
res.push(item)
@@ -353,6 +423,9 @@ export default {
this.$refs.formRef.validate(valid => {
if (valid) {
this.isSubmit = true
this.form.meetingTopicList.forEach((item, index) => {
item.sort = index
})
if (this.title === '新增') {
this.$http._postData(this.api.add, this.form).then(res => {
if (res.ok) {
@@ -382,7 +455,21 @@ export default {
},
dragIn (val) {
this.$set(this.form, 'topicName', val.topicName)
}
},
moveOrder (index, type) {
if (type === 'top') {
const obj1 = this.form.meetingTopicList[index]
const obj2 = this.form.meetingTopicList[index - 1]
this.$set(this.form.meetingTopicList, index - 1, obj1)
this.$set(this.form.meetingTopicList, index, obj2)
}
if (type === 'bottom') {
const obj1 = this.form.meetingTopicList[index]
const obj2 = this.form.meetingTopicList[index + 1]
this.$set(this.form.meetingTopicList, index + 1, obj1)
this.$set(this.form.meetingTopicList, index, obj2)
}
},
}
}
</script>
@@ -403,4 +490,11 @@ export default {
background: #fff;
z-index: 999;
}
.move-icon {
font-size: 20px;
cursor: pointer
}
.move-icon:hover {
color: #409EFF;
}
</style>
+173 -137
View File
@@ -4,200 +4,236 @@
<div class="search-area">
<el-form :modal="searchForm" :inline="true" class="label-input-form">
<el-formItem label="会议名称" prop="meetingName" class="search-item">
<el-input v-model="searchForm.meetingName" clearable placeholder="请输入会议名称" :maxlength="100" @keyup.enter.native="onSearch"/>
<el-input
v-model="searchForm.meetingName"
clearable
placeholder="请输入会议名称"
:maxlength="100"
@keyup.enter.native="onSearch"
/>
</el-formItem>
<el-formItem label="会议主办单位" prop="meetingOrganizer" class="search-item">
<el-input v-model="searchForm.meetingOrganizer" clearable placeholder="请输入会议主办单位" :maxlength="100" @keyup.enter.native="onSearch"/>
<el-input
v-model="searchForm.meetingOrganizer"
clearable
placeholder="请输入会议主办单位"
:maxlength="100"
@keyup.enter.native="onSearch"
/>
</el-formItem>
<el-formItem label="会议时间" class="search-item" style="margin-right: 0">
<el-date-picker
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
type="date"
clearable
:editable="true"
placeholder="选择开始时间"
v-model="searchForm.meetingTimeBegin"
>
</el-date-picker>
v-model="searchForm.meetingTimeBegin"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
type="date"
clearable
:editable="true"
placeholder="选择开始时间"
/>
</el-formItem>
<el-form-item label="至" label-width="25px" class="search-item">
<el-date-picker
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
type="date"
clearable
:editable="true"
placeholder="选择结束时间"
v-model="searchForm.meetingTimeEnd"
>
</el-date-picker>
v-model="searchForm.meetingTimeEnd"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
type="date"
clearable
:editable="true"
placeholder="选择结束时间"
/>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
type="primary"
size="mini"
class="common-button-primary"
v-btn-permission="'520f8524252e76e751a883a0a8a8615c'"
@click="onSearch">
v-btn-permission="'520f8524252e76e751a883a0a8a8615c'"
type="primary"
size="mini"
class="common-button-primary"
@click="onSearch"
>
查询
</el-button>
<el-button
size="mini"
class="common-button-default"
v-btn-permission="'6a9483964b7b49dd473ef9e6fd4a649e'"
@click="onClear">清空
v-btn-permission="'6a9483964b7b49dd473ef9e6fd4a649e'"
size="mini"
class="common-button-default"
@click="onClear"
>
清空
</el-button>
<el-button
size="mini"
type="primary"
class="common-button-primary"
v-btn-permission="'7f98cd8b424d6ad83b1770a6576993fc'"
@click="advancedSearch">高级检索
v-btn-permission="'7f98cd8b424d6ad83b1770a6576993fc'"
size="mini"
type="primary"
class="common-button-primary"
@click="advancedSearch"
>
高级检索
</el-button>
</el-form-item>
</el-form>
</div>
<!--按钮区-->
<div class="action-bar">
<el-button class="common-button-default export-button"
size="mini"
title="不勾选时默认导出所有筛选项;勾选时仅导出勾选项"
v-btn-permission="'6d749caee927a480fa99e5ddc48d8e05'"
@click="exportData"><i class="iconfont">&#xe6e9;</i>导出
<el-button
v-btn-permission="'6d749caee927a480fa99e5ddc48d8e05'"
class="common-button-default export-button"
size="mini"
title="不勾选时默认导出所有筛选项;勾选时仅导出勾选项"
@click="exportData"
>
<i class="iconfont">&#xe6e9;</i>导出
</el-button>
<el-button class="common-button-default in-button"
size="mini"
v-btn-permission="'b168e0381ec7ba5d762c36ad2935542f'"
@click="addImportModal"><i class="iconfont">&#xe6de;</i>导入
<el-button
v-btn-permission="'b168e0381ec7ba5d762c36ad2935542f'"
class="common-button-default in-button"
size="mini"
@click="addImportModal"
>
<i class="iconfont">&#xe6de;</i>导入
</el-button>
<el-button class="common-button-default in-button"
size="mini"
v-btn-permission="'7990fb64c468c2d37cc2246fc3cb694e'"
@click="handleMoudel"><i class="iconfont">&#xe6de;</i>模板下载
<el-button
v-btn-permission="'7990fb64c468c2d37cc2246fc3cb694e'"
class="common-button-default in-button"
size="mini"
@click="handleMoudel"
>
<i class="iconfont">&#xe6de;</i>模板下载
</el-button>
<el-button type="primary"
class="common-button-primary add-button"
size="mini"
v-btn-permission="'f0e663244c1f823caa07e99bfc6535dc'"
@click="openDrawer('add')"
><i class="el-icon-plus"></i>新增
<el-button
v-btn-permission="'f0e663244c1f823caa07e99bfc6535dc'"
type="primary"
class="common-button-primary add-button"
size="mini"
@click="openDrawer('add')"
>
<i class="el-icon-plus" />新增
</el-button>
</div>
<!-- 表格 -->
<div class="content">
<el-table
ref="selection"
:data="data"
tooltip-effect="dark"
style="width:100%;height: calc(100% - 57px)"
height="string"
border
class="drag-table"
@sort-change="sortChange"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px', fontWeight: 'bold', height: '48px', padding: 0}"
:cell-style="{padding: 0}"
@selection-change="selectionChange"
ref="selection"
:data="data"
tooltip-effect="dark"
style="width:100%;height: calc(100% - 57px)"
height="string"
border
class="drag-table"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px', fontWeight: 'bold', height: '48px', padding: 0}"
:cell-style="{padding: 0}"
@sort-change="sortChange"
@selection-change="selectionChange"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
type="selection"
width="55"
align="center"
/>
<el-table-column
type="index"
width="55"
label="序号"
align="center">
type="index"
width="55"
label="序号"
align="center"
>
<template slot-scope="{scope, column, $index}">
{{ ($index + 1) + (searchForm.page - 1) * searchForm.pageSize }}
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="meetingName"
label="会议名称"
align="center"
sortable="custom"
show-overflow-tooltip
prop="meetingName"
label="会议名称"
align="center"
sortable="custom"
>
<template slot-scope="{row, column, $index}">
<a class="table-jump" style="color: #2d8cf0" @click="handlePreview(row.id)">{{ row.meetingName }}</a>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="meetingOrganizer"
label="会议主办单位"
align="center"
sortable="custom"
>
</el-table-column>
show-overflow-tooltip
prop="meetingOrganizer"
label="会议主办单位"
align="center"
sortable="custom"
/>
<el-table-column
show-overflow-tooltip
prop="meetingTime"
label="会议时间"
align="center"
sortable="custom"
>
</el-table-column>
show-overflow-tooltip
prop="meetingTime"
label="会议时间"
align="center"
sortable="custom"
/>
<el-table-column
show-overflow-tooltip
prop="meetingAddress"
label="会议地点"
align="center"
sortable="custom"
>
</el-table-column>
show-overflow-tooltip
prop="meetingAddress"
label="会议地点"
align="center"
sortable="custom"
/>
<el-table-column
show-overflow-tooltip
prop="agendaNameStr"
label="议题名称"
align="center"
sortable="custom"
>
</el-table-column>
show-overflow-tooltip
prop="agendaNameStr"
label="议题名称"
align="center"
sortable="custom"
/>
<el-table-column
v-if="isPermission('62cdf3d570941c154d28371632ccfa2e,71155d105e930bb8e7881a8a9809646a') > 0"
prop="action"
label="操作"
align="center"
v-if="isPermission('62cdf3d570941c154d28371632ccfa2e,71155d105e930bb8e7881a8a9809646a') > 0"
prop="action"
label="操作"
align="center"
>
<template slot-scope="scope">
<a class="table-jump" v-btn-permission="'62cdf3d570941c154d28371632ccfa2e'" style="color: #2d8cf0" @click="openDrawer('edit', scope.row)">编辑</a>
<a class="table-jump" v-btn-permission="'71155d105e930bb8e7881a8a9809646a'" style="color: #f56c6c;margin-left: 10px" @click="onDelete(scope.row.id)">删除</a>
<a v-btn-permission="'62cdf3d570941c154d28371632ccfa2e'" class="table-jump" style="color: #2d8cf0" @click="openDrawer('edit', scope.row)">编辑</a>
<a v-btn-permission="'71155d105e930bb8e7881a8a9809646a'" class="table-jump" style="color: #f56c6c;margin-left: 10px" @click="onDelete(scope.row.id)">删除</a>
</template>
</el-table-column>
</el-table>
<pagination :page="searchForm.page" :total="total" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
<pagination :page="searchForm.page" :total="total" @pageChange="pageChange" @pageSizeChange="pageSizeChange" />
<loading :loading="loading">数据获取中...</loading>
</div>
<!-- 高级搜索 -->
<AdvancedSearch :visible.sync="advancedSearchVisible" :form="advancedSearchForm" :dict="dict" @search="onSearch" @resetAdvancedSearchForm="resetAdvancedSearchForm"></AdvancedSearch>
<AdvancedSearch
:visible.sync="advancedSearchVisible"
:form="advancedSearchForm"
:dict="dict"
@search="onSearch"
@resetAdvancedSearchForm="resetAdvancedSearchForm"
/>
<!-- 新增编辑 -->
<editDrawer ref="editDrawerRef" :dict="dict" :showDrawer.sync="showDrawer" :title="titleDrawer" :editForm="editForm" @load="getData"></editDrawer>
<editDrawer
ref="editDrawerRef"
:dict="dict"
:showDrawer.sync="showDrawer"
:title="titleDrawer"
:editForm="editForm"
@load="getData"
/>
<!-- 导入 -->
<ImportZip :visible.sync="importModalShowFlag" :action="importExcelUrl" @onSuccess="getData"></ImportZip>
<ImportZip :visible.sync="importModalShowFlag" :action="importExcelUrl" @onSuccess="getData" />
<!-- 导出 -->
<ExportDialog ref="exportDialogRef" @exportName="handleExport"></ExportDialog>
<ExportDialog ref="exportDialogRef" @exportName="handleExport" />
</div>
</template>
<script>
import editDrawer from "./components/editDrawer";
import editDrawer from './components/editDrawer';
import AdvancedSearch from './components/advancedSearch'
import ImportZip from '@/components/hzwlComponents/importZip'
import ExportDialog from '@/components/hzwlComponents/exportDialog'
import store from "@/store";
import store from '@/store';
export default {
name: "meeting",
name: 'Meeting',
components: {
editDrawer,
AdvancedSearch,
ImportZip,
ExportDialog
},
data(){
data () {
return {
searchForm: {},
advancedSearchForm: {},
@@ -216,18 +252,18 @@ export default {
editForm: void 0,
api: {
page: 'lawss/insideOutsideMeeting/page',
delete :'lawss/insideOutsideMeeting/deleteMeetingInfo'
delete: 'lawss/insideOutsideMeeting/deleteMeetingInfo'
}
}
},
created() {
created () {
this.getDicTypeListCode()
this.getData()
},
methods: {
// 点击查看
handlePreview(id) {
let routeUrl = this.$router.resolve({
handlePreview (id) {
const routeUrl = this.$router.resolve({
name: 'meetingDetail',
params: { id }
})
@@ -235,13 +271,13 @@ export default {
},
isPermission (value) {
let hasCount = 0
let set =new Set( value.split(","))
let menuList = store.getters.getMenuList
const set = new Set( value.split(','))
const menuList = store.getters.getMenuList
if (menuList === '') {
return hasCount
} else {
menuList.map((menu) => {
if ( set.has(menu.id)|| value === undefined || value === '') {
if ( set.has(menu.id) || value === undefined || value === '') {
hasCount++
}
})
@@ -251,14 +287,14 @@ export default {
async getData () {
this.searchForm.pageSize = this.searchForm.pageSize || this.$store.getters.userInfo.configContent
this.searchForm.page = this.searchForm.page || 1
let params = { ...this.searchForm, ...this.advancedSearchForm }
const res = await this.$http._getData(this.api.page, params, {_this:this,loading: 'loading'})
const params = { ...this.searchForm, ...this.advancedSearchForm }
const res = await this.$http._getData(this.api.page, params, { _this: this, loading: 'loading' })
if (res.ok && res.data) {
this.data = res.data.list
this.total = res.data.count
}
},
onSearch(){
onSearch () {
this.getData()
},
onClear () {
@@ -283,7 +319,7 @@ export default {
}
},
// 表格排序
sortChange({ column, prop, order }) {
sortChange ({ column, prop, order }) {
this.searchForm.sortField = prop
this.searchForm.sortMode = 'asc'
if (order === 'descending') {
@@ -317,23 +353,23 @@ export default {
exportIds: this.selectedList.join(',')
}
let query = '?'
for(let i in params){
if (params[i] && params[i]!=='') {
for(const i in params) {
if (params[i] && params[i] !== '') {
query = query + i + '=' + params[i] + '&'
}
}
query = query.slice(0,-1)
query = query.slice(0, -1)
window.open('/api/lawss/insideOutsideMeeting/exportMeetingInfo' + query)
this.$refs.exportDialogRef.cancel()
this.$message.success('导出信息成功')
},
// 导入
addImportModal() {
addImportModal () {
this.importModalShowFlag = true
this.importExcelUrl = '/api/lawss/insideOutsideMeeting/importMeetingInfo'
},
// 模板下载
handleMoudel(){
handleMoudel () {
window.open('/api/lawss/insideOutsideMeeting/exportTemplateFile?fileName=内外部会议导入模板')
},
// 新增编辑
@@ -348,7 +384,7 @@ export default {
this.$set(this, 'editForm', row)
break
}
this.$nextTick(()=>{
this.$nextTick(() => {
this.showDrawer = true
})
},
@@ -1,218 +1,151 @@
<template>
<el-drawer
title="高级搜索"
size="800px"
:wrapperClosable="false"
:visible.sync="isAdvancedSearch">
title="高级搜索"
size="800px"
:wrapperClosable="false"
:visible.sync="isAdvancedSearch"
>
<div class="demo-drawer-content">
<el-form
:model="lawsStandInfoSearch"
class="label-input-form table-lattice"
label-width="80px">
:model="lawsStandInfoSearch"
class="label-input-form table-lattice"
label-width="80px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="12">
<SelectFormItem label="1级政策分类"
title="1级政策分类"
v-model="lawsStandInfoSearch.lawsTypeFirstLevel"
:options="dict.lawsTypeFirstLevelOptions">
</SelectFormItem>
<SelectFormItem label="3级政策分类"
title="3级政策分类"
v-model="lawsStandInfoSearch.lawsTypeThirdLevel"
:options="dict.lawsTypeThirdLevelOptions">
</SelectFormItem>
<InputFormItem label="政策名称"
title="政策名称"
v-model="lawsStandInfoSearch.lawsName">
</InputFormItem>
<InputFormItem label="政策文号"
title="政策文号"
v-model="lawsStandInfoSearch.lawsNo">
</InputFormItem>
<InputFormItem label="发文单位"
title="发文单位"
v-model="lawsStandInfoSearch.issueCompany">
</InputFormItem>
<SelectFormItem label="标准状态"
title="标准状态"
v-model="lawsStandInfoSearch.lawsTextState"
:options="dict.lawsTextStateOptions">
</SelectFormItem>
<SelectFormItem label="是否纳入认证清单"
title="是否纳入认证清单"
v-model="lawsStandInfoSearch.isRelateAccess"
:options="isRelateAccessOptions || []">
</SelectFormItem>
<InputFormItem label="福田转发通知文号"
title="福田转发通知文号"
v-model="lawsStandInfoSearch.lawsNotisyncNum">
</InputFormItem>
<InputFormItem label="信息简报"
title="信息简报"
v-model="lawsStandInfoSearch.lawsBulletin">
</InputFormItem>
<InputFormItem label="备注(最终政策发布)"
title="备注(最终政策发布)"
v-model="lawsStandInfoSearch.lawsRemark">
</InputFormItem>
<!--#region-->
<!--<el-form-item label="政策分类" title="政策分类" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="lawsStandInfoSearch.lawsType" filterable clearable>-->
<!-- <el-option-->
<!-- v-for="item in dict.lawsTypeOptions"-->
<!-- placeholder="请选择"-->
<!-- :key="item.value"-->
<!-- :value="item.value"-->
<!-- :label="item.label"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!--</el-form-item>-->
<!--<el-form-item label="发文日期" class="add-form-item form-item-disabled">-->
<!-- <el-datePicker v-model="lawsStandInfoSearch.issueTime"-->
<!-- :editable="false"-->
<!-- placeholder="请选择发文日期"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- clearable></el-datePicker>-->
<!--</el-form-item>-->
<!--<el-form-item label="适用区域" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="lawsStandInfoSearch.lawsSyqy" filterable clearable>-->
<!-- <el-option-->
<!-- v-for="item in dict.lawsSyqyOptions"-->
<!-- placeholder="请选择"-->
<!-- :key="item.value"-->
<!-- :value="item.value"-->
<!-- :label="item.label"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!--</el-form-item>-->
<!--<el-form-item label="年度" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="lawsStandInfoSearch.lawsYear" filterable clearable>-->
<!-- <el-option-->
<!-- v-for="item in dict.lawsYearOptions"-->
<!-- placeholder="请选择"-->
<!-- :key="item.value"-->
<!-- :value="item.value"-->
<!-- :label="item.label"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!--</el-form-item>-->
<!--<el-form-item label="信息简报" class="add-form-item form-item-disabled">-->
<!-- <el-input v-model="lawsStandInfoSearch.lawsBulletin" clearable-->
<!-- placeholder="请输入政策文号"-->
<!-- ></el-input>-->
<!--</el-form-item>-->
<!--#endregion-->
<SelectFormItem
v-model="lawsStandInfoSearch.lawsTypeFirstLevel"
label="1级政策分类"
title="1级政策分类"
:options="dict.lawsTypeFirstLevelOptions"
/>
<SelectFormItem
v-model="lawsStandInfoSearch.lawsTypeThirdLevel"
label="3级政策分类"
title="3级政策分类"
:options="dict.lawsTypeThirdLevelOptions"
/>
<InputFormItem
v-model="lawsStandInfoSearch.lawsName"
label="政策名称"
title="政策名称"
/>
<InputFormItem
v-model="lawsStandInfoSearch.lawsNo"
label="政策文号"
title="政策文号"
/>
<InputFormItem
v-model="lawsStandInfoSearch.issueCompany"
label="发文单位"
title="发文单位"
/>
<SelectFormItem
v-model="lawsStandInfoSearch.lawsTextState"
label="政策状态"
title="政策状态"
:options="dict.lawsTextStateOptions"
/>
<SelectFormItem
v-model="lawsStandInfoSearch.isRelateAccess"
label="是否纳入认证清单"
title="是否纳入认证清单"
:options="isRelateAccessOptions || []"
/>
<InputFormItem
v-model="lawsStandInfoSearch.lawsNotisyncNum"
label="福田转发通知文号"
title="福田转发通知文号"
/>
<InputFormItem
v-model="lawsStandInfoSearch.lawsBulletin"
label="信息月报"
title="信息月报"
/>
<!-- <InputFormItem-->
<!-- v-model="lawsStandInfoSearch.lawsRemark"-->
<!-- label="备注(最终政策发布)"-->
<!-- title="备注(最终政策发布)"-->
<!-- />-->
<SelectMultipleFormItem
v-model="lawsStandInfoSearch.lawsLabel"
label="标签"
title="标签"
:options="dict.lawsLabelOptions"
/>
<InputFormItem
v-model="lawsStandInfoSearch.lawsRemark"
label="备注"
title="备注"
/>
</el-col>
<el-col :span="12">
<SelectFormItem label="2级政策分类"
title="2级政策分类"
v-model="lawsStandInfoSearch.lawsTypeSecondLevel"
:options="dict.lawsTypeSecondLevelOptions">
</SelectFormItem>
<SelectFormItem label="4级政策分类"
title="4级政策分类"
v-model="lawsStandInfoSearch.lawsTypeFourthLevel"
:options="dict.lawsTypeFourthLevelOptions">
</SelectFormItem>
<InputFormItem label="英文名称"
title="英文名称"
v-model="lawsStandInfoSearch.lawsEnName">
</InputFormItem>
<DatePickerFormItem label="发文日期"
title="发文日期"
v-model="lawsStandInfoSearch.issueTime">
</DatePickerFormItem>
<DataRangePickerFormItem label="征集意见周期"
title="征集意见周期"
:startTime.sync="lawsStandInfoSearch.commentCycleStart"
:endTime.sync="lawsStandInfoSearch.commentCycleEnd">
</DataRangePickerFormItem>
<SelectMultipleFormItem label="适用车型"
title="适用车型"
v-model="lawsStandInfoSearch.lawsSycx"
:options="dict.lawsSycxOptions || []">
</SelectMultipleFormItem>
<SelectFormItem label="年度"
title="年度"
v-model="lawsStandInfoSearch.lawsYear"
:options="dict.lawsYearOptions">
</SelectFormItem>
<InputFormItem label="通知文号链接"
title="通知文号链接"
v-model="lawsStandInfoSearch.notisyncNumLink">
</InputFormItem>
<SelectMultipleFormItem label="标签"
title="标签"
v-model="lawsStandInfoSearch.lawsLabel"
:options="dict.lawsLabelOptions">
</SelectMultipleFormItem>
<!--#region-->
<!--<el-form-item label="政策文号" class="add-form-item form-item-disabled">-->
<!-- <el-input v-model="lawsStandInfoSearch.lawsNo" clearable-->
<!-- placeholder="请输入政策文号"></el-input>-->
<!--</el-form-item>-->
<!--<el-form-item label="发文单位" title="发文单位" class="add-form-item form-item-disabled">-->
<!-- <el-input v-model="lawsStandInfoSearch.issueCompany" placeholder="请输入发文单位" clearable></el-input>-->
<!--</el-form-item>-->
<!--<el-form-item label="适用车型" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="lawsStandInfoSearch.lawsSycx" filterable clearable>-->
<!-- <el-option-->
<!-- v-for="item in dict.lawsSycxOptions"-->
<!-- placeholder="请选择"-->
<!-- :key="item.value"-->
<!-- :value="item.value"-->
<!-- :label="item.label"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!--</el-form-item>-->
<!--<el-form-item label="是否纳入认证清单" title="是否纳入认证清单" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="lawsStandInfoSearch.isRelateAccess">-->
<!-- <el-option value="1" label="是" key="1"></el-option>-->
<!-- <el-option value="2" label="否" key="2"></el-option>-->
<!-- </el-select>-->
<!--</el-form-item>-->
<!--<el-form-item label="福田转发通知文号" title="福田转发通知文号" class="add-form-item form-item-disabled">-->
<!-- <el-input v-model="lawsStandInfoSearch.lawsNotisyncNum" placeholder="请输入福田转发通知文号" clearable></el-input>-->
<!--</el-form-item>-->
<!--<el-form-item label="标签" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="lawsStandInfoSearch.lawsLabel" filterable clearable>-->
<!-- <el-option-->
<!-- v-for="item in dict.lawsLabelOptions"-->
<!-- placeholder="请选择"-->
<!-- :key="item.value"-->
<!-- :value="item.value"-->
<!-- :label="item.label"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!--</el-form-item>-->
<!--#endregion-->
<SelectFormItem
v-model="lawsStandInfoSearch.lawsTypeSecondLevel"
label="2级政策分类"
title="2级政策分类"
:options="dict.lawsTypeSecondLevelOptions"
/>
<SelectFormItem
v-model="lawsStandInfoSearch.lawsTypeFourthLevel"
label="4级政策分类"
title="4级政策分类"
:options="dict.lawsTypeFourthLevelOptions"
/>
<InputFormItem
v-model="lawsStandInfoSearch.lawsEnName"
label="英文名称"
title="英文名称"
/>
<DatePickerFormItem
v-model="lawsStandInfoSearch.issueTime"
label="发文日期"
title="发文日期"
/>
<DataRangePickerFormItem
label="征集意见周期"
title="征集意见周期"
:startTime.sync="lawsStandInfoSearch.commentCycleStart"
:endTime.sync="lawsStandInfoSearch.commentCycleEnd"
/>
<SelectMultipleFormItem
v-model="lawsStandInfoSearch.lawsSycx"
label="适用车型"
title="适用车型"
:options="dict.lawsSycxOptions || []"
/>
<SelectFormItem
v-model="lawsStandInfoSearch.lawsYear"
label="年度"
title="年度"
:options="dict.lawsYearOptions"
/>
<InputFormItem
v-model="lawsStandInfoSearch.notisyncNumLink"
label="通知文号链接"
title="通知文号链接"
/>
<InputFormItem
v-model="lawsStandInfoSearch.referenceNews"
label="参考消息"
title="参考消息"
/>
<InputFormItem
v-model="lawsStandInfoSearch.lawsKeyPoint"
label="政策要点"
title="政策要点"
/>
<InputFormItem
v-model="lawsStandInfoSearch.lawsOriginalLink"
label="政策原文链接"
title="政策原文链接"
/>
</el-col>
</el-row>
<!--#region-->
<!--<el-row :gutter="24">-->
<!-- <el-col :span="24">-->
<!-- <el-form-item label="征集意见周期" title="征集意见周期" class="add-form-item form-item-disabled">-->
<!-- <el-date-picker-->
<!-- v-model="commentCycleDate"-->
<!-- :picker-options="pickerOptions"-->
<!-- type="daterange"-->
<!-- range-separator="至"-->
<!-- start-placeholder="起始时间"-->
<!-- end-placeholder="结束时间"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- align="right">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!--</el-row>-->
<!--#endregion-->
</div>
<ProcessTitle>
<template slot="title">实施日期</template>
@@ -220,55 +153,33 @@
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="12">
<DatePickerGroupFormItem label="实施日期"
title="实施日期"
v-model="lawsStandInfoSearch.SSRQLAWS"
></DatePickerGroupFormItem>
<DatePickerFormItem label="新生产实施日期"
title="新生产实施日期"
v-model="lawsStandInfoSearch.ZCXSSRQLAWS">
</DatePickerFormItem>
<DatePickerFormItem label="生效日期"
title="生效日期"
v-model="lawsStandInfoSearch.SXRQLAWS">
</DatePickerFormItem>
<!--#region-->
<!--<el-form-item label="实施日期" class="add-form-item form-item-disabled">-->
<!-- <el-datePicker v-model="lawsStandInfoSearch.SSRQLAWS"-->
<!-- :editable="false"-->
<!-- placeholder="请选择实施日期"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- clearable></el-datePicker>-->
<!--</el-form-item>-->
<!--<el-form-item label="新车型实施日期" title="新车型实施日期" class="add-form-item form-item-disabled">-->
<!-- <el-datePicker v-model="lawsStandInfoSearch.XCXSSRQLAWS"-->
<!-- :editable="false"-->
<!-- placeholder="请选择实施日期"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- clearable></el-datePicker>-->
<!--</el-form-item>-->
<!--#endregion-->
<DatePickerGroupFormItem
v-model="lawsStandInfoSearch.SSRQLAWS"
label="实施日期"
title="实施日期"
/>
<DatePickerFormItem
v-model="lawsStandInfoSearch.ZCXSSRQLAWS"
label="新生产实施日期"
title="新生产实施日期"
/>
<DatePickerFormItem
v-model="lawsStandInfoSearch.SXRQLAWS"
label="生效日期"
title="生效日期"
/>
</el-col>
<el-col :span="12">
<DatePickerFormItem label="新认证实施日期"
title="新认证实施日期"
v-model="lawsStandInfoSearch.XRZSSRQLAWS"
></DatePickerFormItem>
<DatePickerFormItem label="在用车实施日期"
title="在用车实施日期"
v-model="lawsStandInfoSearch.XCXSSRQLAWS"
></DatePickerFormItem>
<!--#region-->
<!--<el-form-item label="在产车实施日期" title="在产车实施日期" class="add-form-item form-item-disabled">-->
<!-- <el-datePicker v-model="lawsStandInfoSearch.ZCXSSRQLAWS"-->
<!-- :editable="false"-->
<!-- placeholder="请选择实施日期"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- clearable></el-datePicker>-->
<!--</el-form-item>-->
<!--#endregion-->
<DatePickerFormItem
v-model="lawsStandInfoSearch.XRZSSRQLAWS"
label="新认证实施日期"
title="新认证实施日期"
/>
<DatePickerFormItem
v-model="lawsStandInfoSearch.XCXSSRQLAWS"
label="在用车实施日期"
title="在用车实施日期"
/>
</el-col>
</el-row>
</div>
@@ -278,120 +189,42 @@
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="12">
<SelectFormItem label="我司参与深度"
title="我司参与深度"
v-model="lawsStandInfoSearch.CYSDLAWS"
:options="dict.CYSDLAWSOptions">
</SelectFormItem>
<DepartmentFormItem label="投稿单位"
title="投稿单位"
v-model="lawsStandInfoSearch.TGDWLAWS"
:ids.sync="lawsStandInfoSearch.TGDWLAWSID">
</DepartmentFormItem>
<DepartmentFormItem label="责任部门"
title="责任部门"
v-model="lawsStandInfoSearch.ZRBMLAWS"
:ids.sync="lawsStandInfoSearch.ZRBMLAWSID">
</DepartmentFormItem>
<!--#region-->
<!--<el-form-item label="发布机构" title="发布机构" class="add-form-item form-item-disabled">-->
<!-- <el-input v-model="lawsStandInfoSearch.FBJGLAWS" placeholder="请输入发布机构" clearable></el-input>-->
<!--</el-form-item>-->
<!--<el-form-item label="投稿人" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="lawsStandInfoSearch.TGRLAWS" filterable clearable>-->
<!-- <el-option-->
<!-- v-for="item in dict.TGRLAWSOptions"-->
<!-- placeholder="请选择"-->
<!-- :key="item.value"-->
<!-- :value="item.value"-->
<!-- :label="item.label"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!--</el-form-item>-->
<!--<el-form-item label="能源类型" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="lawsStandInfoSearch.NYLXLAWS" filterable clearable>-->
<!-- <el-option-->
<!-- v-for="item in dict.NYLXLAWSOptions"-->
<!-- placeholder="请选择"-->
<!-- :key="item.value"-->
<!-- :value="item.value"-->
<!-- :label="item.label"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!--</el-form-item>-->
<!--<el-form-item label="责任部门" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="lawsStandInfoSearch.ZRBMLAWS" filterable clearable>-->
<!-- <el-option-->
<!-- v-for="item in dict.ZRBMLAWSOptions"-->
<!-- placeholder="请选择"-->
<!-- :key="item.value"-->
<!-- :value="item.value"-->
<!-- :label="item.label"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!--</el-form-item>-->
<!--#endregion-->
<SelectFormItem
v-model="lawsStandInfoSearch.CYSDLAWS"
label="我司参与深度"
title="我司参与深度"
:options="dict.CYSDLAWSOptions"
/>
<DepartmentFormItem
v-model="lawsStandInfoSearch.TGDWLAWS"
label="投稿单位"
title="投稿单位"
:ids.sync="lawsStandInfoSearch.TGDWLAWSID"
/>
<DepartmentFormItem
v-model="lawsStandInfoSearch.ZRBMLAWS"
label="责任部门"
title="责任部门"
:ids.sync="lawsStandInfoSearch.ZRBMLAWSID"
/>
</el-col>
<el-col :span="12">
<personFormItem label="投稿人"
title="投稿人"
v-model="lawsStandInfoSearch.TGRLAWS">
</personFormItem>
<SelectMultipleFormItem label="适用认证"
title="适用认证"
v-model="lawsStandInfoSearch.SYRZLAWS"
:options="dict.syrzOptions">
</SelectMultipleFormItem>
<personFormItem label="责任工程师"
title="责任工程师"
v-model="lawsStandInfoSearch.ZRGCSLAWS">
</personFormItem>
<!--#region-->
<!--<el-form-item label="我司参与深度" title="我司参与深度" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="lawsStandInfoSearch.CYSDLAWS" filterable clearable>-->
<!-- <el-option-->
<!-- v-for="item in dict.CYSDLAWSOptions"-->
<!-- placeholder="请选择"-->
<!-- :key="item.value"-->
<!-- :value="item.value"-->
<!-- :label="item.label"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!--</el-form-item>-->
<!--<el-form-item label="投稿单位" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="lawsStandInfoSearch.TGDWLAWS" filterable clearable>-->
<!-- <el-option-->
<!-- v-for="item in dict.TGDWLAWSOptions"-->
<!-- placeholder="请选择"-->
<!-- :key="item.value"-->
<!-- :value="item.value"-->
<!-- :label="item.label"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!--</el-form-item>-->
<!--<el-form-item label="适用认证" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="lawsStandInfoSearch.YYRZLAWS" filterable clearable>-->
<!-- <el-option-->
<!-- v-for="item in dict.YYRZLAWSOptions"-->
<!-- placeholder="请选择"-->
<!-- :key="item.value"-->
<!-- :value="item.value"-->
<!-- :label="item.label"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!--</el-form-item>-->
<!--<el-form-item label="责任工程师" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="lawsStandInfoSearch.ZRGCSLAWS" filterable clearable>-->
<!-- <el-option-->
<!-- v-for="item in dict.ZRGCSLAWSOptions"-->
<!-- placeholder="请选择"-->
<!-- :key="item.value"-->
<!-- :value="item.value"-->
<!-- :label="item.label"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!--</el-form-item>-->
<!--#endregion-->
<personFormItem
v-model="lawsStandInfoSearch.TGRLAWS"
label="投稿人"
title="投稿人"
/>
<SelectMultipleFormItem
v-model="lawsStandInfoSearch.SYRZLAWS"
label="适用认证"
title="适用认证"
:options="dict.syrzOptions"
/>
<personFormItem
v-model="lawsStandInfoSearch.ZRGCSLAWS"
label="责任工程师"
title="责任工程师"
/>
</el-col>
</el-row>
</div>
@@ -401,38 +234,33 @@
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="12">
<InputForStandardsForLaws label="代替文件号"
title="代替文件号"
v-model="lawsStandInfoSearch.DTWJHLAWS"
></InputForStandardsForLaws>
<InputForStandardsForLaws label="引用标准&政策"
title="引用标准&政策"
v-model="lawsStandInfoSearch.YYBZZCLAWS"
></InputForStandardsForLaws>
<InputFormItem label="参会记录"
title="参会记录"
v-model="lawsStandInfoSearch.CHJLLAWS">
</InputFormItem>
<!--#region-->
<!--<el-form-item label="代替文件号" title="代替文件号" class="add-form-item form-item-disabled">-->
<!-- <el-input v-model="lawsStandInfoSearch.DTWJHLAWS" placeholder="请输入代替文件号" clearable></el-input>-->
<!--</el-form-item>-->
<!--#endregion-->
<InputForStandardsForLaws
v-model="lawsStandInfoSearch.DTWJHLAWS"
label="代替文件号"
title="代替文件号"
/>
<InputForStandardsForLaws
v-model="lawsStandInfoSearch.YYBZZCLAWS"
label="引用标准&政策"
title="引用标准&政策"
/>
<InputFormItem
v-model="lawsStandInfoSearch.CHJLLAWS"
label="参会记录"
title="参会记录"
/>
</el-col>
<el-col :span="12">
<InputForStandardsForLaws label="被代替文件号"
title="被代替文件号"
v-model="lawsStandInfoSearch.BDTWJHLAWS"
></InputForStandardsForLaws>
<InputFormItem label="相关流程"
title="相关流程"
v-model="lawsStandInfoSearch.XGLC">
</InputFormItem>
<!--#region-->
<!--<el-form-item label="被代替文件号" title="被代替文件号" class="add-form-item form-item-disabled">-->
<!-- <el-input v-model="lawsStandInfoSearch.BDTWJHLAWS" placeholder="请输入被代替文件号" clearable></el-input>-->
<!--</el-form-item>-->
<!--#endregion-->
<InputForStandardsForLaws
v-model="lawsStandInfoSearch.BDTWJHLAWS"
label="被代替文件号"
title="被代替文件号"
/>
<InputFormItem
v-model="lawsStandInfoSearch.XGLC"
label="相关流程"
title="相关流程"
/>
</el-col>
</el-row>
</div>
@@ -440,15 +268,19 @@
</div>
<div class="demo-drawer-footer">
<el-button
class="common-button-primary"
icon="el-icon-check"
type="primary"
@click="getBussionStandTableBtn(lawsStandInfoSearch,'','sel')">搜索
class="common-button-primary"
icon="el-icon-check"
type="primary"
@click="getBussionStandTableBtn(lawsStandInfoSearch,'','sel')"
>
搜索
</el-button>
<el-button
class="common-button-default"
icon="el-icon-close"
@click="clearAllSearch('lawsStandInfoSearch')">取消
class="common-button-default"
icon="el-icon-close"
@click="clearAllSearch('lawsStandInfoSearch')"
>
取消
</el-button>
</div>
</el-drawer>
@@ -456,18 +288,18 @@
<script>
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
import SelectFormItem from "@/components/hzwlComponents/SelectFormItem";
import InputFormItem from "@/components/hzwlComponents/InputFormItem";
import DatePickerFormItem from "@/components/hzwlComponents/DatePickerFormItem";
import DataRangePickerFormItem from "@/components/hzwlComponents/DataRangePickerFormItem";
import SelectMultipleFormItem from "@/components/hzwlComponents/SelectMultipleFormItem";
import DatePickerGroupFormItem from "@/components/hzwlComponents/DatePickerGroupFormItem";
import DepartmentFormItem from "@/components/hzwlComponents/DepartmentFormItem";
import personFormItem from "@/components/hzwlComponents/personFormItem";
import InputForStandardsForLaws from "@/components/hzwlComponents/InputForStandardsForLaws";
import SelectFormItem from '@/components/hzwlComponents/SelectFormItem';
import InputFormItem from '@/components/hzwlComponents/InputFormItem';
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem';
import DataRangePickerFormItem from '@/components/hzwlComponents/DataRangePickerFormItem';
import SelectMultipleFormItem from '@/components/hzwlComponents/SelectMultipleFormItem';
import DatePickerGroupFormItem from '@/components/hzwlComponents/DatePickerGroupFormItem';
import DepartmentFormItem from '@/components/hzwlComponents/DepartmentFormItem';
import personFormItem from '@/components/hzwlComponents/personFormItem';
import InputForStandardsForLaws from '@/components/hzwlComponents/InputForStandardsForLaws';
export default {
name: "advancedSearch",
name: 'AdvancedSearch',
components: {
ProcessTitle,
SelectFormItem,
@@ -480,6 +312,16 @@ export default {
personFormItem,
InputForStandardsForLaws
},
props: {
lawsStandInfoSearch: {
type: Object,
default: () => ({})
},
dict: {
type: Object,
default: () => ({})
},
},
data () {
return{
isAdvancedSearch: false,
@@ -495,16 +337,6 @@ export default {
]
}
},
props: {
lawsStandInfoSearch: {
type: Object,
default: () => ({})
},
dict: {
type: Object,
default: () => ({})
},
},
methods: {
open () {
this.isAdvancedSearch = true
@@ -1,11 +1,11 @@
<template>
<!-- 配置标准 -->
<el-drawer
title="配置政策"
:wrapperClosable="false"
:visible.sync="configStandFlag"
size="1200px"
@close="cancelConfigStand"
title="配置政策"
:wrapperClosable="false"
:visible.sync="configStandFlag"
size="1200px"
@close="cancelConfigStand"
>
<div class="demo-drawer-content">
<div class="search-area">
@@ -16,8 +16,12 @@
<!-- placeholder="根据标准名称查找" clearable/>-->
<!-- </el-formItem>-->
<el-formItem label="政策文号" prop="lawsNo" class="search-item">
<el-input v-model="sarConfigStandSearch.lawsNo" @keyup.enter.native="searchConfiguraStand"
placeholder="根据政策文号查找" clearable/>
<el-input
v-model="sarConfigStandSearch.lawsNo"
placeholder="根据政策文号查找"
clearable
@keyup.enter.native="searchConfiguraStand"
/>
</el-formItem>
<!-- <el-formItem label="企标类别" prop="standSort" class="search-item">-->
<!-- <el-select v-model="sarConfigStandSearch.standSort" placeholder="根据企标类别查找"-->
@@ -27,24 +31,32 @@
<!-- </el-select>-->
<!-- </el-formItem>-->
<el-formItem label="政策名称" prop="lawsName" class="search-item">
<el-input v-model="sarConfigStandSearch.lawsName" @keyup.enter.native="searchConfiguraStand" placeholder="根据政策名称查找" clearable :maxlength="100"/>
<el-input
v-model="sarConfigStandSearch.lawsName"
placeholder="根据政策名称查找"
clearable
:maxlength="100"
@keyup.enter.native="searchConfiguraStand"
/>
</el-formItem>
<el-form-item class="search-item btn-box">
<el-button
type="primary"
class="common-button-primary"
size="small"
:loading="searching"
@click="searchConfiguraStand">
type="primary"
class="common-button-primary"
size="small"
:loading="searching"
@click="searchConfiguraStand"
>
查询
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
size="small"
@click="clearAllSearch(3)"
>清空
class="common-button-default"
size="small"
@click="clearAllSearch(3)"
>
清空
</el-button>
</el-form-item>
</el-form>
@@ -52,96 +64,104 @@
</div>
<div class="drawer-content">
<el-table
ref="selection"
:data="configStandList"
tooltip-effect="dark"
style="width: 100%; flex: auto;"
height="100%"
border
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
@sort-change="sortChangeConfig"
@selection-change="selectConfigStandChange">
ref="selection"
:data="configStandList"
tooltip-effect="dark"
style="width: 100%; flex: auto;"
height="100%"
border
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
@sort-change="sortChangeConfig"
@selection-change="selectConfigStandChange"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
type="selection"
width="55"
align="center"
/>
<el-table-column
type="index"
width="55"
label="序号"
align="center">
type="index"
width="55"
label="序号"
align="center"
>
<template slot-scope="{scope, column, $index}">
{{ ($index + 1) + (configPage - 1) * configRows }}
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="lawsNo"
label="政策文号"
width="150"
align="center"
show-overflow-tooltip
prop="lawsNo"
label="政策文号"
width="150"
align="center"
/>
<el-table-column
prop="lawsName"
label="政策名称"
align="center"
/>
<el-table-column
prop="lawsEnName"
label="英文名称"
align="center"
/>
<el-table-column
prop="issueTime"
label="发文日期"
width="120"
sortable
align="center"
>
</el-table-column>
<el-table-column
prop="lawsName"
label="政策名称"
align="center">
</el-table-column>
<el-table-column
prop="lawsEnName"
label="英文名称"
align="center">
</el-table-column>
<el-table-column
prop="issueTime"
label="发文日期"
width="120"
sortable
align="center">
<template slot-scope="scope">
<span>{{formatDate(scope.row.issueTime)}}</span>
<span>{{ formatDate(scope.row.issueTime) }}</span>
</template>
</el-table-column>
<el-table-column
prop="ssrqlaws"
label="实施日期"
width="120"
sortable
align="center">
prop="ssrqlaws"
label="实施日期"
width="120"
sortable
align="center"
>
<template slot-scope="scope">
<span>{{formatDate(scope.row.ssrqlaws)}}</span>
<span>{{ formatDate(scope.row.ssrqlaws) }}</span>
</template>
</el-table-column>
<el-table-column
prop="standStatusShow"
label="标准状态"
width="100"
align="center">
</el-table-column>
prop="standStatusShow"
label="政策状态"
width="100"
align="center"
/>
</el-table>
</div>
<pagination
style="position: relative;"
:auto-size="true"
:page="configPage"
:pageSize="configRows"
:total="configTotal"
@pageChange="configuraPageChange"
@pageSizeChange="configuraPageSizeChange"></pagination>
style="position: relative;"
:auto-size="true"
:page="configPage"
:pageSize="configRows"
:total="configTotal"
@pageChange="configuraPageChange"
@pageSizeChange="configuraPageSizeChange"
/>
<div class="divDel">
<div class="divDel_title">已选政策</div>
<div class="divDel_box">
<el-tag
v-for="tag in selectConfigStand"
:key="tag.id"
size="mini"
closable
@close="handleTagClose(tag)">
<a v-if="tag.standStatusShow === '作废' "
class="table-jump" style="color: #F56C6C"
@click="handlePreview(tag)">{{ tag.lawsName }}</a>
<a v-else @click="handlePreview(tag)" class="table-jump" style="color: #333333">{{ tag.lawsName }}</a>
v-for="tag in selectConfigStand"
:key="tag.id"
size="mini"
closable
@close="handleTagClose(tag)"
>
<a
v-if="tag.standStatusShow === '作废' "
class="table-jump"
style="color: #F56C6C"
@click="handlePreview(tag)"
>{{ tag.lawsName }}</a>
<a v-else class="table-jump" style="color: #333333" @click="handlePreview(tag)">{{ tag.lawsName }}</a>
</el-tag>
</div>
</div>
@@ -149,21 +169,42 @@
</div>
<div class="demo-drawer-footer">
<el-button
type="primary"
round class="common-button-primary"
icon="el-icon-check"
@click="saveConfigStand"
:loading="isSubmit"
>提交</el-button>
<el-button class="common-button-default" style="padding: 7px 12px;" icon="el-icon-close" type="primary"
round @click="cancelConfigStand">取消</el-button>
type="primary"
round
class="common-button-primary"
icon="el-icon-check"
:loading="isSubmit"
@click="saveConfigStand"
>
提交
</el-button>
<el-button
class="common-button-default"
style="padding: 7px 12px;"
icon="el-icon-close"
type="primary"
round
@click="cancelConfigStand"
>
取消
</el-button>
</div>
</el-drawer>
</template>
<script>
export default {
name: "configStandDrawer",
name: 'ConfigStandDrawer',
props: {
selectSarMenu: {
type: Object,
required: true
},
getBussionStandTable: {
type: Function,
required: true
}
},
data () {
return {
configStandFlag: false, // 控制配置标准表格是否显示
@@ -198,16 +239,6 @@ export default {
selectConfigStand: []
}
},
props: {
selectSarMenu: {
type: Object,
required: true
},
getBussionStandTable: {
type: Function,
required: true
}
},
methods: {
open () {
this.configStandFlag = true
@@ -221,8 +252,8 @@ export default {
this.selectConfiguraStand()
},
clearAllSearch (flag) {
this.sarConfigStandSearch.lawsNo=''
this.sarConfigStandSearch.lawsName=''
this.sarConfigStandSearch.lawsNo = ''
this.sarConfigStandSearch.lawsName = ''
this.configPage = 1
this.sarConfigStandSearch.page = 1
this.selectConfiguraStand()
@@ -230,8 +261,8 @@ export default {
// 取消配置标准
cancelConfigStand () {
this.configStandFlag = false
this.sarConfigStandSearch.lawsNo=''
this.sarConfigStandSearch.lawsName=''
this.sarConfigStandSearch.lawsNo = ''
this.sarConfigStandSearch.lawsName = ''
this.configPage = 1
this.selectConfigStand = []
},
@@ -247,7 +278,7 @@ export default {
})
},
// 配置标准-表格排序
sortChangeConfig(sortObj) {
sortChangeConfig (sortObj) {
if (sortObj.column.order !== 'normal') {
switch (sortObj.prop) {
case 'issueTime' :
@@ -299,7 +330,7 @@ export default {
},
// 提交配置搜索项
saveConfigStand () {
let search = {}
const search = {}
search.menuId = this.selectSarMenu.id
if (this.selectConfigStand.length === 0) {
this.$message({
@@ -325,9 +356,9 @@ export default {
}
},
formatDate (dateStr) {
if (dateStr && dateStr!== '') {
let dateArr = dateStr.split(',')
return dateArr.map(date => date.slice(0,10)).join(',')
if (dateStr && dateStr !== '') {
const dateArr = dateStr.split(',')
return dateArr.map(date => date.slice(0, 10)).join(',')
}
return dateStr
},
@@ -336,7 +367,7 @@ export default {
this.$refs.selection.toggleRowSelection(tag, false)
},
handlePreview (tag) {
let routeUrl = this.$router.resolve({
const routeUrl = this.$router.resolve({
name: 'OtherLawsStandDetails',
params: {
id: tag.id,
File diff suppressed because it is too large Load Diff
@@ -2,173 +2,178 @@
<!--表格-->
<div class="content">
<el-table
ref="selection"
:data="standinfoList"
tooltip-effect="dark"
style="width:100%;"
:height="tableHeight"
border
class="drag-table"
:row-class-name="dragRowClassName"
@sort-change="sortChange"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@selection-change="standSelectChange"
ref="selection"
:data="standinfoList"
tooltip-effect="dark"
style="width:100%;"
:height="tableHeight"
border
class="drag-table"
:row-class-name="dragRowClassName"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@sort-change="sortChange"
@selection-change="standSelectChange"
>
<el-table-column
type="selection"
min-width="5%"
align="center">
</el-table-column>
type="selection"
min-width="5%"
align="center"
/>
<el-table-column
type="index"
width="55"
label="序号"
align="center">
type="index"
width="55"
label="序号"
align="center"
>
<template slot-scope="{scope, column, $index}">
{{ ($index + 1) + (lawsStandInfoSearch.page - 1) * lawsStandInfoSearch.pageSize }}
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="lawsName"
label="政策名称"
min-width="120"
show-overflow-tooltip
prop="lawsName"
label="政策名称"
min-width="120"
>
<template slot-scope="scope">
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.lawsName }}</a>
<a v-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.lawsName }}</a>
<a v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'" style="color: #333333" @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.lawsName }}</a>
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsName }}</a>
<a v-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsName }}</a>
<a v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'" style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsName }}</a>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="lawsNo"
label="政策文号"
sortable
min-width="120"
show-overflow-tooltip
prop="lawsNo"
label="政策文号"
sortable
min-width="120"
>
<template slot-scope="scope">
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.lawsNo }}</a>
<a v-else-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.lawsNo }}</a>
<a v-else style="color: #333333" @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.lawsNo }}</a>
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsNo }}</a>
<a v-else-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsNo }}</a>
<a v-else style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsNo }}</a>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="issueCompany"
label="发文单位"
sortable
min-width="120"
show-overflow-tooltip
prop="issueCompany"
label="发文单位"
sortable
min-width="120"
>
<template slot-scope="scope">
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.issueCompany }}</a>
<a v-else-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.issueCompany }}</a>
<a v-else style="color: #333333" @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.issueCompany }}</a>
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.issueCompany }}</a>
<a v-else-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.issueCompany }}</a>
<a v-else style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.issueCompany }}</a>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="issueTime"
label="发文日期"
sortable
min-width="120"
show-overflow-tooltip
prop="issueTime"
label="发文日期"
sortable
min-width="120"
>
<template slot-scope="scope">
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" @click="handlePreview(scope.row)" class="table-jump">{{ formatDate(scope.row.issueTime) }}</a>
<a v-else-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" @click="handlePreview(scope.row)" class="table-jump">{{ formatDate(scope.row.issueTime) }}</a>
<a v-else style="color: #333333" @click="handlePreview(scope.row)" class="table-jump">{{ formatDate(scope.row.issueTime) }}</a>
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ formatDate(scope.row.issueTime) }}</a>
<a v-else-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ formatDate(scope.row.issueTime) }}</a>
<a v-else style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ formatDate(scope.row.issueTime) }}</a>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="ssrqlaws"
label="实施日期"
sortable
min-width="120"
show-overflow-tooltip
prop="ssrqlaws"
label="实施日期"
sortable
min-width="120"
>
<template slot-scope="scope">
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" @click="handlePreview(scope.row)" class="table-jump">{{ formatDate(scope.row.ssrqlaws) }}</a>
<a v-else-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" @click="handlePreview(scope.row)" class="table-jump">{{ formatDate(scope.row.ssrqlaws) }}</a>
<a v-else style="color: #333333" @click="handlePreview(scope.row)" class="table-jump">{{ formatDate(scope.row.ssrqlaws) }}</a>
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ formatDate(scope.row.ssrqlaws) }}</a>
<a v-else-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ formatDate(scope.row.ssrqlaws) }}</a>
<a v-else style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ formatDate(scope.row.ssrqlaws) }}</a>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="lawsSycx"
label="适用车型"
sortable
min-width="120"
show-overflow-tooltip
prop="lawsSycx"
label="适用车型"
sortable
min-width="120"
>
<template slot-scope="scope">
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" @click="handlePreview(scope.row)" class="table-jump">{{ convert(scope.row.lawsSycx, 'lawsSycxOptions') }}</a>
<a v-else-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" @click="handlePreview(scope.row)" class="table-jump">{{ convert(scope.row.lawsSycx, 'lawsSycxOptions') }}</a>
<a v-else style="color: #333333" @click="handlePreview(scope.row)" class="table-jump">{{ convert(scope.row.lawsSycx, 'lawsSycxOptions') }}</a>
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ convert(scope.row.lawsSycx, 'lawsSycxOptions') }}</a>
<a v-else-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ convert(scope.row.lawsSycx, 'lawsSycxOptions') }}</a>
<a v-else style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ convert(scope.row.lawsSycx, 'lawsSycxOptions') }}</a>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
sortable
prop="standStatusShow"
label="标准状态"
min-width="110"
show-overflow-tooltip
sortable
prop="standStatusShow"
label="政策状态"
min-width="110"
>
<template slot-scope="scope">
<span v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C">
{{scope.row.standStatusShow}}
{{ scope.row.standStatusShow }}
</span>
<span v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C">
{{scope.row.standStatusShow}}
{{ scope.row.standStatusShow }}
</span>
<span v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'">
{{scope.row.standStatusShow}}
{{ scope.row.standStatusShow }}
</span>
</template>
</el-table-column>
<el-table-column
v-if="isPermission('1a8b50a3541387dc2818fc361ea3ab31,dca69b895a88c2e3a3bf16d44e34fc04,b98579c3d0514ba75c4d1b21c9d5aa17,c158e787202d1e67f75d5a2f9da889df') > 0"
prop="action"
label="操作"
align="center"
min-width="120"
v-if="isPermission('1a8b50a3541387dc2818fc361ea3ab31,dca69b895a88c2e3a3bf16d44e34fc04,b98579c3d0514ba75c4d1b21c9d5aa17,c158e787202d1e67f75d5a2f9da889df') > 0"
prop="action"
label="操作"
align="center"
min-width="120"
>
<template slot-scope="scope">
<a class="table-jump" v-btn-permission="'1a8b50a3541387dc2818fc361ea3ab31'" v-if="scope.row.collectBtn" style="color: #2d8cf0" @click="handleCommand([scope.row, '收藏'])">收藏</a>
<a class="table-jump" v-btn-permission="'dca69b895a88c2e3a3bf16d44e34fc04'" v-else style="color: #2d8cf0" @click="handleCommand([scope.row, '取消收藏'])">取消收藏</a>
<a class="table-jump" v-btn-permission="'b98579c3d0514ba75c4d1b21c9d5aa17'" style="color: #2d8cf0;margin-left: 10px" @click="handleCommand([scope.row, '编辑'])">编辑</a>
<a class="table-jump" v-btn-permission="'c158e787202d1e67f75d5a2f9da889df'" style="color: #f56c6c;margin-left: 10px" @click="handleCommand([scope.row, '删除'])">删除</a>
<a
v-if="scope.row.collectBtn"
v-btn-permission="'1a8b50a3541387dc2818fc361ea3ab31'"
class="table-jump"
style="color: #2d8cf0"
@click="handleCommand([scope.row, '收藏'])"
>收藏</a>
<a
v-else
v-btn-permission="'dca69b895a88c2e3a3bf16d44e34fc04'"
class="table-jump"
style="color: #2d8cf0"
@click="handleCommand([scope.row, '取消收藏'])"
>取消收藏</a>
<a v-btn-permission="'b98579c3d0514ba75c4d1b21c9d5aa17'" class="table-jump" style="color: #2d8cf0;margin-left: 10px" @click="handleCommand([scope.row, '编辑'])">编辑</a>
<a v-btn-permission="'c158e787202d1e67f75d5a2f9da889df'" class="table-jump" style="color: #f56c6c;margin-left: 10px" @click="handleCommand([scope.row, '删除'])">删除</a>
</template>
</el-table-column>
</el-table>
<pagination :page="lawsStandInfoSearch.page" :total="total"
@pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
<pagination
:page="lawsStandInfoSearch.page"
:total="total"
@pageChange="pageChange"
@pageSizeChange="pageSizeChange"
/>
<loading :loading="loading">数据获取中</loading>
<editDrawer
ref="editDrawerRef"
:formFieldListData="formFieldListData"
:selectSarMenu="selectSarMenu"
:getBussionStandTable="getBussionStandTable">
</editDrawer>
ref="editDrawerRef"
:formFieldListData="formFieldListData"
:selectSarMenu="selectSarMenu"
:getBussionStandTable="getBussionStandTable"
/>
</div>
</template>
<script>
import editDrawer from "./editDrawer";
import store from "@/store";
import editDrawer from './editDrawer';
import store from '@/store';
export default {
name: "mainTable",
data () {
return {
standinfoList: [],
tableHeight: null,
tableFlag: '',
total: 0,
loading: false,
selectedList: [],
formFieldListData: [],
dict: {}
}
},
name: 'MainTable',
components: {
editDrawer
},
@@ -184,19 +189,31 @@ export default {
required: true
}
},
data () {
return {
standinfoList: [],
tableHeight: null,
tableFlag: '',
total: 0,
loading: false,
selectedList: [],
formFieldListData: [],
dict: {}
}
},
watch: {
selectedList: {
handler: function(newValue, oldValue) {
handler: function (newValue, oldValue) {
this.$emit('selectedList', newValue)
},
deep: true
}
},
created() {
created () {
this.getBussionStandTable()
this.getDicTypeListCode()
},
mounted() {
mounted () {
// 加载动态表单数据
this.getAddFormFieldList()
this.tableHeight = $('.content').height() - 44 - 20
@@ -204,22 +221,22 @@ export default {
this.tableHeight = $('.content').height() - 44 - 20
}
},
destroyed() {
destroyed () {
window.onresize = null
this.tableHeight = ""
this.tableHeight = ''
},
methods: {
addModal () {
this.$refs.editDrawerRef.addModal()
},
// 分页查询企业标准---表格
getBussionStandTable (item, nodeId,type) {
getBussionStandTable (item, nodeId, type) {
if (item !== '' && item !== null && item !== undefined) {
item.pageSize = this.$store.getters.userInfo.configContent
}
this.lawsStandInfoSearch.pageSize = this.$store.getters.userInfo.configContent
const data = item || this.lawsStandInfoSearch
const formData = {...data}
const formData = { ...data }
if (nodeId !== undefined) {
formData.menuId = nodeId
}
@@ -240,16 +257,16 @@ export default {
formData.collectMenuId = undefined
}
formData.userId = this.$store.getters.userInfo.userId
if(type === 'sel'){
if(type === 'sel') {
const advanceSearchVOList = [];
if(this.formFieldListData !== undefined && this.formFieldListData !== null){
if(this.formFieldListData !== undefined && this.formFieldListData !== null) {
const formFieldList = this.formFieldListData
formFieldList.forEach((item) => {
const value = this.lawsStandInfoSearch[item.attrField]
// 时间格式处理
if (value !== undefined && value !== null && value !== '') {
advanceSearchVOList.push({
connect: advanceSearchVOList.length > 0 ? "and" : "",
connect: advanceSearchVOList.length > 0 ? 'and' : '',
field: item.attrField || '',
type: 'like',
value: value
@@ -258,7 +275,7 @@ export default {
})
}
formData.advanceSearchVOStr = JSON.stringify(advanceSearchVOList);
if(this.commentCycleDate && this.commentCycleDate.length === 2){
if(this.commentCycleDate && this.commentCycleDate.length === 2) {
formData.commentCycleStart = this.commentCycleDate[0]
formData.commentCycleEnd = this.commentCycleDate[1]
}
@@ -301,7 +318,7 @@ export default {
return 'drag-row' + ' ' + 'id=' + row.row.id
},
// 表格排序
sortChange(sortObj) {
sortChange (sortObj) {
this.nowOrderBy = sortObj.column.property
// this.nowOrder = sortObj.order
switch (sortObj.order) {
@@ -352,7 +369,7 @@ export default {
// break
// }
// }
//搜索后排序,应该以被搜索后的数据排序
// 搜索后排序,应该以被搜索后的数据排序
this.getBussionStandTable(this.lawsStandInfoSearch)
},
// 选择项勾选改变
@@ -364,7 +381,7 @@ export default {
},
// 点击查看
handlePreview (item) {
let routeUrl = this.$router.resolve({
const routeUrl = this.$router.resolve({
name: 'OtherLawsStandDetails',
params: {
id: item.id,
@@ -375,13 +392,13 @@ export default {
},
isPermission (value) {
let hasCount = 0
let set =new Set( value.split(","))
let menuList = store.getters.getMenuList
const set = new Set( value.split(','))
const menuList = store.getters.getMenuList
if (menuList === '') {
return hasCount
} else {
menuList.map((menu) => {
if ( set.has(menu.id)|| value === undefined || value === '') {
if ( set.has(menu.id) || value === undefined || value === '') {
hasCount++
}
})
@@ -398,20 +415,20 @@ export default {
this.lawsStandInfoSearch.pageSize = pageSize
this.getBussionStandTable()
},
arr(data){
if(data){
if(data.indexOf(",") !== -1){
let arr = data.split(",");
let list = []
arr.forEach(item =>{
arr (data) {
if(data) {
if(data.indexOf(',') !== -1) {
const arr = data.split(',');
const list = []
arr.forEach(item => {
list.push(item.slice(0, 10));
})
return list.join(",");
return list.join(',');
}else {
return data.slice(0, 10)
}
}
return ""
return ''
},
// 更多
handleCommand (command) {
@@ -480,7 +497,7 @@ export default {
confirmButtonClass: 'common-button-primary',
roundButton: true
}).then(() => {
this.$http.post('lawss/sarLawsInfo/deleteSarLawsStandInfo', {ids: itemid}, {
this.$http.post('lawss/sarLawsInfo/deleteSarLawsStandInfo', { ids: itemid }, {
_this: this
}, res => {
this.getBussionStandTable()
@@ -507,7 +524,7 @@ export default {
confirmButtonClass: 'common-button-primary',
roundButton: true
}).then(() => {
this.$http.post('lawss/sarLawsInfo/deleteSarLawsStandInfo', {ids: this.selectedList.join(',')}, {
this.$http.post('lawss/sarLawsInfo/deleteSarLawsStandInfo', { ids: this.selectedList.join(',') }, {
_this: this
}, res => {
this.getBussionStandTable()
@@ -520,7 +537,7 @@ export default {
}
},
getAddFormFieldList (isEdit) {
this.$http.get('lawss/sarStandAttrDetails/list', {}, {_this: this},
this.$http.get('lawss/sarStandAttrDetails/list', {}, { _this: this },
res => {
if (res.ok) {
const { data = {} } = res
@@ -598,7 +615,7 @@ export default {
}
}, e => {})
},
convert(value, dict) {
convert (value, dict) {
if (this.dict[dict]) {
return value.split(',').map(v => this.dict[dict].find(item => item.value === v)?.label || v).join(',')
// return this.dict[dict].find(item => item.value === value)?.label || value
@@ -607,9 +624,9 @@ export default {
}
},
formatDate (dateStr) {
if (dateStr && dateStr!== '') {
let dateArr = dateStr.split(',')
return dateArr.map(date => date.slice(0,10)).join(',')
if (dateStr && dateStr !== '') {
const dateArr = dateStr.split(',')
return dateArr.map(date => date.slice(0, 10)).join(',')
}
return dateStr
},
@@ -1,7 +1,7 @@
<template>
<table-tools-bar
@search="getBussionStandTableBtn(lawsStandInfoSearch)"
@reset="clearAllSearch('lawsStandInfoSearch')"
@search="getBussionStandTableBtn(lawsStandInfoSearch)"
@reset="clearAllSearch('lawsStandInfoSearch')"
>
<div slot="left">
<div class="search-area">
@@ -11,53 +11,87 @@
<!-- <el-input v-model="lawsStandInfoSearch.lawsNumber" clearable placeholder="根据编号查找" :maxlength="100" @keyup.enter.native="getBussionStandTableBtn(lawsStandInfoSearch)"/>-->
<!--</el-formItem>-->
<el-formItem label="政策名称" prop="numberName" class="search-item">
<el-input v-model="lawsStandInfoSearch.lawsName" clearable placeholder="根据政策名称查找" :maxlength="100" @keyup.enter.native="getBussionStandTableBtn(lawsStandInfoSearch)"/>
<el-input
v-model="lawsStandInfoSearch.lawsName"
clearable
placeholder="根据政策名称查找"
:maxlength="100"
@keyup.enter.native="getBussionStandTableBtn(lawsStandInfoSearch)"
/>
</el-formItem>
<el-formItem label="政策文号" prop="lawsNo" class="search-item">
<el-input v-model="lawsStandInfoSearch.lawsNo" clearable placeholder="根据政策文号查找" :maxlength="100" @keyup.enter.native="getBussionStandTableBtn(lawsStandInfoSearch)"/>
<el-input
v-model="lawsStandInfoSearch.lawsNo"
clearable
placeholder="根据政策文号查找"
:maxlength="100"
@keyup.enter.native="getBussionStandTableBtn(lawsStandInfoSearch)"
/>
</el-formItem>
<el-formItem label="发文单位" prop="issueCompany" class="search-item">
<el-input v-model="lawsStandInfoSearch.issueCompany" clearable placeholder="根据发文单位查找" :maxlength="100" @keyup.enter.native="getBussionStandTableBtn(lawsStandInfoSearch)"/>
<el-input
v-model="lawsStandInfoSearch.issueCompany"
clearable
placeholder="根据发文单位查找"
:maxlength="100"
@keyup.enter.native="getBussionStandTableBtn(lawsStandInfoSearch)"
/>
</el-formItem>
<el-formItem label="适用车型" prop="lawsSycx" class="search-item">
<el-select :value="lawsSycx" multiple filterable clearable collapse-tags @change="lawsSycxChange">
<el-select
:value="lawsSycx"
multiple
filterable
clearable
collapse-tags
@change="lawsSycxChange"
>
<el-option
v-for="item in dict.lawsSycxOptions"
placeholder="请选择适用车型"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
v-for="item in dict.lawsSycxOptions"
:key="item.value"
placeholder="请选择适用车型"
:value="item.value"
:label="item.label"
/>
</el-select>
</el-formItem>
<el-formItem label="标准状态" prop="lawsTextState" class="search-item">
<el-formItem label="政策状态" prop="lawsTextState" class="search-item">
<el-select v-model="lawsStandInfoSearch.lawsTextState" filterable clearable>
<el-option
v-for="item in dict.lawsTextStateOptions"
placeholder="请选择标准状态"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
v-for="item in dict.lawsTextStateOptions"
:key="item.value"
placeholder="请选择政策状态"
:value="item.value"
:label="item.label"
/>
</el-select>
</el-formItem>
<el-form-item class="search-item btn-box">
<el-button
type="primary"
size="mini"
class="common-button-primary"
v-btn-permission="'776298201c756873ddc8000eb716e347'"
@click="getBussionStandTableBtn(lawsStandInfoSearch)">
v-btn-permission="'776298201c756873ddc8000eb716e347'"
type="primary"
size="mini"
class="common-button-primary"
@click="getBussionStandTableBtn(lawsStandInfoSearch)"
>
查询
</el-button>
<el-button
size="mini"
class="common-button-default"
v-btn-permission="'f0e6ba2b9736b77f9a271addf692b9c0'"
@click="clearAllSearch('lawsStandInfoSearch')">清空
v-btn-permission="'f0e6ba2b9736b77f9a271addf692b9c0'"
size="mini"
class="common-button-default"
@click="clearAllSearch('lawsStandInfoSearch')"
>
清空
</el-button>
<el-button size="mini" type="primary" class="common-button-primary"
v-btn-permission="'2e08f0dcb187e214127f971419f91174'" @click="selectMoreBtn">高级检索
<el-button
v-btn-permission="'2e08f0dcb187e214127f971419f91174'"
size="mini"
type="primary"
class="common-button-primary"
@click="selectMoreBtn"
>
高级检索
</el-button>
</el-form-item>
</el-form>
@@ -72,11 +106,7 @@
<script>
export default {
name: "policySearch",
data() {
return {
}
},
name: 'PolicySearch',
props: {
lawsStandInfoSearch: {
type: Object,
@@ -87,12 +117,16 @@ export default {
required: true
}
},
data () {
return {
}
},
computed: {
lawsSycx () {
return this.lawsStandInfoSearch.lawsSycx ? this.lawsStandInfoSearch.lawsSycx.split(',') : []
}
},
methods:{
methods: {
// 搜索
getBussionStandTableBtn (item, advancedSearch, type) {
this.$emit('getBussionStandTableBtn')
@@ -0,0 +1,189 @@
<template>
<el-dialog
title="导入"
:visible.sync="visible"
width="500px"
class="dialog"
append-to-body
>
<el-form
ref="formRef"
class="form"
:model="form"
:rules="rules"
label-width="120px"
label-position="left"
>
<el-form-item label="核查清单名称" prop="checkListName">
<el-input
v-model="form.checkListName"
placeholder="请输入核查清单名称"
/>
</el-form-item>
<el-form-item label="导入模板" prop="templateName">
<div
v-for="(id, index) in form.templateId.split(',')"
:key="id"
class="fileClass"
@click="onPreview(id)"
>
{{ form.templateName.split(',')[index] }}
</div>
<el-button size="small" type="primary" @click="addImportModal">上传</el-button>
<el-button size="small" type="primary" @click="downTemplate">空白模板下载</el-button>
</el-form-item>
</el-form>
<div slot="footer">
<el-button size="small" type="primary" :loading="loading" @click="submit">确定</el-button>
<el-button size="small" type="primary" :loading="loading" @click="visible = false">关闭</el-button>
</div>
<Import
ref="importRef"
accept=".xls, .XLS, .xlsx, .XLSX"
:visible.sync="importModalShowFlag"
:action="url.uploadNew"
:limit="1"
:ids.sync="form.templateId"
:names.sync="form.templateName"
@onSuccess="onSuccess"
/>
<!-- 导入失败-->
<el-dialog
:visible.sync="importFailed.visible"
:close-on-click-modal="false"
width="400px"
append-to-body
>
<p slot="title" style="color:#f60">
<span>导入失败</span>
</p>
<div style="max-height: 300px;overflow: auto;padding: 10px 0;">
<p v-html="importFailed.importFailedText" />
</div>
<div slot="footer" class="demo-drawer-footer">
<el-button
type="primary"
round
class="common-button-default"
icon="el-icon-check"
@click="importFailed.visible = false"
>
确认
</el-button>
</div>
</el-dialog>
</el-dialog>
</template>
<script>
import Import from '@/components/hzwlComponents/Import'
export default {
name: 'ImportModel',
components: {
Import
},
data () {
const form = {
checkListName: '',
templateId: '',
templateName: '',
}
const rules = {
checkListName: [
{ required: true, message: '核查清单名称不能为空', trigger: 'change' }
],
templateName: [
{ required: true, message: '导入模板不能为空', trigger: 'change' }
],
}
return {
visible: false,
loading: false,
form,
rules,
url: {
uploadNew: 'api/att/attFile/uploadNew',
importExcelUrl: 'standardTrackingCheckList/importTrackingChecklist',
exportTemplateFile: 'api/standardTrackingCheckList/exportTemplateFile',
},
importModalShowFlag: false,
importFailed: {
visible: false,
importFailedText: '',
},
}
},
methods: {
openModel () {
Object.keys(this.form).forEach(key => this.form[key] = '')
this.$nextTick(() => {
this.$nextTick(() => {
this.$refs.formRef.clearValidate()
this.$refs.importRef.initFileList()
})
})
this.visible = true
},
submit () {
this.$refs.formRef.validate(valid => {
if (valid) {
const config = { _this: this, loading: 'loading' }
this.$http._post(this.url.importExcelUrl, this.form, config).then(res => {
if (res.ok) {
this.$message.success('导入成功')
this.visible = false
this.$emit('ok')
} else {
this.importFailed.importFailedText = res.message
this.importFailed.visible = true
// this.$message.warning(res.message)
}
})
}
})
},
addImportModal () {
this.importModalShowFlag = true
},
onPreview (id) {
this.$preview(id)
},
onSuccess () {
this.$refs.formRef.validateField('templateName')
},
downTemplate () {
window.open(`${this.url.exportTemplateFile}?fileName=标准跟踪清单导入模板`)
}
}
}
</script>
<style scoped lang="less">
.dialog {
/deep/ .el-dialog {
border-radius: 10px;
}
/deep/ .el-dialog__header {
border-bottom: 1px solid #E9E9E9;
}
/deep/ .el-form-item{
margin-bottom: 10px;
color: #666;
border-bottom: 1px dashed #E9E9E9;
.el-form-item__label {
line-height: 50px;
}
.el-form-item__content{
line-height: 50px;
}
.el-input__inner {
border: none !important;
}
}
}
.fileClass {
color: rgb(64, 158, 255);
cursor: pointer;
line-height: 30px;
}
</style>
@@ -0,0 +1,256 @@
<template>
<div style="height: calc(100% - 155px)">
<loading :loading="loading">数据获取中...</loading>
<el-button
type="primary"
size="mini"
style="margin-bottom: 10px;"
:disabled="disabled"
@click="handleSearchStandard"
>
手动查找
</el-button>
<el-button
type="danger"
size="mini"
style="margin-bottom: 10px;"
:disabled="disabled"
@click="handleDeleteStandard"
>
批量删除
</el-button>
<el-table
ref="selection"
class="table"
:data="value"
tooltip-effect="dark"
style="width:100%;height: calc(100% - 40px)"
height="string"
border
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px', fontWeight: 'bold', height: '48px', padding: 0}"
:cell-style="{padding: 0}"
@selection-change="selectionChange"
>
<el-table-column
type="selection"
width="55"
align="center"
/>
<el-table-column
type="index"
width="55"
label="序号"
align="center"
>
<template slot-scope="{scope, column, $index}">
{{ ($index + 1) }}
</template>
</el-table-column>
<el-table-column
label="标准编号/政策文号"
show-overflow-tooltip
prop="lawCode"
align="center"
/>
<el-table-column
show-overflow-tooltip
prop="lawName"
label="标准名称/政策名称"
align="center"
/>
<el-table-column
prop="productType"
align="center"
show-overflow-tooltip
label="产品类型"
>
<template slot-scope="{row, column, $index}">
<span v-if="disabled">{{ trackingChecklistProductTypeMap[row.productType] || '-' }}</span>
<el-select
v-else
v-model="row.productType"
placeholder="请选择产品类型"
size="mini"
clearable
:disabled="disabled"
>
<el-option
v-for="item in dict.trackingChecklistProductType"
:key="item.value"
:value="item.value"
:label="item.label"
/>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="implTime"
align="center"
show-overflow-tooltip
label="实施日期"
>
<template slot-scope="{row, column, $index}">
<span v-if="disabled">{{ row.implTime || '-' }}</span>
<el-date-picker
v-else
v-model="row.implTime"
size="mini"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
:disabled="disabled"
/>
</template>
</el-table-column>
<el-table-column
prop="implRequire"
align="center"
show-overflow-tooltip
label="实施要求"
>
<template slot-scope="{row, column, $index}">
<span v-if="disabled">{{ trackingChecklistPutDemandMap[row.implRequire] || '-' }}</span>
<el-select
v-else
v-model="row.implRequire"
placeholder="请选择实施要求"
clearable
size="mini"
:disabled="disabled"
>
<el-option
v-for="item in dict.trackingChecklistPutDemand"
:key="item.value"
:value="item.value"
:label="item.label"
/>
</el-select>
</template>
</el-table-column>
</el-table>
<StandardListDrawer ref="StandardListDrawerRef" @dragIn="dragIn" />
</div>
</template>
<script>
import StandardListDrawer from '@/components/hzwlComponents/StandardListDrawer'
export default {
name: 'Inventory',
components: {
StandardListDrawer
},
props: {
value: {
type: Array,
default: () => []
},
disabled: {
type: Boolean,
default: false
},
},
data () {
return {
selectedList: [],
dict: {},
loading: false
}
},
computed: {
trackingChecklistProductTypeMap () {
return this.dict.trackingChecklistProductType
? this.dict.trackingChecklistProductType.reduce((obj, item) => {
obj[item.value] = item.label
return obj
}, {})
: []
},
trackingChecklistPutDemandMap () {
return this.dict.trackingChecklistPutDemand
? this.dict.trackingChecklistPutDemand.reduce((obj, item) => {
obj[item.value] = item.label
return obj
}, {})
: []
}
},
created () {
this.getDicTypeListCode()
},
methods: {
handleSearchStandard () {
this.$refs.StandardListDrawerRef.open()
},
selectionChange (selection) {
this.selectedList = selection
},
dragIn ({ list, type }) {
if (list.some(item => this.value.some(i => i.lawId === item.id))) {
this.$message.warning('请勿重复添加数据')
return
}
const newList = list.map(item => {
let lawCode = ''
let lawName = ''
switch (type) {
case 'INLAND':
case 'FOREIGN':
case 'BUSINESS_STAND':
lawCode = item.standCode
lawName = item.standName
break
case 'FOREIGN_LAWS':
lawCode = item.lawsNo
lawName = item.lawsName
break
}
return {
lawId: item.id,
dataSource: type,
lawCode,
lawName,
productType: '',
implTime: '',
implRequire: ''
}
})
this.$emit('input', [ ...this.value, ...newList ])
},
handleDeleteStandard () {
if (this.selectedList.length === 0) {
this.$message.warning('请选择要删除的数据')
return
}
this.$confirm('确认删除这些数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
confirmButtonClass: 'common-button-primary',
roundButton: true
}).then(() => {
const list = this.value.filter(item => !this.selectedList.some(i => i.lawId === item.lawId))
this.$emit('input', list)
})
},
getDicTypeListCode () {
this.loading = true
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
this.dict = { ...res.data }
this.loading = false
})
}
}
}
</script>
<style scoped lang="less">
.table{
/deep/ .el-select.el-select--mini{
width: 100% !important;
}
/deep/ .el-date-editor.el-input, .el-date-editor.el-input__inner {
width: 100% !important;
}
}
</style>
@@ -0,0 +1,134 @@
<template>
<el-timeline>
<el-form
ref="userForm"
:model="roleForm"
:rules="roleRules"
class="label-input-form"
>
<TimeLineFormItem
:id.sync="roleForm.prcCreateUser"
prop="prcCreateUserName"
timestamp="发起流程"
title="起草"
placeholder="请选择起草人"
:name.sync="roleForm.prcCreateUserName"
disabled
/>
<TimeLineFormItem
:id.sync="roleForm.shr1UserIds"
prop="shr1UserNames"
timestamp="审核"
title="审核"
placeholder="请选择审核人"
multiple
:name.sync="roleForm.shr1UserNames"
:disabled="disabled"
/>
<TimeLineFormItem
:id.sync="roleForm.sdr1UserIds"
prop="sdr1UserNames"
timestamp="审定"
title="审定"
placeholder="请选择审定人"
multiple
:name.sync="roleForm.sdr1UserNames"
:disabled="disabled"
/>
<TimeLineFormItem
:id.sync="roleForm.pzr1UserId"
prop="pzr1UserName"
timestamp="批准"
title="批准"
placeholder="请选择批准人"
:name.sync="roleForm.pzr1UserName"
:disabled="disabled"
/>
<TimeLineFormItem
:id.sync="roleForm.djrUserIds"
prop="djrUserNames"
timestamp="责任对接人分配任务"
title="责任对接人分配任务"
placeholder="责任对接人分配任务"
multiple
:name.sync="roleForm.djrUserNames"
:disabled="disabled"
/>
<TimeLineFormItem
:id.sync="roleForm.glyUserId"
prop="glyUserName"
timestamp="管理员"
title="管理员"
:name.sync="roleForm.glyUserName"
:disabled="disabled"
/>
<TimeLineFormItem
:id.sync="roleForm.shr2UserIds"
prop="shr2UserNames"
timestamp="审核"
title="审核"
placeholder="请选择审核人"
multiple
:name.sync="roleForm.shr2UserNames"
:disabled="disabled"
/>
<TimeLineFormItem
:id.sync="roleForm.sdr2UserIds"
prop="sdr2UserNames"
timestamp="审定"
title="审定"
placeholder="请选择审定人"
multiple
:name.sync="roleForm.sdr2UserNames"
:disabled="disabled"
/>
<TimeLineFormItem
:id.sync="roleForm.pzr2UserId"
prop="pzr2UserName"
timestamp="批准"
title="批准"
placeholder="请选择批准人"
:name.sync="roleForm.pzr2UserName"
:disabled="disabled"
/>
<TimeLineFormItem
:id.sync="roleForm.csrUserIds"
prop="csrUserNames"
timestamp="抄送"
title="抄送"
placeholder="请选择抄送人"
:multiple="true"
:name.sync="roleForm.csrUserNames"
:disabled="disabled"
/>
</el-form>
</el-timeline>
</template>
<script>
import TimeLineFormItem from '@/components/hzwlComponents/TimeLineFormItem'
export default {
name: 'PersonInfo',
components: {
TimeLineFormItem
},
props: {
roleForm: {
type: Object,
required: true,
},
roleRules: {
type: Object,
required: true,
},
disabled: {
type: Boolean,
default: false
}
},
}
</script>
<style scoped>
</style>
@@ -0,0 +1,278 @@
<template>
<el-drawer
:title="title"
:visible="showDrawer"
:wrapperClosable="false"
size="1000px"
@close="onClose"
>
<div class="drawer-content">
<el-form
v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
label-width="150px"
label-position="left"
style="height: 100%"
>
<InputFormItem
v-model="form.checkListName"
class="form-item-first"
prop="checkListName"
label="核查清单名称"
:disabled="disabled"
/>
<UploadFormItem
v-if="reloadForm"
label="模板"
:ids.sync="form.checklistTemplate"
:names.sync="form.checklistTemplateName"
:disabled="disabled"
/>
<el-tabs v-model="activeName">
<el-tab-pane label="核查清单" name="1" />
<el-tab-pane label="人员信息" name="2" />
</el-tabs>
<Inventory
v-show="activeName === '1'"
v-model="form.issueTrackList"
:disabled="disabled"
/>
<PersonInfo
v-show="activeName === '2'"
ref="roleForm"
:roleForm="roleForm"
:roleRules="roleRules"
:disabled="disabled"
/>
<loading :loading="loading">数据获取中...</loading>
</el-form>
</div>
<div class="drawer-footer">
<el-button
icon="el-icon-check"
type="primary"
size="mini"
:loading="isSubmit"
:disabled="disabled"
@click="onSubmit"
>
提交
</el-button>
<el-button icon="el-icon-close" size="mini" :loading="isSubmit" @click="onClose">取消</el-button>
</div>
</el-drawer>
</template>
<script>
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
import PersonInfo from './PersonInfo'
import Inventory from './Inventory'
export default {
name: 'AddModel',
components: {
UploadFormItem,
InputFormItem,
PersonInfo,
Inventory,
},
data () {
const form = {
checkListName: '',
checklistTemplate: '',
checklistTemplateName: '',
issueTrackList: [],
}
const roleForm = {
prcCreateUser: this.$store.getters.userInfo.account,
prcCreateUserName: this.$store.getters.userInfo.userName,
shr1UserIds: '',
shr1UserNames: '',
sdr1UserIds: '',
sdr1UserNames: '',
pzr1UserId: '',
pzr1UserName: '',
djrUserIds: '',
djrUserNames: '',
glyUserId: '',
glyUserName: '',
shr2UserIds: '',
shr2UserNames: '',
sdr2UserIds: '',
sdr2UserNames: '',
pzr2UserId: '',
pzr2UserName: '',
csrUserIds: '',
csrUserNames: '',
}
const rules = {
checkListName: [
{ required: true, message: '核查清单名称不能为空', trigger: 'change' }
],
}
const roleRules = {
shr1UserNames: [
{ required: true, message: '请选择审核人', trigger: 'change' },
],
sdr1UserNames: [
{ required: true, message: '请选择审定人', trigger: 'change' },
],
pzr1UserName: [
{ required: true, message: '请选择批准人', trigger: 'change' },
],
djrUserNames: [
{ required: true, message: '请选择责任对接人', trigger: 'change' },
],
glyUserName: [
{ required: true, message: '请选择管理员', trigger: 'change' },
],
shr2UserNames: [
{ required: true, message: '请选择审核人', trigger: 'change' },
],
sdr2UserNames: [
{ required: true, message: '请选择审定人', trigger: 'change' },
],
pzr2UserName: [
{ required: true, message: '请选择批准人', trigger: 'change' },
],
csrUserNames: [
{ required: true, message: '请选择抄送人', trigger: 'change' },
],
}
return {
title: '新增',
showDrawer: false,
isSubmit: false,
form,
initForm: JSON.parse(JSON.stringify(form)),
roleForm,
initRoleForm: JSON.parse(JSON.stringify(roleForm)),
rules,
roleRules,
activeName: '1',
url: {
save: 'standardTrackingCheckList/save',
update: 'standardTrackingCheckList/update',
getById: 'standardTrackingCheckList/getById',
},
loading: false,
reloadForm: true,
disabled: false,
}
},
methods: {
onClose () {
this.showDrawer = false
},
add () {
this.title = '新增'
this.disabled = false
// this.form = JSON.parse(JSON.stringify(this.initForm))
Object.keys(this.initForm).forEach(key => this.form[key] = this.initForm[key])
this.roleForm = JSON.parse(JSON.stringify(this.initRoleForm))
this.reloadForm = false
this.$nextTick(() => {
this.reloadForm = true
this.$nextTick(() => {
this.$refs.form.clearValidate()
this.$refs['roleForm'].$refs['userForm'].clearValidate()
})
})
this.showDrawer = true
},
edit (id, type) {
if (type && type === 'detail') {
this.title = '详情'
this.disabled = true
} else {
this.title = '编辑'
this.disabled = false
}
this.showDrawer = true
const config = { _this: this, loading: 'loading' }
this.$http._getData(this.url.getById, { checklistId: id }, config).then(res => {
if (res.ok) {
this.form = res.data
this.roleForm = res.data.roleForm
this.reloadForm = false
this.$nextTick(() => {
this.reloadForm = true
})
}
})
},
onSubmit () {
if (this.form.issueTrackList.length === 0) {
return this.$message.warning('请添加核查清单')
}
this.$refs.form.validate(valid => {
if (!valid)
return this.$message.warning('请完善基础信息');
this.$refs['roleForm'].$refs['userForm'].validate(valid => {
if (!valid)
return this.$message.warning('请完善人员信息');
const url = this.title === '新增' ? this.url.save : this.url.update
const method = this.title === '新增' ? '_postData' : '_putData'
const form = Object.assign(this.form, { roleForm: this.roleForm })
const config = {
_this: this,
loading: 'isSubmit',
}
this.$http[method](url, form, config).then(res => {
if (res.ok) {
this.$message.success('操作成功')
this.$emit('ok')
this.showDrawer = false
} else {
this.$message.error(res.message)
}
})
})
})
},
}
}
</script>
<style scoped lang="less">
.drawer-content {
padding: 0 19px;
overflow-y: auto;
flex: auto;
/deep/ .el-form-item{
margin-bottom: 0;
color: #666;
.el-form-item__label {
line-height: 50px;
}
.el-form-item__content{
line-height: 50px;
}
.el-input.is-disabled .el-input__inner {
background-color: transparent;
border-color: #E4E7ED;
color: #666;
cursor: not-allowed;
}
}
.form-item-first {
/deep/ .el-input__inner{
padding-left: 0;
border: none;
}
}
}
.drawer-footer {
width: 100%;
padding: 0 20px;
height: 70px;
line-height: 69px;
border-top: 1px solid #e8e8e8;
text-align: right;
background: #fff;
z-index: 999;
}
</style>
@@ -1,27 +1,495 @@
<template>
<div class="standardTrackingList">
<listTracking></listTracking>
<div class="root">
<div class="search-area">
<el-form :modal="searchForm" :inline="true" class="label-input-form">
<el-form-item label="核查清单名称" class="search-item">
<el-input
v-model="searchForm.checkListName"
placeholder="请输入"
/>
</el-form-item>
<el-form-item label="标准编号/政策文号" class="search-item">
<el-input
v-model="searchForm.lawCode"
placeholder="请输入"
/>
</el-form-item>
<el-form-item label="标准名称/政策名称" class="search-item">
<el-input
v-model="searchForm.lawName"
placeholder="请输入"
/>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
v-btn-permission="'3686c281f765e4c0200471a98448c85c'"
type="primary"
class="common-button-primary"
size="small"
@click="onSearch"
>
查询
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
v-btn-permission="'ec9ca45c7aed52012e5be50233ab9201'"
class="common-button-default"
size="small"
@click="onClear"
>
清空
</el-button>
</el-form-item>
</el-form>
</div>
<div class="action-bar">
<el-button
v-btn-permission="'3bdd090479f35afce3d83fc1656fe288'"
type="primary"
size="mini"
@click="add"
>
<i class="el-icon-plus" />新增
</el-button>
<el-button
v-btn-permission="'bae1221a7247bb13b6e13d46272febbe'"
size="mini"
@click="edit"
>
编辑
</el-button>
<el-button
v-btn-permission="'7e573b9dce2ef670aa0ab9bc44c30f0d'"
size="mini"
@click="addImportModal"
>
导入
</el-button>
<el-button
v-btn-permission="'9795ee9432cba2fb1a3774512f0c9c55'"
size="mini"
@click="exportData"
>
导出
</el-button>
<el-button
v-btn-permission="'544653c56dc5d966d366766ea96dcf85'"
size="mini"
@click="onDelete"
>
批量删除
</el-button>
<el-button
v-btn-permission="'e3004dae97503611c75c3efc6e3b9ac7'"
size="mini"
@click="processDistribution"
>
流程下发
</el-button>
</div>
<div class="container">
<el-table
ref="selection"
:data="data"
tooltip-effect="dark"
style="width:100%;height: calc(100% - 57px)"
height="string"
border
class="drag-table"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px', fontWeight: 'bold', height: '48px', padding: 0}"
:cell-style="{padding: 0}"
@sort-change="sortChange"
@selection-change="selectionChange"
>
<el-table-column
type="selection"
width="55"
align="center"
/>
<el-table-column
type="index"
width="55"
label="序号"
align="center"
>
<template slot-scope="{scope, column, $index}">
{{ ($index + 1) + (searchForm.page - 1) * searchForm.pageSize }}
</template>
</el-table-column>
<el-table-column
prop="checkListName"
label="核查清单名称"
align="center"
sortable="custom"
>
<template slot-scope="{row, column, $index}">
<a class="table-jump" style="color: #2d8cf0" @click="detail(row.id)">{{ row.checkListName }}</a>
</template>
</el-table-column>
<el-table-column
prop="createUserId"
label="创建人"
align="center"
sortable="custom"
>
<template slot-scope="{row}">
{{ row.createUserName }}({{ row.createUserId }})
</template>
</el-table-column>
<el-table-column
prop="modifyTime"
label="更新时间"
align="center"
sortable="custom"
/>
<el-table-column
prop="processIssuanceTime"
label="流程下发时间"
align="center"
sortable="custom"
/>
<el-table-column
prop="processCompleteTime"
label="流程完成时间"
align="center"
sortable="custom"
/>
<el-table-column
prop="processNum"
label="流程编号"
align="center"
sortable="custom"
>
<template slot-scope="{row, column, $index}">
<a class="table-jump" style="color: #2d8cf0" @click="toProcessDetail(row.processNum)">{{ row.processNum }}</a>
</template>
</el-table-column>
<el-table-column
prop="processStatus"
label="流程状态"
align="center"
sortable="custom"
>
<template slot-scope="{row, column, $index}">
<span v-if="row.processStatus === 0">未下发</span>
<span v-if="row.processStatus === 1">进行中</span>
<span v-if="row.processStatus === 2">已完成</span>
</template>
</el-table-column>
</el-table>
<pagination :page="searchForm.page" :total="searchForm.total" @pageChange="pageChange" @pageSizeChange="pageSizeChange" />
<loading :loading="loading">数据获取中...</loading>
</div>
<addModel ref="addModel" @ok="onClear" />
<!-- 导入 -->
<ImportZip :visible.sync="importModalShowFlag" :action="url.importExcelUrl" @onSuccess="getData" />
<ImportModel ref="ImportModelRef" @ok="onClear" />
<!-- 导出 -->
<ExportDialog ref="exportDialogRef" @exportName="handleExport" />
<el-dialog title="流程下发" :visible.sync="visible" width="600px" class="processDistributionForm">
<el-form
ref="processDistributionRef"
:model="processDistributionForm"
:rules="processDistributionRules"
label-width="200px"
label-position="left"
>
<DatePickerFormItem
v-model="processDistributionForm.processDeadline"
label="流程截止时间"
prop="processDeadline"
/>
<DatePickerFormItem
v-model="processDistributionForm.feedbackDeadline"
label="责任单位意见反馈截止时间"
prop="feedbackDeadline"
/>
</el-form>
<div slot="footer">
<el-button size="small" :loading="processDistributionLoading" @click="visible = false">取消</el-button>
<el-button size="small" type="primary" :loading="processDistributionLoading" @click="handleProcessDistribution">确定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import listTracking from "@/pages/regulatoryRepository/accessStandardsAndRegulations/page/listTracking";
import addModel from './addModel'
import ImportModel from './ImportModel'
import ImportZip from '@/components/hzwlComponents/importZip'
import ExportDialog from '@/components/hzwlComponents/exportDialog'
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
export default {
name: 'StandardTrackingList',
components: {
listTracking
addModel,
ImportModel,
ImportZip,
ExportDialog,
DatePickerFormItem,
},
data() {
data () {
const searchForm = {
checkListName: '',
lawCode: '',
lawName: '',
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
total: 0,
}
const processDistributionForm = {
trackingChecklistId: '',
processDeadline: '',
feedbackDeadline: '',
}
const processDistributionRules = {
processDeadline: [
{ required: true, message: '流程截止时间不能为空', trigger: 'change' }
],
feedbackDeadline: [
{ required: true, message: '责任单位意见反馈截止时间不能为空', trigger: 'change' }
],
}
return {
searchForm,
initSearchForm: JSON.parse(JSON.stringify(searchForm)),
loading: false,
url: {
page: 'standardTrackingCheckList/page',
save: 'standardTrackingCheckList/save',
delete: 'standardTrackingCheckList/remove',
getById: 'standardTrackingCheckList/getById',
update: 'standardTrackingCheckList/update',
exportTemplateFile: 'api/standardTrackingCheckList/exportTemplateFile',
importExcelUrl: 'api/standardTrackingCheckList/importTrackingChecklist',
exportTrackingChecklist: 'api/standardTrackingCheckList/exportTrackingChecklist',
processDistribution: 'standardTrackingCheckList/processDistribution'
},
data: [],
selectedList: [],
// 导入
importModalShowFlag: false,
visible: false,
processDistributionForm,
processDistributionRules,
processDistributionLoading: false,
selectedListDel: []
}
},
created () {
this.getData()
},
methods: {
getData () {
const config = {
_this: this,
loading: 'loading'
}
this.$http._getData(this.url.page, this.searchForm, config).then(res => {
if(res.ok) {
this.data = res.data.list
this.searchForm.total = res.data.count
}
})
},
pageChange (page) {
this.searchForm.page = page
this.getData()
},
pageSizeChange (pageSize) {
this.searchForm.pageSize = pageSize
this.getData()
},
onSearch () {
this.getData()
},
onClear () {
this.searchForm = JSON.parse(JSON.stringify(this.initSearchForm))
this.getData()
},
selectionChange (data) {
this.selectedList = []
this.selectedListDel = []
for (let i = 0; i < data.length; i++) {
this.selectedList.push(data[i].id)
this.selectedListDel.push( { id: data[i].id, processStatus: data[i].processStatus } )
}
},
sortChange ({ column, prop, order }) {
this.searchForm.sortField = prop
this.searchForm.sortMode = 'asc'
if (order === 'descending') {
this.searchForm.sortMode = 'desc'
}
if (!order) {
this.searchForm.sortField = ''
this.searchForm.sortMode = ''
}
this.getData()
},
add () {
this.$refs.addModel.add()
},
edit () {
if(this.selectedList.length === 0) {
return this.$message.warning('请选择要编辑的数据')
}
if (this.selectedList.length > 1) {
return this.$message.warning('仅能选择一条数据进行编辑')
}
this.$refs.addModel.edit(this.selectedList[0])
},
detail (id) {
this.$refs.addModel.edit(id, 'detail')
},
downTemplate () {
window.open(`${this.url.exportTemplateFile}?fileName=标准跟踪清单导入模板`)
},
addImportModal () {
// this.importModalShowFlag = true
this.$refs.ImportModelRef.openModel()
},
// 导出
exportData () {
this.$refs.exportDialogRef.openModel()
},
handleExport (exportName) {
const params = {
...this.searchForm,
exportName: exportName,
exportIds: this.selectedList.join(',')
}
let query = '?'
for(const i in params) {
if (params[i] && params[i] !== '') {
query = query + i + '=' + params[i] + '&'
}
}
query = query.slice(0, -1)
window.open(this.url.exportTrackingChecklist + query)
this.$refs.exportDialogRef.cancel()
this.$message.success('导出信息成功')
},
onDelete () {
if (this.selectedList.length === 0) {
this.$message.warning('请选择要删除的数据')
return
}
let ids = []
let underWayFlag = false
this.selectedListDel.forEach(item => {
if (item.processStatus === 1) {
underWayFlag = true
}
ids.push(item.id)
})
if (underWayFlag) {
this.$message.warning('进行中的数据不能删除,请重新选择')
return
}
ids = ids.join(',')
this.$confirm('确认删除这些数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
confirmButtonClass: 'common-button-primary',
roundButton: true
}).then(() => {
this.$http._deleteData(this.url.delete, { ids }).then(res => {
if (res.ok) {
this.$message.success('删除成功')
this.getData()
}else {
this.$message.warning(res.message)
}
})
})
},
processDistribution () {
if (this.selectedList.length === 0) {
return this.$message.warning('请选择要下发的数据')
}
this.visible = true
Object.keys(this.processDistributionForm).forEach(key => {
this.processDistributionForm[key] = ''
})
this.$nextTick(() => {
// this.$refs.processDistributionRef.resetFields()
this.$refs.processDistributionRef.clearValidate()
})
},
handleProcessDistribution () {
this.$refs.processDistributionRef.validate(valid => {
if (valid) {
this.processDistributionForm.trackingChecklistId = this.selectedList.join(',')
const config = { _this: this, loading: 'processDistributionLoading' }
this.$http._post(this.url.processDistribution, this.processDistributionForm, config).then(res => {
if (res.ok) {
this.$message.success('操作成功')
this.visible = false
this.getData()
} else {
this.$message.warning(res.message)
}
})
}
})
},
toProcessDetail (prcNum) {
const routeUrl = this.$router.resolve({
name: 'ProcessDetail',
query: { prcNum }
})
window.open(routeUrl.href, '_blank')
}
}
}
</script>
<style lang="less" scoped>
.standardTrackingList {
height: 100%;
}
.root{
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
}
.search-area {
.search-item /deep/ .el-button--small {
padding: 8px 15px !important;
height: 30px !important;
}
}
.action-bar /deep/ .el-button{
height: 32px !important;
}
.container {
flex: 1;
}
.processDistributionForm {
/deep/ .el-form-item{
margin-bottom: 10px;
color: #666;
.el-form-item__label {
line-height: 50px;
}
.el-form-item__content{
line-height: 50px;
}
.el-input__inner{
border: none;
}
.el-date-editor.el-input, .el-date-editor.el-input__inner {
width: 100%;
}
.el-input__inner{
color: #666 !important;
}
}
.form-item-first {
}
}
</style>
@@ -48,10 +48,10 @@ export default {
label: "项目合规评估流程-项目",
value: "6"
},
{
/* {
label: "政策征求意见流程",
value: "laws2"
},
},*/
{
label: "未符合项整改流程",
value: "8"
@@ -84,10 +84,10 @@ export default {
label: "参与外部标准制修订信息提报流程",
value: "14"
},
{
/* {
label: "重点认证标准/政策合规性项目审查流程",
value: "laws3"
},
},*/
{
label: '外部标准化协会入会流程',
value: "20"
@@ -1,15 +1,15 @@
<!-- 流程信息公共标题 -->
<template>
<div class="contentTitle">
<div class="titleIcon"></div>
<div class="titleText"><slot name="title"></slot></div>
</div>
<div class="contentTitle">
<div class="titleIcon" />
<div class="titleText"><slot name="title" /></div>
</div>
</template>
<script>
export default {
name: "ProcessTitle"
}
export default {
name: 'ProcessTitle'
}
</script>
<style scoped lang="less">
@@ -27,6 +27,7 @@
margin-left: 10px;
font-size: 16px;
font-weight: bold;
flex: 1;
}
}
</style>
@@ -48,11 +48,14 @@
}
},
methods: {
getFile(fileList) {
this.fileList = fileList || []
this.fileMadel = true
},
beginImportFile(file) {
getFile (fileList) {
this.fileList = fileList || []
this.fileList.forEach(item => {
item.name = item.name || item.oldFileName
});
this.fileMadel = true
},
beginImportFile(file) {
var filename = file.name
var index1 = filename.lastIndexOf('.')
var index2 = filename.length
@@ -1,159 +1,197 @@
<template>
<div style="margin-top: 10px">
<el-table
:data="infoTableDatas"
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%;"
height="500"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
type="index"
width="55"
label="序号"
align="center">
<template slot-scope="{scope, column, $index}">
{{ ($index + 1) }}
</template>
</el-table-column>
<el-table-column
prop="lawCode"
label="标准编号/政策文号"
show-overflow-tooltip
align="center"
width="180"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="lawName"
label="标准名称/政策名称"
min-width="180"
align="center"
>
</el-table-column>
<el-table-column
prop="productType"
show-overflow-tooltip
width="120"
align="center"
label="产品类型">
</el-table-column>
<el-table-column
prop="implTime"
align="center"
show-overflow-tooltip
width="170"
label="实施日期">
</el-table-column>
<el-table-column
prop="implRequire"
show-overflow-tooltip
align="center"
width="180"
label="实施要求">
</el-table-column>
<el-table-column
prop="resourceAccordwithCircumstance"
show-overflow-tooltip
align="center"
width="180"
label="资源符合情况">
</el-table-column>
<el-table-column
prop="devPlan"
align="center"
show-overflow-tooltip
width="180"
label="开发计划">
</el-table-column>
<el-table-column
prop="sopDate"
align="center"
show-overflow-tooltip
width="170"
label="SOP时间">
</el-table-column>
<el-table-column
prop="finishCircumstance"
align="center"
width="180"
show-overflow-tooltip
label="完成情况">
</el-table-column>
<el-table-column
prop="sopDateSolutions"
align="center"
show-overflow-tooltip
width="400"
label="SOP时间超过法规时限的空档期的业务应对方案">
</el-table-column>
<el-table-column
v-if="showInput"
align="center"
fixed="right"
width="80"
label="操作">
<template slot-scope="scope">
<a class="scopeText" @click="editModel(scope.row,scope.$index)">
编辑
</a>
</template>
</el-table-column>
</el-table>
<businessDivisionEdit ref="businessDivisionEditRef" @businessDivisionEditForm="businessDivisionEditForm"/>
</div>
<div style="margin-top: 10px">
<loading :loading="loading">数据获取中...</loading>
<el-table
ref="multipleTable"
:data="infoTableDatas"
tooltip-effect="dark"
border
style="width: 100%;"
height="500"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
>
<el-table-column
type="selection"
width="55"
align="center"
/>
<el-table-column
type="index"
width="55"
label="序号"
align="center"
>
<template slot-scope="{scope, column, $index}">
{{ ($index + 1) }}
</template>
</el-table-column>
<el-table-column
prop="lawCode"
label="标准编号/政策文号"
show-overflow-tooltip
align="center"
width="180"
/>
<el-table-column
show-overflow-tooltip
prop="lawName"
label="标准名称/政策名称"
min-width="180"
align="center"
/>
<el-table-column
prop="productType"
show-overflow-tooltip
width="120"
align="center"
label="产品类型"
>
<template slot-scope="{row}">
<span>{{ trackingChecklistProductTypeMap[row.productType] || '-' }}</span>
</template>
</el-table-column>
<el-table-column
prop="implTime"
align="center"
show-overflow-tooltip
width="170"
label="实施日期"
/>
<el-table-column
prop="implRequire"
show-overflow-tooltip
align="center"
width="180"
label="实施要求"
>
<template slot-scope="{row}">
<span>{{ trackingChecklistPutDemandMap[row.implRequire] || '-' }}</span>
</template>
</el-table-column>
<el-table-column
prop="resourceAccordwithCircumstance"
show-overflow-tooltip
align="center"
width="180"
label="资源符合情况"
/>
<el-table-column
prop="devPlan"
align="center"
show-overflow-tooltip
width="180"
label="开发计划"
/>
<el-table-column
prop="sopDate"
align="center"
show-overflow-tooltip
width="170"
label="SOP时间"
/>
<el-table-column
prop="finishCircumstance"
align="center"
width="180"
show-overflow-tooltip
label="完成情况"
/>
<el-table-column
prop="sopDateSolutions"
align="center"
show-overflow-tooltip
width="400"
label="SOP时间超过法规时限的空档期的业务应对方案"
/>
<el-table-column
v-if="showInput"
align="center"
fixed="right"
width="80"
label="操作"
>
<template slot-scope="scope">
<a class="scopeText" @click="editModel(scope.row,scope.$index)">
编辑
</a>
</template>
</el-table-column>
</el-table>
<businessDivisionEdit ref="businessDivisionEditRef" @businessDivisionEditForm="businessDivisionEditForm" />
</div>
</template>
<script>
import businessDivisionEdit from "./businessDivisionEdit";
import businessDivisionEdit from './businessDivisionEdit';
export default {
name: "businessDivisionList",
components: {
businessDivisionEdit
},
data() {
return {
infoTableDatas: [],
taskKey: this.$route.query.taskDefinitionKey,
selectNum: 0,
}
},
computed: {
showInput() {
if (this.taskKey == 'PolicyComplianceProgramReviewProcessKey8' ||
this.taskKey == 'PolicyComplianceProgramReviewProcessKey9') {
return true
}
return false
},
},
methods: {
getData(val) {
this.infoTableDatas = val || []
this.infoTableDatas = [...this.infoTableDatas]
},
submit(callback) {
callback && callback(this.infoTableDatas)
},
businessDivisionEditForm(row) {
this.infoTableDatas[this.selectNum] = row
this.infoTableDatas = [...this.infoTableDatas]
},
editModel(row, index) {
this.selectNum = index
this.$refs.businessDivisionEditRef.edit(JSON.parse(JSON.stringify(row)))
},
}
export default {
name: 'BusinessDivisionList',
components: {
businessDivisionEdit
},
data () {
return {
infoTableDatas: [],
taskKey: this.$route.query.taskDefinitionKey,
selectNum: 0,
loading: false,
dict: []
}
},
mounted() {
this.getDicTypeListCode()
},
computed: {
trackingChecklistProductTypeMap () {
return this.dict.trackingChecklistProductType
? this.dict.trackingChecklistProductType.reduce((obj, item) => {
obj[item.value] = item.label
return obj
}, {})
: []
},
trackingChecklistPutDemandMap () {
return this.dict.trackingChecklistPutDemand
? this.dict.trackingChecklistPutDemand.reduce((obj, item) => {
obj[item.value] = item.label
return obj
}, {})
: []
},
showInput () {
if (this.taskKey == 'PolicyComplianceProgramReviewProcessKey8' ||
this.taskKey == 'PolicyComplianceProgramReviewProcessKey9') {
return true
}
return false
},
},
methods: {
getData (val) {
this.infoTableDatas = val || []
this.infoTableDatas = [ ...this.infoTableDatas ]
},
submit (callback) {
callback && callback(this.infoTableDatas)
},
businessDivisionEditForm (row) {
this.infoTableDatas[this.selectNum] = row
this.infoTableDatas = [ ...this.infoTableDatas ]
},
editModel (row, index) {
this.selectNum = index
this.$refs.businessDivisionEditRef.edit(JSON.parse(JSON.stringify(row)))
},
getDicTypeListCode () {
this.loading = true
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
this.dict = { ...res.data }
this.loading = false
})
}
}
}
</script>
<style scoped>
File diff suppressed because it is too large Load Diff
@@ -1,279 +1,320 @@
<template>
<div>
<el-drawer
:title="modalshowtitle"
:visible.sync="modalshowflag"
:wrapperClosable="false"
size="800px"
@close="resetForm"
ref="standard"
append-to-body
<div>
<el-drawer
ref="standard"
:title="modalshowtitle"
:visible.sync="modalshowflag"
:wrapperClosable="false"
size="800px"
append-to-body
@close="resetForm"
>
<!-- 新增样式 -->
<div class="demo-drawer-content">
<el-form
ref="sarStandardsInfoForm"
:model="sarStandardsInfoEO"
:rules="sarStandardsInfoRules"
class="label-input-form"
>
<!-- 新增样式 -->
<div class="demo-drawer-content">
<el-form
ref="sarStandardsInfoForm"
:model="sarStandardsInfoEO"
:rules="sarStandardsInfoRules"
class="label-input-form"
>
<el-form-item label="章节编号" prop="chapterNumber" label-width="150px" class="add-form-item">
<el-input v-model.trim="sarStandardsInfoEO.chapterNumber"
placeholder="请输入章节编号"
clearable></el-input>
</el-form-item>
<el-form-item label="章节条目" prop="chapterEntries" label-width="150px" class="add-form-item">
<el-input v-model.trim="sarStandardsInfoEO.chapterEntries"
placeholder="请输入章节条目"
clearable></el-input>
</el-form-item>
<el-form-item label="修改前" prop="modifyBefore" label-width="150px" class="add-form-item">
<el-input v-model.trim="sarStandardsInfoEO.modifyBefore"
placeholder="请输入修改前"
clearable></el-input>
</el-form-item>
<el-form-item label="修改后" prop="modifyAfter" label-width="150px" class="add-form-item">
<el-input v-model.trim="sarStandardsInfoEO.modifyAfter"
placeholder="请输入修改后"
clearable></el-input>
</el-form-item>
<el-form-item label="修改理由" prop="modifyReason" label-width="150px" class="add-form-item">
<el-input v-model.trim="sarStandardsInfoEO.modifyReason"
placeholder="请输入修改理由"
clearable></el-input>
</el-form-item>
<el-form-item label="原因" prop="cause" label-width="150px" class="add-form-item">
<el-input v-model.trim="sarStandardsInfoEO.cause"
placeholder="请输入原因"
clearable></el-input>
</el-form-item>
<el-form-item label="附件"
label-width="150px"
class="add-form-item">
<el-input
disabled
style="display: none;"
v-model="sarStandardsInfoEO.annexFileId"
clearable
></el-input>
<div v-if="sarStandardsInfoEO.annexFileList && sarStandardsInfoEO.annexFileList.length > 0">
<div v-for="(item, index) in sarStandardsInfoEO.annexFileList" :key="index"
style="margin-right: 5px;padding-left: 10px">
<div class="fileClass">
<span @click="handlePreview(item)">{{ item.name }}</span>
<el-button size="small"
@click="clickButtonToUpload(item)"
icon="el-icon-download"
style="height: 32px; margin-left: 5px;"
></el-button>
</div>
</div>
</div>
<div>
<el-button type="primary"
class="common-button-primary"
@click="fileUpload('annexFileList','annexFileId','.zip,.docx,.doc,.xls,.xlsx',200)"
size="mini">
点击上传
</el-button>
</div>
</el-form-item>
<el-form-item label="处理意见"
v-if="isHandlingSuggestion"
prop="handlingOpinions" label-width="150px" class="add-form-item">
<el-input v-model.trim="sarStandardsInfoEO.handlingOpinions"
placeholder="请输入处理意见"
clearable></el-input>
</el-form-item>
<el-form-item label="处理原因" prop="handlingCause"
v-if="isHandlingSuggestion"
label-width="150px" class="add-form-item">
<el-input v-model.trim="sarStandardsInfoEO.handlingCause"
placeholder="请输入处理原因"
clearable></el-input>
</el-form-item>
</el-form>
<el-form-item label="章节编号" prop="chapterNumber" label-width="150px" class="add-form-item">
<el-input
v-model.trim="sarStandardsInfoEO.chapterNumber"
placeholder="请输入章节编号"
clearable
/>
</el-form-item>
<el-form-item label="章节条目" prop="chapterEntries" label-width="150px" class="add-form-item">
<el-input
v-model.trim="sarStandardsInfoEO.chapterEntries"
placeholder="请输入章节条目"
clearable
/>
</el-form-item>
<el-form-item label="修改前" prop="modifyBefore" label-width="150px" class="add-form-item">
<el-input
v-model.trim="sarStandardsInfoEO.modifyBefore"
placeholder="请输入修改前"
clearable
/>
</el-form-item>
<el-form-item label="修改后" prop="modifyAfter" label-width="150px" class="add-form-item">
<el-input
v-model.trim="sarStandardsInfoEO.modifyAfter"
placeholder="请输入修改后"
clearable
/>
</el-form-item>
<el-form-item label="修改理由" prop="modifyReason" label-width="150px" class="add-form-item">
<el-input
v-model.trim="sarStandardsInfoEO.modifyReason"
placeholder="请输入修改理由"
clearable
/>
</el-form-item>
<el-form-item label="原因" prop="cause" label-width="150px" class="add-form-item">
<el-input
v-model.trim="sarStandardsInfoEO.cause"
placeholder="请输入原因"
clearable
/>
</el-form-item>
<el-form-item
label="附件"
label-width="150px"
class="add-form-item"
>
<el-input
v-model="sarStandardsInfoEO.annexFileId"
disabled
style="display: none;"
clearable
/>
<div v-if="sarStandardsInfoEO.annexFileList && sarStandardsInfoEO.annexFileList.length > 0">
<div
v-for="(item, index) in sarStandardsInfoEO.annexFileList"
:key="index"
style="margin-right: 5px;padding-left: 10px"
>
<div class="fileClass">
<span @click="handlePreview(item)">{{ item.name || item.oldFileName }}</span>
<el-button
size="small"
icon="el-icon-download"
style="height: 32px; margin-left: 5px;"
@click="clickButtonToUpload(item)"
/>
</div>
</div>
</div>
<div class="demo-drawer-footer">
<el-button size="mini" class="common-button-primary" icon="el-icon-check" type="primary"
@click="saveOrUpdateStands" :loading="isSubmit">提交
</el-button>
<el-button size="mini" class="common-button-default" icon="el-icon-close" @click="resetForm">取消
</el-button>
<div>
<el-button
type="primary"
class="common-button-primary"
size="mini"
@click="fileUpload('annexFileList','annexFileId','.zip,.docx,.doc,.xls,.xlsx',200)"
>
点击上传
</el-button>
</div>
</el-drawer>
<processFile
ref="processFileRef"
:accept="accept"
:fileMax_M="fileMax_M"
@uploadSuccess="uploadSuccess"/>
</div>
</el-form-item>
<el-form-item
v-if="isHandlingSuggestion"
label="处理意见"
prop="handlingOpinions"
label-width="150px"
class="add-form-item"
>
<el-input
v-model.trim="sarStandardsInfoEO.handlingOpinions"
placeholder="请输入处理意见"
clearable
/>
</el-form-item>
<el-form-item
v-if="isHandlingSuggestion"
label="处理原因"
prop="handlingCause"
label-width="150px"
class="add-form-item"
>
<el-input
v-model.trim="sarStandardsInfoEO.handlingCause"
placeholder="请输入处理原因"
clearable
/>
</el-form-item>
</el-form>
</div>
<div class="demo-drawer-footer">
<el-button
size="mini"
class="common-button-primary"
icon="el-icon-check"
type="primary"
:loading="isSubmit"
@click="saveOrUpdateStands"
>
提交
</el-button>
<el-button size="mini" class="common-button-default" icon="el-icon-close" @click="resetForm">
取消
</el-button>
</div>
</el-drawer>
<processFile
ref="processFileRef"
:accept="accept"
:fileMax_M="fileMax_M"
@uploadSuccess="uploadSuccess"
/>
</div>
</template>
<script>
import processFile from "../../../components/processFile";
import processFile from '../../../components/processFile';
export default {
name: "addModel",
components: {
processFile
},
data() {
return {
modalshowflag: false,
modalshowtitle: '添加',
isSubmit: false,
sarStandardsInfoEO: {},
sarStandardsInfoRules: {
chapterNumber: [
{
type: "string",
max: 200,
message: "章节编号不能超过200个字符",
trigger: "blur"
}
],
chapterEntries: [
{
type: "string",
max: 200,
message: "章节条目不能超过200个字符",
trigger: "blur"
}
],
modifyBefore: [
{
type: "string",
max: 200,
message: "修改前不能超过200个字符",
trigger: "blur"
}
],
modifyAfter: [
{
type: "string",
max: 200,
message: "修改后不能超过200个字符",
trigger: "blur"
}
],
modifyReason: [
{
type: "string",
max: 200,
message: "修改理由不能超过200个字符",
trigger: "blur"
}
],
handlingOpinions: [
{
type: "string",
max: 200,
message: "处理意见不能超过200个字符",
trigger: "blur"
}
],
handlingCause: [
{
type: "string",
max: 200,
message: "处理原因不能超过200个字符",
trigger: "blur"
}
],
cause: [
{
type: "string",
max: 200,
message: "原因不能超过200个字符",
trigger: "blur"
}
],
},
fileListName: '',
fileName: '',
accept: '',
fileMax_M: 0,
taskKey: this.$route.query.taskDefinitionKey,
}
},
export default {
name: 'AddModel',
components: {
processFile
},
data () {
return {
modalshowflag: false,
modalshowtitle: '添加',
isSubmit: false,
sarStandardsInfoEO: {},
sarStandardsInfoRules: {
chapterNumber: [
{
type: 'string',
max: 200,
message: '章节编号不能超过200个字符',
trigger: 'blur'
}
],
chapterEntries: [
{
type: 'string',
max: 200,
message: '章节条目不能超过200个字符',
trigger: 'blur'
}
],
modifyBefore: [
{
type: 'string',
max: 200,
message: '修改前不能超过200个字符',
trigger: 'blur'
}
],
modifyAfter: [
{
type: 'string',
max: 200,
message: '修改后不能超过200个字符',
trigger: 'blur'
}
],
modifyReason: [
{
type: 'string',
max: 200,
message: '修改理由不能超过200个字符',
trigger: 'blur'
}
],
handlingOpinions: [
{
type: 'string',
max: 200,
message: '处理意见不能超过200个字符',
trigger: 'blur'
}
],
handlingCause: [
{
type: 'string',
max: 200,
message: '处理原因不能超过200个字符',
trigger: 'blur'
}
],
cause: [
{
type: 'string',
max: 200,
message: '原因不能超过200个字符',
trigger: 'blur'
}
],
},
fileListName: '',
fileName: '',
accept: '',
fileMax_M: 0,
taskKey: this.$route.query.taskDefinitionKey,
}
},
computed: {
isHandlingSuggestion() {
if (this.taskKey == 'PolicySolicitOpinionProcessKey12') {
return true
}
return false
},
},
computed: {
isHandlingSuggestion () {
if (this.taskKey == 'PolicySolicitOpinionProcessKey11') {
return true
}
return false
},
},
methods: {
handlePreview(file) {
let attId = ""
if (file && file.id) {
attId = file.id
} else {
attId = file.response.data.id
}
this.$preview(attId)
},
clickButtonToUpload(file) {
const attId = file.attId
if (attId) {
window.location.href = '/api/att/attFile/downloadFileForSarNew?fileId=' + attId
} else {
this.$message.warning('文件不存在,下载失败')
}
},
fileUpload(fileListName, fileName, accept, fileMax_M) {
this.fileListName = fileListName
this.fileName = fileName
this.accept = accept
this.fileMax_M = fileMax_M
this.$refs.processFileRef.getFile(this.sarStandardsInfoEO[this.fileListName])
},
uploadSuccess(fileList, fileId) {
this.sarStandardsInfoEO[this.fileListName] = fileList
this.sarStandardsInfoEO[this.fileName] = fileId
this.sarStandardsInfoEO = {...this.sarStandardsInfoEO}
},
add() {
this.modalshowflag = true
this.sarStandardsInfoEO = {}
},
edit(row) {
this.modalshowflag = true
this.sarStandardsInfoEO = JSON.parse(JSON.stringify(row))
},
resetForm() {
this.modalshowflag = false
},
saveOrUpdateStands() {
this.$refs['sarStandardsInfoForm'].validate((valid) => {
if (valid) {
if (!this.sarStandardsInfoEO.chapterNumber && !this.sarStandardsInfoEO.chapterEntries
methods: {
handlePreview (file) {
let attId = ''
if (file && file.id) {
attId = file.id
} else {
attId = file.response.data.id
}
this.$preview(attId)
},
clickButtonToUpload (file) {
const attId = file.attId || file.id
if (attId) {
window.location.href = '/api/att/attFile/downloadFileForSarNew?fileId=' + attId
} else {
this.$message.warning('文件不存在,下载失败')
}
},
fileUpload (fileListName, fileName, accept, fileMax_M) {
this.fileListName = fileListName
this.fileName = fileName
this.accept = accept
this.fileMax_M = fileMax_M
this.$refs.processFileRef.getFile(this.sarStandardsInfoEO[this.fileListName])
},
uploadSuccess (fileList, fileId) {
this.sarStandardsInfoEO[this.fileListName] = fileList
this.sarStandardsInfoEO[this.fileName] = fileId
this.sarStandardsInfoEO = { ...this.sarStandardsInfoEO }
},
add () {
this.modalshowflag = true
this.sarStandardsInfoEO = {}
},
edit (row) {
this.modalshowflag = true
this.sarStandardsInfoEO = JSON.parse(JSON.stringify(row))
},
resetForm () {
this.modalshowflag = false
},
saveOrUpdateStands () {
this.$refs['sarStandardsInfoForm'].validate((valid) => {
if (valid) {
if (!this.sarStandardsInfoEO.chapterNumber && !this.sarStandardsInfoEO.chapterEntries
&& !this.sarStandardsInfoEO.modifyBefore && !this.sarStandardsInfoEO.modifyAfter
&& !this.sarStandardsInfoEO.modifyReason && !this.sarStandardsInfoEO.annexFileId
&& !this.sarStandardsInfoEO.cause && !this.sarStandardsInfoEO.handlingOpinions
&& !this.sarStandardsInfoEO.handlingCause) {
this.$message.warning('请至少填写一条数据,不能都为空')
return
}
let timestamp = new Date().getTime();
if (!this.sarStandardsInfoEO.dataId && !this.sarStandardsInfoEO.id) {
this.sarStandardsInfoEO.dataId = timestamp
}
this.isSubmit = true
this.$emit('addModelForm', this.sarStandardsInfoEO)
this.modalshowflag = false
this.$nextTick(() => {
this.isSubmit = false
})
}
})
},
this.$message.warning('请至少填写一条数据,不能都为空')
return
}
const timestamp = new Date().getTime();
if (!this.sarStandardsInfoEO.dataId && !this.sarStandardsInfoEO.id) {
this.sarStandardsInfoEO.dataId = timestamp
}
this.isSubmit = true
this.$emit('addModelForm', this.sarStandardsInfoEO)
this.modalshowflag = false
this.$nextTick(() => {
this.isSubmit = false
})
}
}
})
},
}
}
</script>
<style lang="less" scoped>
@@ -46,8 +46,8 @@
this.$preview(attId)
},
clickButtonToUpload(file) {
const attId = file.attId
if (attId) {
const attId = file.attId || file.id
if (attId) {
window.location.href = '/api/att/attFile/downloadFileForSarNew?fileId=' + attId
} else {
this.$message.warning('文件不存在,下载失败')
@@ -1,398 +1,431 @@
<template>
<div>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<div class="action-bar">
<el-button
type="primary"
class="common-button-primary add-button"
@click="addModel"
v-if="isNodeDisplay"
><i class="el-icon-plus"></i>新增
</el-button>
<el-button
class="common-button-primary add-button"
@click="batchDeleteModel"
v-if="isNodeDisplay"
><i class="iconfont">&#xe61b;</i>批量删除
</el-button>
<el-button
type="primary"
v-if="isGenerateSummary"
class="common-button-primary add-button"
@click="generateSummary"
>生成汇总单
</el-button>
<el-button
type="primary"
v-if="isGenerateSummary"
class="common-button-primary add-button"
@click="generateReportComments"
>生成上报意见
</el-button>
<el-button
type="primary"
v-if="isExport"
class="common-button-primary add-button"
@click="exportModel"
>导出
</el-button>
</div>
<el-table
height="500"
ref="selection"
:data="histortData"
tooltip-effect="dark"
style="width: 100%;margin-bottom: 20px"
border
row-key="id"
@selection-change="selectChange"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
<el-table-column
type="selection"
width="55"
v-if="showSelection"
align="center">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="80"
align="center"
>
</el-table-column>
<el-table-column
prop="chapterNumber"
label="章节编号"
show-overflow-tooltip
align="center"
>
</el-table-column>
<el-table-column
prop="chapterEntries"
label="章节条目"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
prop="modifyBefore"
label="修改前"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
prop="modifyAfter"
label="修改后"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
prop="modifyReason"
label="修改理由"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
prop="cause"
label="原因"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
prop="completeFlag"
label="附件"
align="center">
<template slot-scope="scope">
<a v-if="scope.row.annexFileId" @click="fileClick(scope.row.annexFileList)"
class="textClass">查看文件</a>
<span v-else>--</span>
</template>
</el-table-column>
<el-table-column
v-if="isPersonInCharge"
prop="createUserName"
label="责任人"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
v-if="isCompleteFlag"
prop="createUserDeptName"
label="提出部门"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
v-if="isCompleteFlag"
prop="createUserName"
label="提出人"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
v-if="isCompleteFlag"
prop="handlingOpinions"
label="处理意见"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
prop="handlingCause"
label="处理原因"
v-if="isCompleteFlag"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
label="操作"
width="70"
v-if="isOperate"
align="center">
<template slot-scope="scope">
<div @click.stop style="display: inline-block">
<el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="[scope.row, scope.$index, '编辑']">编辑
</el-dropdown-item>
<el-dropdown-item v-if="taskKey != 'PolicySolicitOpinionProcessKey12'"
:command="[scope.row, scope.$index,'删除']">删除
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
<addModel ref="addModelRef" @addModelForm="addModelForm"/>
<fileViewModel ref="fileViewModelRef"/>
<div>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<div class="action-bar">
<el-button
v-if="isNodeDisplay"
type="primary"
class="common-button-primary add-button"
@click="addModel"
>
<i class="el-icon-plus" />新增
</el-button>
<el-button
v-if="isNodeDisplay"
class="common-button-primary add-button"
@click="batchDeleteModel"
>
<i class="iconfont">&#xe61b;</i>批量删除
</el-button>
<el-button
v-if="isGenerateSummary"
type="primary"
class="common-button-primary add-button"
@click="generateSummary"
>
生成汇总单
</el-button>
<el-button
v-if="isGenerateSummary"
type="primary"
class="common-button-primary add-button"
@click="generateReportComments"
>
生成上报意见
</el-button>
<el-button
v-if="isExport"
type="primary"
class="common-button-primary add-button"
@click="exportModel"
>
导出
</el-button>
</div>
<el-table
ref="selection"
height="500"
:data="histortData"
tooltip-effect="dark"
style="width: 100%;margin-bottom: 20px"
border
row-key="id"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
@selection-change="selectChange"
>
<el-table-column
v-if="showSelection"
type="selection"
width="55"
align="center"
/>
<el-table-column
type="index"
label="序号"
width="80"
align="center"
/>
<el-table-column
prop="chapterNumber"
label="章节编号"
show-overflow-tooltip
align="center"
/>
<el-table-column
prop="chapterEntries"
label="章节条目"
show-overflow-tooltip
align="center"
/>
<el-table-column
prop="modifyBefore"
label="修改前"
show-overflow-tooltip
align="center"
/>
<el-table-column
prop="modifyAfter"
label="修改后"
show-overflow-tooltip
align="center"
/>
<el-table-column
prop="modifyReason"
label="修改理由"
show-overflow-tooltip
align="center"
/>
<el-table-column
prop="cause"
label="原因"
show-overflow-tooltip
align="center"
/>
<el-table-column
prop="completeFlag"
label="附件"
align="center"
>
<template slot-scope="scope">
<a
v-if="scope.row.annexFileId"
class="textClass"
@click="fileClick(scope.row.annexFileList)"
>查看文件</a>
<span v-else>--</span>
</template>
</el-table-column>
<el-table-column
v-if="isPersonInCharge"
prop="createUserName"
label="责任人"
show-overflow-tooltip
align="center"
/>
<el-table-column
v-if="isCompleteFlag"
prop="createUserDeptName"
label="提出部门"
show-overflow-tooltip
align="center"
/>
<el-table-column
v-if="isCompleteFlag"
prop="createUserName"
label="提出人"
show-overflow-tooltip
align="center"
/>
<el-table-column
v-if="isCompleteFlag"
prop="handlingOpinions"
label="处理意见"
show-overflow-tooltip
align="center"
/>
<el-table-column
v-if="isCompleteFlag"
prop="handlingCause"
label="处理原因"
show-overflow-tooltip
align="center"
/>
<el-table-column
v-if="isOperate"
label="操作"
width="70"
align="center"
>
<template slot-scope="scope">
<div style="display: inline-block" @click.stop>
<el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="[scope.row, scope.$index, '编辑']">
编辑
</el-dropdown-item>
<el-dropdown-item
v-if="taskKey != 'PolicySolicitOpinionProcessKey12'"
:command="[scope.row, scope.$index,'删除']"
>
删除
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
<addModel ref="addModelRef" @addModelForm="addModelForm" />
<fileViewModel ref="fileViewModelRef" />
</div>
</template>
<script>
import ProcessTitle from "../../../components/ProcessTitle";
import fileViewModel from "./fileViewModel";
import addModel from "./addModel";
import ProcessTitle from '../../../components/ProcessTitle';
import fileViewModel from './fileViewModel';
import addModel from './addModel';
export default {
name: "solicitationList",
components: {
ProcessTitle,
addModel,
fileViewModel
},
data() {
return {
histortData: [],
addOrEdit: 'add',
editNum: 0,
selectList: [],
deleteList: [],
taskKey: this.$route.query.taskDefinitionKey,//流程节点key
}
},
computed: {
isNodeDisplay() {//是否展示新增和批量删除
if (this.$route.query.operate && this.$route.query.operate == 'view') {
return false
}
if (this.taskKey == 'PolicySolicitOpinionProcessKey8' ||
this.taskKey == 'PolicySolicitOpinionProcessKey9') {
return true
}
return false
},
isGenerateSummary() {//是否展示生成汇总单和生成上报意见
if (this.$route.query.operate && this.$route.query.operate == 'view') {
return false
}
if (this.taskKey == 'PolicySolicitOpinionProcessKey13' ||
this.taskKey == 'PolicySolicitOpinionProcessKey14' ||
this.taskKey == 'PolicySolicitOpinionProcessKey15') {
return true
}
return false
},
isExport() {//是否展示导出
if (this.$route.query.operate && this.$route.query.operate == 'view') {
return false
}
if (this.taskKey == 'PolicySolicitOpinionProcessKey12') {
return true
}
return false
},
isPersonInCharge() {
//是否展示责任人
if (this.taskKey == 'PolicySolicitOpinionProcessKey9' ||
export default {
name: 'SolicitationList',
components: {
ProcessTitle,
addModel,
fileViewModel
},
data () {
return {
histortData: [],
addOrEdit: 'add',
editNum: 0,
selectList: [],
deleteList: [],
taskKey: this.$route.query.taskDefinitionKey, // 流程节点key
}
},
computed: {
isNodeDisplay () {// 是否展示新增和批量删除
if (this.$route.query.operate && this.$route.query.operate == 'view') {
return false
}
if (this.taskKey == 'PolicySolicitOpinionProcessKey8' ||
this.taskKey == 'PolicySolicitOpinionProcessKey9' ||
this.taskKey == 'PolicySolicitOpinionProcessKey11') {
return true
}
return false
},
isGenerateSummary () {// 是否展示生成汇总单和生成上报意见
if (this.$route.query.operate && this.$route.query.operate == 'view') {
return false
}
if (this.taskKey == 'PolicySolicitOpinionProcessKey15' ||
this.taskKey == 'PolicySolicitOpinionProcessKey16') {
return true
}
return false
},
isExport () {// 是否展示导出
if (this.$route.query.operate && this.$route.query.operate == 'view') {
return false
}
if (this.taskKey == 'PolicySolicitOpinionProcessKey11') {
return true
}
return false
},
isPersonInCharge () {
// 是否展示责任人
if (this.taskKey == 'PolicySolicitOpinionProcessKey9' ||
this.taskKey == 'PolicySolicitOpinionProcessKey10' ||
this.taskKey == 'PolicySolicitOpinionProcessKey11') {
return true
}
return false
},
isCompleteFlag() {//是否展示提出部门、提出人、处理意见、原因
if (this.taskKey == 'PolicySolicitOpinionProcessKey12' ||
return true
}
return false
},
isCompleteFlag () {// 是否展示提出部门、提出人、处理意见、原因
if (this.taskKey == 'PolicySolicitOpinionProcessKey11' ||
this.taskKey == 'PolicySolicitOpinionProcessKey12' ||
this.taskKey == 'PolicySolicitOpinionProcessKey13' ||
this.taskKey == 'PolicySolicitOpinionProcessKey14' ||
this.taskKey == 'PolicySolicitOpinionProcessKey15' ||
this.taskKey == 'PolicySolicitOpinionProcessKey16') {
return true
}
return false
},
isOperate() {//是否展示操作列
if (this.$route.query.operate && this.$route.query.operate == 'view') {
return false
}
if (this.taskKey == 'PolicySolicitOpinionProcessKey8' ||
return true
}
return false
},
isOperate () {// 是否展示操作列
if (this.$route.query.operate && this.$route.query.operate == 'view') {
return false
}
if (this.taskKey == 'PolicySolicitOpinionProcessKey8' ||
this.taskKey == 'PolicySolicitOpinionProcessKey9' ||
this.taskKey == 'PolicySolicitOpinionProcessKey12') {
return true
}
return false
},
showSelection() {//是否展示选择
if (this.$route.query.operate && this.$route.query.operate == 'view') {
return false
}
if (this.taskKey == 'PolicySolicitOpinionProcessKey8' ||
this.taskKey == 'PolicySolicitOpinionProcessKey9') {
return true
}
return false
},
},
mounted() {
this.taskKey == 'PolicySolicitOpinionProcessKey11') {
return true
}
return false
},
showSelection () {// 是否展示选择
if (this.$route.query.operate && this.$route.query.operate == 'view') {
return false
}
if (this.taskKey == 'PolicySolicitOpinionProcessKey8' ||
this.taskKey == 'PolicySolicitOpinionProcessKey9' || this.taskKey == 'PolicySolicitOpinionProcessKey11') {
return true
}
return false
},
},
mounted () {
this.getData()
},
methods: {
getData () {
const query = {
taskDefinitionKey: this.$route.query.taskDefinitionKey,
prcId: this.$route.query.prcId
}
this.$http.get('/lawss/activiti/queryPolicitOpinionEOList', query, { _this: this }, res => {
if (res.ok) {
this.histortData = res.data || []
} else {
this.histortData = []
}
})
},
generateSummary () {
window.location.href = 'api/lawss/activiti/exportPolicitOpinionEOListExcel?taskDefinitionKey='
+ this.$route.query.taskDefinitionKey + '&prcId=' + this.$route.query.prcId + '&currentUserId=' +
this.$store.getters.userInfo.userId
},
generateReportComments () {
window.location.href = 'api/lawss/activiti/exportPolicitOpinionEOListExcel?taskDefinitionKey='
+ this.$route.query.taskDefinitionKey + '&prcId=' + this.$route.query.prcId + '&currentUserId=' +
this.$store.getters.userInfo.userId
},
exportModel () {
window.location.href = 'api/lawss/activiti/exportPolicitOpinionEOListExcel?taskDefinitionKey='
+ this.$route.query.taskDefinitionKey + '&prcId=' + this.$route.query.prcId + '&currentUserId=' +
this.$store.getters.userInfo.userId
},
addModel () {
this.addOrEdit = 'add'
this.$refs.addModelRef.add()
},
selectChange (row) {
this.selectList = row
},
batchDeleteModel () {
if (this.selectList && this.selectList.length > 0) {
this.$confirm('确认删除这些数据?', '提示', {
confirmButtonText: '确定',
confirmButtonClass: 'common-button-primary',
cancelButtonText: '取消',
type: 'warning',
roundButton: false
}).then(() => {
let deleteIds = this.selectList.map(val => val.id)
deleteIds = deleteIds.join(',')
this.$http.delete('lawss/activiti/deletePolicitOpinionEOList', { ids: deleteIds }, {
_this: this
}, res => {
if (res.ok) {
this.getData()
this.$refs.selection.clearSelection()
} else {
this.$message.warning(res.message)
}
})
}).catch(() => {
// 取消删除,清空选择
this.$refs.selection.clearSelection()
});
} else {
this.$message.warning('请选择至少一条数据');
}
},
handleCommand (command) {
switch (command[2]) {
case '编辑':
this.addOrEdit = 'edit'
this.editNum = command[1]
this.$refs.addModelRef.edit(command[0])
break;
case '删除':
this.deleteSarAccess(command[1], command[0]);
break;
}
},
deleteSarAccess (num, row) {
this.$confirm('确认删除数据?', '提示', {
confirmButtonText: '确定',
confirmButtonClass: 'common-button-primary',
cancelButtonText: '取消',
type: 'warning',
roundButton: false
}).then(() => {
this.$http.delete('lawss/activiti/deletePolicitOpinionEOList', { ids: row.id }, {
_this: this
}, res => {
if (res.ok) {
this.getData()
},
methods: {
getData() {
let query = {
taskDefinitionKey: this.$route.query.taskDefinitionKey,
prcId: this.$route.query.prcId
}
this.$http.get('/lawss/activiti/queryPolicitOpinionEOList', query, {_this: this}, res => {
if (res.ok) {
this.histortData = res.data || []
} else {
this.histortData = []
}
})
},
generateSummary() {
window.location.href = 'api/lawss/activiti/exportPolicitOpinionEOListExcel?taskDefinitionKey='
+ this.$route.query.taskDefinitionKey + '&prcId=' + this.$route.query.prcId + '&currentUserId=' +
this.$store.getters.userInfo.userId
},
generateReportComments() {
window.location.href = 'api/lawss/activiti/exportPolicitOpinionEOListExcel?taskDefinitionKey='
+ this.$route.query.taskDefinitionKey + '&prcId=' + this.$route.query.prcId + '&currentUserId=' +
this.$store.getters.userInfo.userId
},
exportModel() {
window.location.href = 'api/lawss/activiti/exportPolicitOpinionEOListExcel?taskDefinitionKey='
+ this.$route.query.taskDefinitionKey + '&prcId=' + this.$route.query.prcId + '&currentUserId=' +
this.$store.getters.userInfo.userId
},
addModel() {
this.addOrEdit = 'add'
this.$refs.addModelRef.add()
},
selectChange(row) {
this.selectList = row
},
batchDeleteModel() {
if (this.selectList && this.selectList.length > 0) {
this.$confirm('确认删除这些数据?', '提示', {
confirmButtonText: '确定',
confirmButtonClass: 'common-button-primary',
cancelButtonText: '取消',
type: 'warning',
roundButton: false
}).then(() => {
this.selectList.forEach(val => {
if (val.id) {
this.deleteList.push(val.id)
}
this.histortData = this.histortData.filter(res => {
if (res.id) {
return res.id != val.id
} else {
return res.dataId != val.dataId
}
})
})
this.histortData = [...this.histortData]
}).catch(() => {
// 取消删除,清空选择
this.$refs.selection.clearSelection()
})
} else {
this.$message.warning('请选择至少一条数据')
}
},
handleCommand(command) {
switch (command[2]) {
case "编辑":
this.addOrEdit = 'edit'
this.editNum = command[1]
this.$refs.addModelRef.edit(command[0])
break;
case "删除":
this.deleteSarAccess(command[1], command[0]);
break;
}
},
deleteSarAccess(num, row) {
this.$confirm('确认删除数据?', '提示', {
confirmButtonText: '确定',
confirmButtonClass: 'common-button-primary',
cancelButtonText: '取消',
type: 'warning',
roundButton: false
}).then(() => {
if (row.id) {
this.deleteList.push(row.id)
}
this.histortData.splice(num, 1)
this.histortData = [...this.histortData]
}).catch(() => {
// 取消删除,清空选择
// this.$refs.multipleTable.clearSelection()
})
},
addModelForm(row) {
if (this.addOrEdit == 'add') {
this.histortData.push(row)
} else if (this.addOrEdit == 'edit') {
this.histortData[this.editNum] = row
this.histortData = [...this.histortData]
}
},
fileClick(list) {
if (list && list.length > 0) {
this.$refs.fileViewModelRef.getData(list)
} else {
this.$message.warning('没有可查看的文件')
}
},
submit(callback) {
if (this.histortData && this.histortData.length > 0) {
callback && callback(this.histortData, this.deleteList.join(','))
} else {
this.$message.warning('请至少添加一条数据')
}
},
save(callback) {
callback && callback(this.histortData, this.deleteList.join(','))
},
},
}
this.$refs.selection.clearSelection()
}else {
this.$message.warning(res.message)
}
})
}).catch(() => {
// 取消删除,清空选择
// this.$refs.multipleTable.clearSelection()
})
},
addModelForm (row) {
if (this.addOrEdit == 'add') {
this.$http.postData('lawss/activiti/insertPolicitOpinionEOList', { ...row, prcId: this.$route.query.prcId, sarLawsInfoId: this.$parent.dataForm.lawsId }, { _this: this }, res => {
if (res.ok) {
this.$message.success('操作成功')
this.getData()
}else {
this.$message.warning(res.message)
}
}, e => {
})
} else if (this.addOrEdit == 'edit') {
this.$http.putData('lawss/activiti/updatePolicitOpinionEOList', { ...row, prcId: this.$route.query.prcId, sarLawsInfoId: this.$parent.dataForm.lawsId }, { _this: this }, res => {
if (res.ok) {
this.$message.success('操作成功')
this.getData()
}else {
this.$message.warning(res.message)
}
}, e => {
})
}
this.getData()
},
fileClick (list) {
if (list && list.length > 0) {
this.$refs.fileViewModelRef.getData(list)
} else {
this.$message.warning('没有可查看的文件')
}
},
submit (callback) {
if (this.histortData && this.histortData.length > 0) {
callback && callback(this.histortData, this.deleteList.join(','))
} else {
this.$message.warning('请至少添加一条数据')
}
},
save (callback) {
callback && callback(this.histortData, this.deleteList.join(','))
},
},
}
</script>
<style scoped>
File diff suppressed because it is too large Load Diff
@@ -10,52 +10,81 @@
<div v-else class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div>
<div class="content">
<el-form v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
class="label-input-form"
label-width="210px"
<el-form
v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
class="label-input-form"
label-width="210px"
>
<div v-show="active === '1'">
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
<Basic :form="form" :dict="dict" :disabled="disabled" />
<ProcessTitle>
<template slot="title">会议分类</template>
</ProcessTitle>
<Classification :form="form" :dict="dict" :disabled="disabled"></Classification>
<Classification :form="form" :dict="dict" :disabled="disabled" />
<div v-for="(item, index) in form.meetingTopicList">
<ProcessTitle>
<template slot="title">
会议议题
<el-button type="primary" size="mini" icon="el-icon-plus" @click="addMeetingTopic" :disabled="disabled"
:style="{visibility: (index === form.meetingTopicList.length - 1) ? 'visible' : 'collapse'}"></el-button>
<el-button type="primary" size="mini" icon="el-icon-minus" @click="removeMeetingTopic(index)" :disabled="disabled"
:style="{visibility: (form.meetingTopicList.length < 2 && index === 0) ? 'collapse' : 'visible'}"></el-button>
<div style="display: flex;align-items: center;justify-content: space-between">
<div>
会议议题{{ index + 1 }}
<el-button
type="primary"
size="mini"
icon="el-icon-plus"
:disabled="disabled"
:style="{visibility: (index === form.meetingTopicList.length - 1) ? 'visible' : 'collapse'}"
@click="addMeetingTopic"
/>
<el-button
type="primary"
size="mini"
icon="el-icon-minus"
:disabled="disabled"
:style="{visibility: (form.meetingTopicList.length < 2 && index === 0) ? 'collapse' : 'visible'}"
@click="removeMeetingTopic(index)"
/>
</div>
<div style="display: flex;align-items: center">
<i
class="el-icon-bottom move-icon"
style="transform: rotate(180deg)"
:style="{visibility: (index === 0) ? 'collapse' : 'visible'}"
@click="moveOrder(index, 'top')"
/>
<i
class="el-icon-bottom move-icon"
:style="{visibility: (index === form.meetingTopicList.length - 1) ? 'collapse' : 'visible'}"
@click="moveOrder(index, 'bottom')"
/>
</div>
</div>
</template>
</ProcessTitle>
<Topics :item="item" :index="index" :rules="rules" :disabled="disabled"></Topics>
<Topics :item="item" :index="index" :rules="rules" :disabled="disabled" />
</div>
<ReceiptDescription isItem v-model="form.commentText" title="回执说明" :disabled="disabled"></ReceiptDescription>
<ReceiptDescription v-model="form.commentText" isItem title="回执说明" :disabled="disabled" />
</div>
<div class="block" style="padding-top: 20px;" v-show="active === '2'">
<PersonInfo ref="roleForm" :roleForm="roleForm" :roleRules="roleRules" :disabled="disabled"></PersonInfo>
<div v-show="active === '2'" class="block" style="padding-top: 20px;">
<PersonInfo ref="roleForm" :roleForm="roleForm" :roleRules="roleRules" :disabled="disabled" />
</div>
<ApprovalHistory v-if="active === '3'"></ApprovalHistory>
<ApprovalHistory v-if="active === '3'" />
</el-form>
</div>
<ProcessFooter
v-show="!disabled"
show-save
show-submit
:submitLoading="footerLoading"
:saveLoading="footerLoading"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
v-show="!disabled"
show-save
show-submit
:submitLoading="footerLoading"
:saveLoading="footerLoading"
@save="handleSave"
@submit="handleSubmit"
/>
<loading :loading="loading">数据获取中</loading>
</div>
</template>
@@ -64,17 +93,17 @@
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
import ProcessHeader from '@/pages/processCenter/pages/components//ProcessHeader'
import ProcessFooter from '@/pages/processCenter/pages/components//ProcessFooter'
import Basic from "./components/Basic";
import Classification from "./components/Classification";
import Topics from "./components/Topics";
import PersonInfo from "./components/PersonInfo";
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
import ApprovalHistory from "@/components/hzwlComponents/ApprovalHistory";
import Basic from './components/Basic';
import Classification from './components/Classification';
import Topics from './components/Topics';
import PersonInfo from './components/PersonInfo';
import ReceiptDescription from '@/components/hzwlComponents/ReceiptDescription';
import ApprovalHistory from '@/components/hzwlComponents/ApprovalHistory';
import { getDicTypeListCode, saveTaskFirst, queryTaskFirst, inboundLiaisonDetail, taskDel, saveTaskForPub } from 'api/process'
export default {
name: "policyMeetings1",
name: 'PolicyMeetings1',
components: {
ProcessTitle,
ProcessHeader,
@@ -112,49 +141,49 @@ export default {
}
const rules = {
meetingName: [
{required: true, type: 'string', message: '会议名称不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '会议名称不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change' }
],
meetingOrganizer: [
{required: true, type: 'string', message: '会议主办单位不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '会议主办单位不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '会议主办单位不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '会议主办单位不能超过500个字符', trigger: 'change' }
],
meetingTime: [
{required: true, message: '会议时间不能为空', trigger: 'change'}
{ required: true, message: '会议时间不能为空', trigger: 'change' }
],
meetingAddress: [
{required: true, type: 'string', message: '会议地点不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '会议地点不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '会议地点不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '会议地点不能超过500个字符', trigger: 'change' }
],
participants: [
{required: true, type: 'string', message: '参会人员不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '参会人员不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '参会人员不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '参会人员不能超过500个字符', trigger: 'change' }
],
meetingContent: [
{required: true, type: 'string', message: '会议主要内容不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '会议主要内容不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '会议主要内容不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '会议主要内容不能超过500个字符', trigger: 'change' }
],
firstMeetingType: [
{required: true, message: '1级会议分类不能为空', trigger: 'change'}
{ required: true, message: '1级会议分类不能为空', trigger: 'change' }
],
secondMeetingType: [
{required: true, message: '2级会议分类不能为空', trigger: 'change'}
{ required: true, message: '2级会议分类不能为空', trigger: 'change' }
],
agendaName: [
{required: true, type: 'string', message: '议题名称不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '议题名称不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '议题名称不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '议题名称不能超过500个字符', trigger: 'change' }
],
reporter: [
{required: true, type: 'string', message: '汇报人不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '汇报人不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '汇报人不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '汇报人不能超过500个字符', trigger: 'change' }
],
reportingUnit: [
{required: true, type: 'string', message: '汇报人单位不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '汇报人单位不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '汇报人单位不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '汇报人单位不能超过500个字符', trigger: 'change' }
],
agendaContent: [
{required: true, type: 'string', message: '议题主要内容不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '议题主要内容不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '议题主要内容不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '议题主要内容不能超过500个字符', trigger: 'change' }
],
}
const roleForm = {
@@ -165,10 +194,10 @@ export default {
}
const roleRules = {
applyUserName: [
{required: true, message: '流程发起人不能为空', trigger: ['blur', 'change']}
{ required: true, message: '流程发起人不能为空', trigger: [ 'blur', 'change' ] }
],
jlUserName: [
{required: true, message: '审批人不能为空', trigger: ['blur', 'change']}
{ required: true, message: '审批人不能为空', trigger: [ 'blur', 'change' ] }
]
}
return {
@@ -187,12 +216,12 @@ export default {
loading: false
}
},
created() {
created () {
this.getDicTypeListCode()
this.getData()
},
methods: {
handleTabs(tab) {
handleTabs (tab) {
this.active = tab
},
addMeetingTopic () {
@@ -204,10 +233,10 @@ export default {
reportingUnit: '',
agendaContent: ''
}
this.form.meetingTopicList = [...this.form.meetingTopicList, meetingTopicItem]
this.form.meetingTopicList = [ ...this.form.meetingTopicList, meetingTopicItem ]
},
removeMeetingTopic (index) {
let res = []
const res = []
this.form.meetingTopicList.forEach((item, i) => {
if (i !== index) {
res.push(item)
@@ -262,7 +291,7 @@ export default {
this.reloadForm = false
if (mes.form) {
// 驳回
let mes = JSON.parse(res.mes)
const mes = JSON.parse(res.mes)
this.$set(this, 'form', mes.form)
} else {
// 撤回
@@ -283,10 +312,10 @@ export default {
})
}
},
//保存
handleSave() {
// 保存
handleSave () {
this.footerLoading = true
let _formData = new FormData()
const _formData = new FormData()
_formData.append('prcType', '29')
if (this.$route.query.taskIds) {
@@ -326,13 +355,17 @@ export default {
async submit () {
this.footerLoading = true
this.form.meetingTopicList.forEach((item, index) => {
item.sort = index
})
const json = Object.assign(this.form, this.roleForm);
let completeTaskQuery = {}
if (this.$route.query.taskIds) {
// 重新起草
completeTaskQuery = {
taskIds: this.$route.query.taskIds,
userId : this.$store.getters.userInfo.userId,
userId: this.$store.getters.userInfo.userId,
json: JSON.stringify(json)
}
} else {
@@ -351,7 +384,7 @@ export default {
completeTaskQuery = {
taskIds: res.data,
userId : this.$store.getters.userInfo.userId,
userId: this.$store.getters.userInfo.userId,
json: JSON.stringify(json)
}
}
@@ -369,9 +402,9 @@ export default {
taskDel({ id: this.$route.query.bpnId })
}
// 流程提交之后,应该流转至待办任务页面
await this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
await this.$router.push({ path: '/processCenter?tabsName=ProcessCenter' })
},
handleSubmit() {
handleSubmit () {
this.$refs['form'].validate((valid) => {
if (valid) {
this.$refs['roleForm'].$refs['userForm'].validate((valid) => {
@@ -391,7 +424,21 @@ export default {
if (res.ok) {
this.dict = res.data
}
}
},
moveOrder (index, type) {
if (type === 'top') {
const obj1 = this.form.meetingTopicList[index]
const obj2 = this.form.meetingTopicList[index - 1]
this.$set(this.form.meetingTopicList, index - 1, obj1)
this.$set(this.form.meetingTopicList, index, obj2)
}
if (type === 'bottom') {
const obj1 = this.form.meetingTopicList[index]
const obj2 = this.form.meetingTopicList[index + 1]
this.$set(this.form.meetingTopicList, index + 1, obj1)
this.$set(this.form.meetingTopicList, index, obj2)
}
},
}
}
</script>
@@ -432,4 +479,11 @@ export default {
min-height: 100%;
}
}
.move-icon {
font-size: 32px;
cursor: pointer
}
.move-icon:hover {
color: #409EFF;
}
</style>
@@ -9,57 +9,70 @@
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div>
<div class="content">
<el-form v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
class="label-input-form"
label-width="210px"
<el-form
v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
class="label-input-form"
label-width="210px"
>
<div v-show="active === '1'">
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
<Basic :form="form" :dict="dict" :disabled="disabled" />
<ProcessTitle>
<template slot="title">会议分类</template>
</ProcessTitle>
<Classification :form="form" :dict="dict" :disabled="disabled"></Classification>
<Classification :form="form" :dict="dict" :disabled="disabled" />
<div v-for="(item, index) in form.meetingTopicList">
<ProcessTitle>
<template slot="title">
会议议题
<el-button type="primary" size="mini" icon="el-icon-plus" @click="addMeetingTopic" :disabled="disabled"
:style="{visibility: (index === form.meetingTopicList.length - 1) ? 'visible' : 'collapse'}"></el-button>
<el-button type="primary" size="mini" icon="el-icon-minus" @click="removeMeetingTopic(index)" :disabled="disabled"
:style="{visibility: (form.meetingTopicList.length < 2 && index === 0) ? 'collapse' : 'visible'}"></el-button>
会议议题{{ index + 1 }}
<el-button
type="primary"
size="mini"
icon="el-icon-plus"
:disabled="disabled"
:style="{visibility: (index === form.meetingTopicList.length - 1) ? 'visible' : 'collapse'}"
@click="addMeetingTopic"
/>
<el-button
type="primary"
size="mini"
icon="el-icon-minus"
:disabled="disabled"
:style="{visibility: (form.meetingTopicList.length < 2 && index === 0) ? 'collapse' : 'visible'}"
@click="removeMeetingTopic(index)"
/>
</template>
</ProcessTitle>
<Topics :item="item" :index="index" :rules="rules" :disabled="disabled"></Topics>
<Topics :item="item" :index="index" :rules="rules" :disabled="disabled" />
</div>
<ReceiptDescription isItem v-model="form.commentText" prop="commentText" title="审批意见"></ReceiptDescription>
<ReceiptDescription v-model="form.commentText" isItem prop="commentText" title="审批意见" />
</div>
<ApprovalHistory v-if="active === '3'"></ApprovalHistory>
<ApprovalHistory v-if="active === '3'" />
</el-form>
</div>
<ProcessFooter
show-submit
show-over2
show-transfer
:submitLoading="footerLoading"
:saveLoading="footerLoading"
@transfer="handleTransfer"
@submit="handleApprove"
@over2="handleOver"
></ProcessFooter>
show-submit
show-over2
show-transfer
:submitLoading="footerLoading"
:saveLoading="footerLoading"
@transfer="handleTransfer"
@submit="handleApprove"
@over2="handleOver"
/>
<!-- 福田全公司选人解决方案 -->
<Role-tree
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
:nodeList="nodeList"
></Role-tree>
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
:nodeList="nodeList"
@checkedRole="checkedRole"
/>
<loading :loading="loading">数据获取中</loading>
</div>
</template>
@@ -68,16 +81,16 @@
ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
import ProcessHeader from '@/pages/processCenter/pages/components//ProcessHeader'
import ProcessFooter from '@/pages/processCenter/pages/components//ProcessFooter'
import Basic from "./components/Basic";
import Classification from "./components/Classification";
import Topics from "./components/Topics";
import PersonInfo from "./components/PersonInfo";
import ApprovalHistory from "@/components/hzwlComponents/ApprovalHistory";
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
import Basic from './components/Basic';
import Classification from './components/Classification';
import Topics from './components/Topics';
import PersonInfo from './components/PersonInfo';
import ApprovalHistory from '@/components/hzwlComponents/ApprovalHistory';
import ReceiptDescription from '@/components/hzwlComponents/ReceiptDescription';
import { getDicTypeListCode, inboundLiaisonDetail, changeAssigneeNew, processCreateMeeting, completeTask } from 'api/process'
export default {
name: "policyMeetings2",
name: 'PolicyMeetings2',
components: {
ProcessTitle,
ProcessHeader,
@@ -115,49 +128,49 @@ export default {
}
const rules = {
meetingName: [
{required: true, type: 'string', message: '会议名称不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '会议名称不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change' }
],
meetingOrganizer: [
{required: true, type: 'string', message: '会议主办单位不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '会议主办单位不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '会议主办单位不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '会议主办单位不能超过500个字符', trigger: 'change' }
],
meetingTime: [
{required: true, message: '会议时间不能为空', trigger: 'change'}
{ required: true, message: '会议时间不能为空', trigger: 'change' }
],
meetingAddress: [
{required: true, type: 'string', message: '会议地点不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '会议地点不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '会议地点不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '会议地点不能超过500个字符', trigger: 'change' }
],
participants: [
{required: true, type: 'string', message: '参会人员不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '参会人员不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '参会人员不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '参会人员不能超过500个字符', trigger: 'change' }
],
meetingContent: [
{required: true, type: 'string', message: '会议主要内容不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '会议主要内容不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '会议主要内容不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '会议主要内容不能超过500个字符', trigger: 'change' }
],
firstMeetingType: [
{required: true, message: '1级会议分类不能为空', trigger: 'change'}
{ required: true, message: '1级会议分类不能为空', trigger: 'change' }
],
secondMeetingType: [
{required: true, message: '2级会议分类不能为空', trigger: 'change'}
{ required: true, message: '2级会议分类不能为空', trigger: 'change' }
],
agendaName: [
{required: true, type: 'string', message: '议题名称不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '议题名称不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '议题名称不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '议题名称不能超过500个字符', trigger: 'change' }
],
reporter: [
{required: true, type: 'string', message: '汇报人不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '汇报人不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '汇报人不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '汇报人不能超过500个字符', trigger: 'change' }
],
reportingUnit: [
{required: true, type: 'string', message: '汇报人单位不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '汇报人单位不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '汇报人单位不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '汇报人单位不能超过500个字符', trigger: 'change' }
],
agendaContent: [
{required: true, type: 'string', message: '议题主要内容不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '议题主要内容不能超过500个字符', trigger: 'change'}
{ required: true, type: 'string', message: '议题主要内容不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '议题主要内容不能超过500个字符', trigger: 'change' }
],
}
const roleForm = {
@@ -168,10 +181,10 @@ export default {
}
const roleRules = {
applyUserName: [
{required: true, message: '流程发起人不能为空', trigger: ['blur', 'change']}
{ required: true, message: '流程发起人不能为空', trigger: [ 'blur', 'change' ] }
],
jlUserName: [
{required: true, message: '审批人不能为空', trigger: ['blur', 'change']}
{ required: true, message: '审批人不能为空', trigger: [ 'blur', 'change' ] }
]
}
return {
@@ -193,12 +206,12 @@ export default {
loading: false
}
},
created() {
created () {
this.getDicTypeListCode()
this.getData()
},
methods: {
handleTabs(tab) {
handleTabs (tab) {
this.active = tab
},
addMeetingTopic () {
@@ -210,10 +223,10 @@ export default {
reportingUnit: '',
agendaContent: ''
}
this.form.meetingTopicList = [...this.form.meetingTopicList, meetingTopicItem]
this.form.meetingTopicList = [ ...this.form.meetingTopicList, meetingTopicItem ]
},
removeMeetingTopic (index) {
let res = []
const res = []
this.form.meetingTopicList.forEach((item, i) => {
if (i !== index) {
res.push(item)
@@ -221,7 +234,7 @@ export default {
})
this.form.meetingTopicList = [ ...res ]
},
getData() {
getData () {
return new Promise((resolve, reject) => {
this.loading = true
inboundLiaisonDetail({
@@ -242,7 +255,7 @@ export default {
})
})
},
handleTransfer() {
handleTransfer () {
this.drawerModal = true
this.drawerTitle = '转办处理人'
},
@@ -250,25 +263,25 @@ export default {
checkedRole (data) {
changeAssigneeNew({
taskId: this.$route.query.taskIds, // 任务id
userId:this.$store.getters.userInfo.userId, // 委托人
userId: this.$store.getters.userInfo.userId, // 委托人
assignee: data[0].id, // 被委托人
pId: this.$route.query.prcId, // 流程实例
}).then(res => {
if (res.success) {
this.drawerModal = false
this.$message.success('调整成功')
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
this.$router.push({ path: '/processCenter?tabsName=ProcessCenter' })
} else {
this.$message.warning(res.message)
}
})
},
handleOver(){
handleOver () {
// 驳回
this.form.approvalOpinion = 1
this.handleSubmit()
},
handleApprove(){
handleApprove () {
// 通过
this.form.approvalOpinion = 0
this.handleSubmit()
@@ -287,7 +300,7 @@ export default {
this.rules = { ...this.rules }
},
// 提交
handleSubmit() {
handleSubmit () {
this.addRule()
this.$refs['form'].validate((valid) => {
if (valid) {
@@ -295,16 +308,16 @@ export default {
const json = JSON.stringify(this.form);
const query = {
taskId: this.$route.query.taskIds,
userId:this.$store.getters.userInfo.userId,
userId: this.$store.getters.userInfo.userId,
json: json
}
this.$http._post('lawss/activiti/completeTask', query).then(res => {
if (res.success) {
if(this.form.approvalOpinion === 1){
this.$message.warning("驳回成功")
if(this.form.approvalOpinion === 1) {
this.$message.warning('驳回成功')
this.footerLoading = false
// 流程提交之后,应该流转至待办任务页面
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
this.$router.push({ path: '/processCenter?tabsName=ProcessCenter' })
}else{
this.processCreate(json)
}
@@ -315,7 +328,8 @@ export default {
})
} else {
this.$message.warning('请检查基础信息表单是否填写完整')
}})
}
})
},
// 流程入库
processCreate (json) {
@@ -325,7 +339,7 @@ export default {
if (res.result === '操作成功' || res.data === '入库成功') {
this.$message.success(res.data)
setTimeout(() => {
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
this.$router.push({ path: '/processCenter?tabsName=ProcessCenter' })
}, 100)
} else {
this.$message.warning(res.message)
@@ -6,159 +6,221 @@
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="12">
<SelectMultipleFormItem label="1级政策分类"
prop="lawsTypeFirstLevel"
v-model="form.lawsTypeFirstLevel"
:disabled="disabled"
:options="dict.lawsTypeFirstLevelOptions || []">
</SelectMultipleFormItem>
<SelectMultipleFormItem
v-model="form.lawsTypeFirstLevel"
label="1级政策分类"
prop="lawsTypeFirstLevel"
:disabled="disabled"
:options="dict.lawsTypeFirstLevelOptions || []"
/>
</el-col>
<el-col :span="12">
<SelectMultipleFormItem label="2级政策分类"
prop="lawsTypeSecondLevel"
v-model="form.lawsTypeSecondLevel"
:disabled="disabled"
:options="dict.lawsTypeSecondLevelOptions || []">
</SelectMultipleFormItem>
<SelectMultipleFormItem
v-model="form.lawsTypeSecondLevel"
label="2级政策分类"
prop="lawsTypeSecondLevel"
:disabled="disabled"
:options="dict.lawsTypeSecondLevelOptions || []"
/>
</el-col>
<el-col :span="12">
<SelectMultipleFormItem label="3级政策分类"
prop="lawsTypeThirdLevel"
v-model="form.lawsTypeThirdLevel"
:disabled="disabled"
:options="dict.lawsTypeThirdLevelOptions || []">
</SelectMultipleFormItem>
<SelectMultipleFormItem
v-model="form.lawsTypeThirdLevel"
label="3级政策分类"
prop="lawsTypeThirdLevel"
:disabled="disabled"
:options="dict.lawsTypeThirdLevelOptions || []"
/>
</el-col>
<el-col :span="12">
<SelectMultipleFormItem label="4级政策分类"
prop="lawsTypeFourthLevel"
v-model="form.lawsTypeFourthLevel"
:disabled="disabled"
:options="dict.lawsTypeFourthLevelOptions || []">
</SelectMultipleFormItem>
<SelectMultipleFormItem
v-model="form.lawsTypeFourthLevel"
label="4级政策分类"
prop="lawsTypeFourthLevel"
:disabled="disabled"
:options="dict.lawsTypeFourthLevelOptions || []"
/>
</el-col>
<el-col :span="12">
<InputFormItem label="政策名称"
prop="lawsName"
v-model="form.lawsName"
:disabled="disabled">
</InputFormItem>
<InputFormItem
v-model="form.lawsName"
label="政策名称"
prop="lawsName"
:disabled="disabled"
/>
</el-col>
<el-col :span="12">
<InputFormItem label="英文名称"
prop="lawsEnName"
v-model="form.lawsEnName"
:disabled="disabled">
<el-button :disabled="disabled"
type="primary"
style="height: 40px;margin-top: 5px;"
@click="handleSearch">
<InputFormItem
v-model="form.lawsEnName"
label="英文名称"
prop="lawsEnName"
:disabled="disabled"
>
<el-button
:disabled="disabled"
type="primary"
style="height: 40px;margin-top: 5px;"
@click="handleSearch"
>
根据编号名称标准状态查询
</el-button>
</InputFormItem>
</el-col>
<el-col :span="12">
<InputFormItem label="政策文号"
prop="lawsNo"
v-model="form.lawsNo"
:disabled="disabled">
</InputFormItem>
<InputFormItem
v-model="form.lawsNo"
label="政策文号"
prop="lawsNo"
:disabled="disabled"
/>
</el-col>
<el-col :span="12">
<DatePickerFormItem label="发文日期"
prop="issueTime"
<DatePickerFormItem
v-model="form.issueTime"
label="发文日期"
prop="issueTime"
:disabled="disabled"
@input="issueTimeChange">
</DatePickerFormItem>
@input="issueTimeChange"
/>
</el-col>
<el-col :span="12">
<InputFormItem label="发文单位"
prop="issueCompany"
v-model="form.issueCompany"
:disabled="disabled">
</InputFormItem>
<InputFormItem
v-model="form.issueCompany"
label="发文单位"
prop="issueCompany"
:disabled="disabled"
/>
</el-col>
<el-col :span="12">
<DataRangePickerFormItem label="征集意见周期"
prop="commentCycleDate"
:startTime.sync="form.commentCycleStart"
:endTime.sync="form.commentCycleEnd"
:disabled="disabled">
</DataRangePickerFormItem>
<DataRangePickerFormItem
label="征集意见周期"
prop="commentCycleDate"
:startTime.sync="form.commentCycleStart"
:endTime.sync="form.commentCycleEnd"
:disabled="disabled"
/>
</el-col>
<el-col :span="12">
<SelectFormItem label="标准状态"
prop="lawsTextState"
v-model="form.lawsTextState"
:disabled="disabled"
:options="dict.lawsTextStateOptions || []">
</SelectFormItem>
<SelectFormItem
v-model="form.lawsTextState"
label="政策状态"
prop="lawsTextState"
:disabled="disabled"
:options="dict.lawsTextStateOptions || []"
/>
</el-col>
<el-col :span="12">
<SelectMultipleFormItem label="适用车型"
prop="lawsSycx"
<SelectMultipleFormItem
v-model="form.lawsSycx"
label="适用车型"
prop="lawsSycx"
:disabled="disabled"
:options="dict.lawsSycxOptions || []">
</SelectMultipleFormItem>
:options="dict.lawsSycxOptions || []"
/>
</el-col>
<el-col :span="12">
<SelectFormItem label="是否纳入认证清单"
prop="isRelateAccess"
v-model="form.isRelateAccess"
:disabled="disabled"
:options="isRelateAccessOptions || []">
</SelectFormItem>
<SelectFormItem
v-model="form.isRelateAccess"
label="是否纳入认证清单"
prop="isRelateAccess"
:disabled="disabled"
:options="isRelateAccessOptions || []"
/>
</el-col>
<el-col :span="12">
<SelectFormItem label="年度"
prop="lawsYear"
v-model="form.lawsYear"
:disabled="disabled"
:options="dict.lawsYearOptions || []">
</SelectFormItem>
<SelectFormItem
v-model="form.lawsYear"
label="年度"
prop="lawsYear"
:disabled="disabled"
:options="dict.lawsYearOptions || []"
/>
</el-col>
<el-col :span="12">
<InputFormItem label="福田转发通知文号"
prop="lawsNotisyncNum"
v-model="form.lawsNotisyncNum"
:disabled="disabled">
</InputFormItem>
<InputFormItem
v-model="form.lawsNotisyncNum"
label="福田转发通知文号"
prop="lawsNotisyncNum"
:disabled="disabled"
/>
</el-col>
<el-col :span="12">
<InputFormItem label="通知文号链接"
prop="notisyncNumLink"
v-model="form.notisyncNumLink"
:disabled="disabled">
</InputFormItem>
<InputFormItem
v-model="form.notisyncNumLink"
label="通知文号链接"
prop="notisyncNumLink"
:disabled="disabled"
/>
</el-col>
<el-col :span="12">
<InputFormItem label="信息简报"
prop="lawsBulletin"
v-model="form.lawsBulletin"
:disabled="disabled">
</InputFormItem>
<InputFormItem
v-model="form.lawsBulletin"
label="信息月报"
prop="lawsBulletin"
:disabled="disabled"
/>
</el-col>
<el-col :span="12">
<SelectMultipleFormItem label="标签"
prop="lawsLabel"
v-model="form.lawsLabel"
:disabled="disabled"
:options="dict.lawsLabelOptions || []">
</SelectMultipleFormItem>
<InputFormItem
v-model="form.referenceNews"
label="参考消息"
prop="referenceNews"
:disabled="disabled"
/>
</el-col>
<el-col :span="12">
<InputFormItem label="备注(最终政策发布)"
prop="lawsRemark"
v-model="form.lawsRemark"
:disabled="disabled">
</InputFormItem>
<SelectMultipleFormItem
v-model="form.lawsLabel"
label="标签"
prop="lawsLabel"
:disabled="disabled"
:options="dict.lawsLabelOptions || []"
/>
</el-col>
<el-col :span="12">
<TextareaFormItem
v-model="form.lawsKeyPoint"
label="政策要点"
prop="lawsKeyPoint"
:disabled="disabled"
/>
</el-col>
<el-col :span="24">
<el-row>
<el-col :span="12">
<TextareaFormItem
v-model="form.lawsRemark"
label="备注"
prop="lawsRemark"
:disabled="disabled"
/>
</el-col>
<el-col :span="12">
<InputFormItem
v-model="form.lawsOriginalLink"
label="政策原文链接"
prop="lawsOriginalLink"
:disabled="disabled"
/>
</el-col>
</el-row>
</el-col>
<el-col :span="12">
<el-form-item label="政策体系" prop="menuName" class="add-form-item form-item-disabled">
<el-input
:value="form.menuName"
placeholder="请选择政策体系"
clearable
:disabled="disabled"
@click.native="openChoose"
@clear="handleClear"
/>
</el-form-item>
</el-col>
</el-row>
</div>
<SearchResult ref="SearchResultRef" :dict="dict" @dragIn="dragIn"></SearchResult>
<SearchResult ref="SearchResultRef" :dict="dict" @dragIn="dragIn" />
<PolicyTree ref="PolicyTree" @choose="handleChoose" />
</div>
</template>
@@ -171,9 +233,11 @@ import InputFormItem from '@/components/hzwlComponents/InputFormItem'
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
import DataRangePickerFormItem from '@/components/hzwlComponents/DataRangePickerFormItem'
import SelectMultipleFormItem from '@/components/hzwlComponents/SelectMultipleFormItem'
import TextareaFormItem from '@/components/hzwlComponents/TextareaFormItem';
import PolicyTree from '@/components/hzwlComponents/policy/PolicyTree'
import SearchResult from './SearchResult'
export default {
name: "Basic",
name: 'Basic',
components: {
ProcessTitle,
SelectFormItem,
@@ -181,22 +245,10 @@ export default {
DatePickerFormItem,
DataRangePickerFormItem,
SelectMultipleFormItem,
TextareaFormItem,
PolicyTree,
SearchResult
},
data () {
return {
isRelateAccessOptions: [
{
label: '是',
value: '1'
},
{
label: '否',
value: '2'
}
]
}
},
props: {
form: {
type: Object,
@@ -211,6 +263,20 @@ export default {
required: true
}
},
data () {
return {
isRelateAccessOptions: [
{
label: '是',
value: '1'
},
{
label: '否',
value: '2'
}
]
}
},
methods: {
issueTimeChange (val) {
const year = moment(val).format('YYYY')
@@ -221,6 +287,20 @@ export default {
},
dragIn (form) {
this.$emit('dragIn', form)
},
openChoose (e) {
if (e.target.className === 'el-input__icon el-icon-circle-close el-input__clear') {
return;
}
this.$refs.PolicyTree.open(this.form.menuId)
},
handleChoose (data) {
this.$set(this.form, 'menuName', data.menuName)
this.$set(this.form, 'menuId', data.id)
},
handleClear () {
this.$set(this.form, 'menuName', '')
this.$set(this.form, 'menuId', '')
}
}
}
@@ -10,7 +10,8 @@
<div v-else class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div>
<div class="content">
<el-form v-if="reloadForm"
<el-form
v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
@@ -18,17 +19,17 @@
label-width="210px"
>
<div v-show="active === '1'">
<Basic :form="form" :dict="dict" @dragIn="dragIn" :disabled="disabled"></Basic>
<EffectiveDate :form="form" :dict="dict" :disabled="disabled"></EffectiveDate>
<TextInfo :form="form" :dict="dict" :disabled="disabled"></TextInfo>
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
<RelatesInfo :form="form" :dict="dict" :disabled="disabled"></RelatesInfo>
<ReceiptDescription isItem v-model="form.commentText" title="回执说明" :disabled="disabled"></ReceiptDescription>
<Basic :form="form" :dict="dict" :disabled="disabled" @dragIn="dragIn" />
<EffectiveDate :form="form" :dict="dict" :disabled="disabled" />
<TextInfo :form="form" :dict="dict" :disabled="disabled" />
<Range :form="form" :dict="dict" :disabled="disabled" />
<RelatesInfo :form="form" :dict="dict" :disabled="disabled" />
<ReceiptDescription v-model="form.commentText" isItem title="回执说明" :disabled="disabled" />
</div>
<div class="block" style="padding-top: 20px;" v-show="active === '2'">
<PersonInfo ref="roleForm" :roleForm="roleForm" :roleRules="roleRules" :disabled="disabled"></PersonInfo>
<div v-show="active === '2'" class="block" style="padding-top: 20px;">
<PersonInfo ref="roleForm" :roleForm="roleForm" :roleRules="roleRules" :disabled="disabled" />
</div>
<ApprovalHistory v-if="active === '3'"></ApprovalHistory>
<ApprovalHistory v-if="active === '3'" />
</el-form>
</div>
<ProcessFooter
@@ -39,8 +40,7 @@
:saveLoading="footerLoading"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
/>
<loading :loading="loading">数据获取中</loading>
</div>
</template>
@@ -49,19 +49,19 @@
import ProcessHeader from '@/pages/processCenter/pages/components/ProcessHeader'
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
import Basic from "./components/Basic";
import EffectiveDate from "./components/EffectiveDate";
import TextInfo from "./components/TextInfo";
import Range from "./components/Range";
import RelatesInfo from "./components/RelatesInfo";
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
import PersonInfo from "./components/PersonInfo";
import Basic from './components/Basic';
import EffectiveDate from './components/EffectiveDate';
import TextInfo from './components/TextInfo';
import Range from './components/Range';
import RelatesInfo from './components/RelatesInfo';
import ReceiptDescription from '@/components/hzwlComponents/ReceiptDescription';
import PersonInfo from './components/PersonInfo';
import {saveTaskFirst, queryTaskFirst, taskDel, inboundLiaisonDetail, saveTaskForPub} from "api/process";
import ApprovalHistory from "@/components/hzwlComponents/ApprovalHistory";
import { saveTaskFirst, queryTaskFirst, taskDel, inboundLiaisonDetail, saveTaskForPub } from 'api/process';
import ApprovalHistory from '@/components/hzwlComponents/ApprovalHistory';
export default {
name: "zrckStep1",
name: 'ZrckStep1',
components: {
ProcessHeader,
ProcessFooter,
@@ -86,8 +86,8 @@ export default {
lawsNo: '',
issueTime: '',
issueCompany: '',
commentCycleStart: '',// 征集意见周期
commentCycleEnd: '',// 征集意见周期
commentCycleStart: '', // 征集意见周期
commentCycleEnd: '', // 征集意见周期
lawsTextState: '',
lawsSycx: '',
isRelateAccess: '2',
@@ -95,8 +95,13 @@ export default {
lawsNotisyncNum: '',
NotisyncNumLink: '',
lawsBulletin: '',
referenceNews: '',
lawsLabel: '',
lawsRemark: '',
lawsKeyPoint: '',
lawsOriginalLink: '',
menuId: '',
menuName: '',
// 实施日期
SSRQLAWS: '',
XRZSSRQLAWS: '',
@@ -125,7 +130,7 @@ export default {
GLWJLAWSName: '',
YYBZZCLAWS: '',
// 回执说明
commentText:''
commentText: ''
}
const roleForm = {
jlUserId: '',
@@ -136,103 +141,130 @@ export default {
// 完整校验
const moreSarLawsStandRules = {
lawsTypeFirstLevel: [
{required: true, message: '1级政策分类不能为空', trigger: 'change'}
{ required: true, message: '1级政策分类不能为空', trigger: 'change' }
],
lawsTypeSecondLevel: [
{required: true, message: '2级政策分类不能为空', trigger: 'change'}
{ required: true, message: '2级政策分类不能为空', trigger: 'change' }
],
lawsTypeThirdLevel: [
{required: true, message: '3级政策分类不能为空', trigger: 'change'}
{ required: true, message: '3级政策分类不能为空', trigger: 'change' }
],
lawsTypeFourthLevel: [
{required: true, message: '4级政策分类不能为空', trigger: 'change'}
{ required: true, message: '4级政策分类不能为空', trigger: 'change' }
],
lawsName: [
{required: true, message: '政策名称不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '政策名称不能超过500个字符', trigger: 'change'},
{validator: this.verify.checkSpecialCharacterOftags, trigger: 'change'}
{ required: true, message: '政策名称不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '政策名称不能超过500个字符', trigger: 'change' },
{ validator: this.verify.checkSpecialCharacterOftags, trigger: 'change' }
],
lawsEnName: [
{type: 'string', max: 500, message: '英文名称不能超过500个字符', trigger: 'change'},
{validator: this.verify.valiateEnName, trigger: 'change'}
{ type: 'string', max: 500, message: '英文名称不能超过500个字符', trigger: 'change' },
{ validator: this.verify.valiateEnName, trigger: 'change' }
],
lawsNo: [
{type: 'string', max: 100, message: '政策文号不能超过100个字符', trigger: 'change'}
{ type: 'string', max: 100, message: '政策文号不能超过100个字符', trigger: 'change' }
],
issueTime: [
{required: true, message: '发文日期不能为空', trigger: 'change'},
{ required: true, message: '发文日期不能为空', trigger: 'change' },
],
issueCompany: [
{required: true, type: 'string', message: '发文单位不能为空', trigger: 'change'},
{type: 'string', max: 100, message: '发文单位不能超过100个字符', trigger: 'change'}
{ required: true, type: 'string', message: '发文单位不能为空', trigger: 'change' },
{ type: 'string', max: 100, message: '发文单位不能超过100个字符', trigger: 'change' }
],
lawsTextState: [
{required: true, message: '标准状态不能为空', trigger: 'change'}
{ required: true, message: '标准状态不能为空', trigger: 'change' }
],
isRelateAccess: [
{required: true, message: '是否纳入认证清单不能为空', trigger: 'change'}
{ required: true, message: '是否纳入认证清单不能为空', trigger: 'change' }
],
lawsYear: [
{required: true, message: '年度不能为空', trigger: 'change'}
{ required: true, message: '年度不能为空', trigger: 'change' }
],
lawsNotisyncNum: [
{type: 'string', max: 500, message: '福田转发通知文号不能超过500个字符', trigger: 'change'}
{ type: 'string', max: 500, message: '福田转发通知文号不能超过500个字符', trigger: 'change' }
],
lawsRemark: [
{type: 'string', max: 500, message: '备注不能超过500个字符', trigger: 'change'}
{ type: 'string', max: 500, message: '备注不能超过500个字符', trigger: 'change' }
],
SSRQLAWS: [
{required: true, message: '实施日期不能为空', trigger: 'change'}
{ required: true, message: '实施日期不能为空', trigger: 'change' }
],
CYSDLAWS: [
{required: true, message: '我司参与深度不能为空', trigger: 'change'}
{ required: true, message: '我司参与深度不能为空', trigger: 'change' }
],
referenceNews: [
{ type: 'string', max: 500, message: '参考消息不能超过500个字符', trigger: 'change' }
],
lawsKeyPoint: [
{ type: 'string', max: 500, message: '政策要点不能超过500个字符', trigger: 'change' }
],
lawsOriginalLink: [
{ type: 'string', max: 500, message: '政策原文链接不能超过500个字符', trigger: 'change' }
],
menuName: [
{ required: true, message: '政策体系不能为空', trigger: 'change' }
],
}
// 认证清单为否 的校验
const littleSarLawsStandRules = {
lawsTypeFirstLevel: [
{required: true, message: '1级政策分类不能为空', trigger: 'change'}
{ required: true, message: '1级政策分类不能为空', trigger: 'change' }
],
lawsTypeSecondLevel: [
{required: true, message: '2级政策分类不能为空', trigger: 'change'}
{ required: true, message: '2级政策分类不能为空', trigger: 'change' }
],
lawsTypeThirdLevel: [
{required: true, message: '3级政策分类不能为空', trigger: 'change'}
{ required: true, message: '3级政策分类不能为空', trigger: 'change' }
],
lawsTypeFourthLevel: [
{required: true, message: '4级政策分类不能为空', trigger: 'change'}
{ required: true, message: '4级政策分类不能为空', trigger: 'change' }
],
lawsName: [
{required: true, message: '政策名称不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '政策名称不能超过500个字符', trigger: 'change'},
{validator: this.verify.checkSpecialCharacterOftags, trigger: 'change'}
{ required: true, message: '政策名称不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '政策名称不能超过500个字符', trigger: 'change' },
{ validator: this.verify.checkSpecialCharacterOftags, trigger: 'change' }
],
lawsEnName: [
{type: 'string', max: 500, message: '英文名称不能超过500个字符', trigger: 'change'},
{validator: this.verify.valiateEnName, trigger: 'change'}
{ type: 'string', max: 500, message: '英文名称不能超过500个字符', trigger: 'change' },
{ validator: this.verify.valiateEnName, trigger: 'change' }
],
lawsNo: [
{type: 'string', max: 100, message: '政策文号不能超过100个字符', trigger: 'change'}
{ type: 'string', max: 100, message: '政策文号不能超过100个字符', trigger: 'change' }
],
issueCompany: [
{type: 'string', max: 100, message: '发文单位不能超过100个字符', trigger: 'change'}
{ type: 'string', max: 100, message: '发文单位不能超过100个字符', trigger: 'change' }
],
lawsNotisyncNum: [
{type: 'string', max: 500, message: '福田转发通知文号不能超过500个字符', trigger: 'change'}
{ type: 'string', max: 500, message: '福田转发通知文号不能超过500个字符', trigger: 'change' }
],
lawsRemark: [
{type: 'string', max: 500, message: '备注不能超过500个字符', trigger: 'change'}
{ type: 'string', max: 500, message: '备注不能超过500个字符', trigger: 'change' }
],
lawsBulletin: [
{ type: 'string', max: 500, message: '信息月报不能超过500个字符', trigger: 'change' }
],
isRelateAccess: [
{required: true, message: '是否纳入认证清单不能为空', trigger: 'change'}
{ required: true, message: '是否纳入认证清单不能为空', trigger: 'change' }
],
referenceNews: [
{ type: 'string', max: 500, message: '参考消息不能超过500个字符', trigger: 'change' }
],
lawsKeyPoint: [
{ type: 'string', max: 500, message: '政策要点不能超过500个字符', trigger: 'change' }
],
lawsOriginalLink: [
{ type: 'string', max: 500, message: '政策原文链接不能超过500个字符', trigger: 'change' }
],
menuName: [
{ required: true, message: '政策体系不能为空', trigger: 'change' }
],
}
const roleRules = {
prcCreateUserName: [
{required: true, message: '流程发起人不能为空', trigger: ['blur', 'change']}
{ required: true, message: '流程发起人不能为空', trigger: [ 'blur', 'change' ] }
],
jlUserName: [
{required: true, message: '政策业务经理不能为空', trigger: ['blur', 'change']}
{ required: true, message: '政策业务经理不能为空', trigger: [ 'blur', 'change' ] }
]
}
return {
@@ -254,19 +286,19 @@ export default {
loading: false,
}
},
created() {
this.getDicTypeListCode()
this.resolveRules()
this.getData()
},
watch: {
'form.isRelateAccess' () {
// 移除校验结果重新生成校验
this.resolveRules()
}
},
created () {
this.getDicTypeListCode()
this.resolveRules()
this.getData()
},
methods: {
handleTabs(tab) {
handleTabs (tab) {
this.active = tab
},
resolveRules () {
@@ -325,13 +357,13 @@ export default {
}
// 根据草稿查询流程详情
if(this.$route.query.bpnId){
if(this.$route.query.bpnId) {
this.loading = true
queryTaskFirst({
bpnId: this.$route.query.bpnId
}).then(res => {
this.reloadForm = false
let mes = JSON.parse(res.mes)
const mes = JSON.parse(res.mes)
if (mes.form) {
// 驳回
this.$set(this, 'form', mes.form)
@@ -362,10 +394,10 @@ export default {
this.reloadForm = true
})
},
//保存
handleSave() {
// 保存
handleSave () {
this.footerLoading = true
let _formData = new FormData()
const _formData = new FormData()
_formData.append('prcType', 'laws1')
if (this.$route.query.taskIds) {
// 重新起草保存
@@ -411,7 +443,7 @@ export default {
// 重新起草
completeTaskQuery = {
taskIds: this.$route.query.taskIds,
userId : this.$store.getters.userInfo.userId,
userId: this.$store.getters.userInfo.userId,
json: JSON.stringify(json)
}
} else {
@@ -431,7 +463,7 @@ export default {
completeTaskQuery = {
taskIds: res.data,
userId : this.$store.getters.userInfo.userId,
userId: this.$store.getters.userInfo.userId,
json: JSON.stringify(json)
}
}
@@ -449,9 +481,9 @@ export default {
taskDel({ id: this.$route.query.bpnId })
}
// 流程提交之后,应该流转至待办任务页面
await this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
await this.$router.push({ path: '/processCenter?tabsName=ProcessCenter' })
},
handleSubmit() {
handleSubmit () {
this.$refs['form'].validate((valid) => {
if (valid) {
this.$refs['roleForm'].$refs['userForm'].validate((valid) => {
@@ -9,43 +9,43 @@
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div>
<div class="content">
<el-form v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
class="label-input-form"
label-width="210px"
<el-form
v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
class="label-input-form"
label-width="210px"
>
<div v-show="active === '1'">
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
<EffectiveDate :form="form" :dict="dict" :disabled="disabled"></EffectiveDate>
<TextInfo :form="form" :dict="dict" :disabled="disabled"></TextInfo>
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
<RelatesInfo :form="form" :dict="dict" :disabled="disabled"></RelatesInfo>
<ReceiptDescription isItem v-model="form.commentText" prop="commentText" title="审批意见"></ReceiptDescription>
<Basic :form="form" :dict="dict" :disabled="disabled" />
<EffectiveDate :form="form" :dict="dict" :disabled="disabled" />
<TextInfo :form="form" :dict="dict" :disabled="disabled" />
<Range :form="form" :dict="dict" :disabled="disabled" />
<RelatesInfo :form="form" :dict="dict" :disabled="disabled" />
<ReceiptDescription v-model="form.commentText" isItem prop="commentText" title="审批意见" />
</div>
<ApprovalHistory v-if="active === '3'"></ApprovalHistory>
<ApprovalHistory v-if="active === '3'" />
</el-form>
</div>
<ProcessFooter
show-submit
show-over2
show-transfer
:submitLoading="footerLoading"
:saveLoading="footerLoading"
@transfer="handleTransfer"
@submit="handleApprove"
@over2="handleOver"
>
</ProcessFooter>
show-submit
show-over2
show-transfer
:submitLoading="footerLoading"
:saveLoading="footerLoading"
@transfer="handleTransfer"
@submit="handleApprove"
@over2="handleOver"
/>
<!-- 福田全公司选人解决方案 -->
<Role-tree
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
:nodeList="nodeList"
></Role-tree>
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
:nodeList="nodeList"
@checkedRole="checkedRole"
/>
<loading :loading="loading">数据获取中</loading>
</div>
</template>
@@ -54,19 +54,19 @@
import ProcessHeader from '@/pages/processCenter/pages/components//ProcessHeader'
import ProcessFooter from '@/pages/processCenter/pages/components//ProcessFooter'
import Basic from "./components/Basic";
import EffectiveDate from "./components/EffectiveDate";
import TextInfo from "./components/TextInfo";
import Range from "./components/Range";
import RelatesInfo from "./components/RelatesInfo";
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
import PersonInfo from "./components/PersonInfo";
import ApprovalHistory from "@/components/hzwlComponents/ApprovalHistory";
import Basic from './components/Basic';
import EffectiveDate from './components/EffectiveDate';
import TextInfo from './components/TextInfo';
import Range from './components/Range';
import RelatesInfo from './components/RelatesInfo';
import ReceiptDescription from '@/components/hzwlComponents/ReceiptDescription';
import PersonInfo from './components/PersonInfo';
import ApprovalHistory from '@/components/hzwlComponents/ApprovalHistory';
import {inboundLiaisonDetail, processCreateLaws, changeAssigneeNew, completeTask} from 'api/process'
import { inboundLiaisonDetail, processCreateLaws, changeAssigneeNew, completeTask } from 'api/process'
export default {
name: "zrckStep2",
name: 'ZrckStep2',
components: {
ProcessHeader,
ProcessFooter,
@@ -91,8 +91,8 @@ export default {
lawsNo: '',
issueTime: '',
issueCompany: '',
commentCycleStart: '',// 征集意见周期
commentCycleEnd: '',// 征集意见周期
commentCycleStart: '', // 征集意见周期
commentCycleEnd: '', // 征集意见周期
lawsTextState: '',
lawsSycx: '',
isRelateAccess: '2',
@@ -100,8 +100,13 @@ export default {
lawsNotisyncNum: '',
NotisyncNumLink: '',
lawsBulletin: '',
referenceNews: '',
lawsLabel: '',
lawsRemark: '',
lawsKeyPoint: '',
lawsOriginalLink: '',
menuId: '',
menuName: '',
// 实施日期
SSRQLAWS: '',
XRZSSRQLAWS: '',
@@ -130,7 +135,7 @@ export default {
GLWJLAWSName: '',
YYBZZCLAWS: '',
// 回执说明
commentText:''
commentText: ''
}
const roleForm = {
jlUserId: '',
@@ -141,105 +146,114 @@ export default {
// 完整校验
const moreSarLawsStandRules = {
lawsTypeFirstLevel: [
{required: true, message: '1级政策分类不能为空', trigger: 'change'}
{ required: true, message: '1级政策分类不能为空', trigger: 'change' }
],
lawsTypeSecondLevel: [
{required: true, message: '2级政策分类不能为空', trigger: 'change'}
{ required: true, message: '2级政策分类不能为空', trigger: 'change' }
],
lawsTypeThirdLevel: [
{required: true, message: '3级政策分类不能为空', trigger: 'change'}
{ required: true, message: '3级政策分类不能为空', trigger: 'change' }
],
lawsTypeFourthLevel: [
{required: true, message: '4级政策分类不能为空', trigger: 'change'}
{ required: true, message: '4级政策分类不能为空', trigger: 'change' }
],
lawsName: [
{required: true, message: '政策名称不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '政策名称不能超过500个字符', trigger: 'change'},
{validator: this.verify.checkSpecialCharacterOftags, trigger: 'change'}
{ required: true, message: '政策名称不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '政策名称不能超过500个字符', trigger: 'change' },
{ validator: this.verify.checkSpecialCharacterOftags, trigger: 'change' }
],
lawsEnName: [
{type: 'string', max: 500, message: '英文名称不能超过500个字符', trigger: 'change'},
{validator: this.verify.valiateEnName, trigger: 'change'}
{ type: 'string', max: 500, message: '英文名称不能超过500个字符', trigger: 'change' },
{ validator: this.verify.valiateEnName, trigger: 'change' }
],
lawsNo: [
// {required: true, type: 'string', message: '政策文号不能为空', trigger: 'change'},
{type: 'string', max: 100, message: '政策文号不能超过100个字符', trigger: 'change'}
{ type: 'string', max: 100, message: '政策文号不能超过100个字符', trigger: 'change' }
],
issueTime: [
{required: true, message: '发文日期不能为空', trigger: 'change'},
{ required: true, message: '发文日期不能为空', trigger: 'change' },
],
issueCompany: [
{required: true, type: 'string', message: '发文单位不能为空', trigger: 'change'},
{type: 'string', max: 100, message: '发文单位不能超过100个字符', trigger: 'change'}
{ required: true, type: 'string', message: '发文单位不能为空', trigger: 'change' },
{ type: 'string', max: 100, message: '发文单位不能超过100个字符', trigger: 'change' }
],
lawsTextState: [
{required: true, message: '标准状态不能为空', trigger: 'change'}
{ required: true, message: '标准状态不能为空', trigger: 'change' }
],
isRelateAccess: [
{required: true, message: '是否纳入认证清单不能为空', trigger: 'change'}
{ required: true, message: '是否纳入认证清单不能为空', trigger: 'change' }
],
lawsYear: [
{required: true, message: '年度不能为空', trigger: 'change'}
{ required: true, message: '年度不能为空', trigger: 'change' }
],
lawsNotisyncNum: [
{type: 'string', max: 500, message: '福田转发通知文号不能超过500个字符', trigger: 'change'}
{ type: 'string', max: 500, message: '福田转发通知文号不能超过500个字符', trigger: 'change' }
],
lawsRemark: [
{type: 'string', max: 500, message: '备注不能超过500个字符', trigger: 'change'}
{ type: 'string', max: 500, message: '备注不能超过500个字符', trigger: 'change' }
],
lawsBulletin: [
{ type: 'string', max: 500, message: '信息月报不能超过500个字符', trigger: 'change' }
],
SSRQLAWS: [
{required: true, message: '实施日期不能为空', trigger: 'change'}
{ required: true, message: '实施日期不能为空', trigger: 'change' }
],
CYSDLAWS: [
{required: true, message: '我司参与深度不能为空', trigger: 'change'}
{ required: true, message: '我司参与深度不能为空', trigger: 'change' }
],
menuName: [
{ required: true, message: '政策体系不能为空', trigger: 'change' }
],
}
// 认证清单为否 的校验
const littleSarLawsStandRules = {
lawsTypeFirstLevel: [
{required: true, message: '1级政策分类不能为空', trigger: 'change'}
{ required: true, message: '1级政策分类不能为空', trigger: 'change' }
],
lawsTypeSecondLevel: [
{required: true, message: '2级政策分类不能为空', trigger: 'change'}
{ required: true, message: '2级政策分类不能为空', trigger: 'change' }
],
lawsTypeThirdLevel: [
{required: true, message: '3级政策分类不能为空', trigger: 'change'}
{ required: true, message: '3级政策分类不能为空', trigger: 'change' }
],
lawsTypeFourthLevel: [
{required: true, message: '4级政策分类不能为空', trigger: 'change'}
{ required: true, message: '4级政策分类不能为空', trigger: 'change' }
],
lawsName: [
{required: true, message: '政策名称不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '政策名称不能超过500个字符', trigger: 'change'},
{validator: this.verify.checkSpecialCharacterOftags, trigger: 'change'}
{ required: true, message: '政策名称不能为空', trigger: 'change' },
{ type: 'string', max: 500, message: '政策名称不能超过500个字符', trigger: 'change' },
{ validator: this.verify.checkSpecialCharacterOftags, trigger: 'change' }
],
lawsEnName: [
{type: 'string', max: 500, message: '英文名称不能超过500个字符', trigger: 'change'},
{validator: this.verify.valiateEnName, trigger: 'change'}
{ type: 'string', max: 500, message: '英文名称不能超过500个字符', trigger: 'change' },
{ validator: this.verify.valiateEnName, trigger: 'change' }
],
lawsNo: [
// {required: true, type: 'string', message: '政策文号不能为空', trigger: 'change'},
{type: 'string', max: 100, message: '政策文号不能超过100个字符', trigger: 'change'}
{ type: 'string', max: 100, message: '政策文号不能超过100个字符', trigger: 'change' }
],
issueCompany: [
{type: 'string', max: 100, message: '发文单位不能超过100个字符', trigger: 'change'}
{ type: 'string', max: 100, message: '发文单位不能超过100个字符', trigger: 'change' }
],
lawsNotisyncNum: [
{type: 'string', max: 500, message: '福田转发通知文号不能超过500个字符', trigger: 'change'}
{ type: 'string', max: 500, message: '福田转发通知文号不能超过500个字符', trigger: 'change' }
],
lawsRemark: [
{type: 'string', max: 500, message: '备注不能超过500个字符', trigger: 'change'}
{ type: 'string', max: 500, message: '备注不能超过500个字符', trigger: 'change' }
],
isRelateAccess: [
{required: true, message: '是否纳入认证清单不能为空', trigger: 'change'}
{ required: true, message: '是否纳入认证清单不能为空', trigger: 'change' }
],
menuName: [
{ required: true, message: '政策体系不能为空', trigger: 'change' }
],
}
const roleRules = {
prcCreateUserName: [
{required: true, message: '政策业务经理不能为空', trigger: ['blur', 'change']}
{ required: true, message: '政策业务经理不能为空', trigger: [ 'blur', 'change' ] }
],
jlUserName: [
{required: true, message: '政策业务经理不能为空', trigger: ['blur', 'change']}
{ required: true, message: '政策业务经理不能为空', trigger: [ 'blur', 'change' ] }
]
}
return {
@@ -255,7 +269,7 @@ export default {
footerLoading: false,
reloadForm: true, // 重新渲染表单
userId:this.$store.getters.userInfo.userId,
userId: this.$store.getters.userInfo.userId,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
@@ -267,22 +281,22 @@ export default {
loading: false,
}
},
created() {
this.getDicTypeListCode()
this.getData()
this.resolveRules()
},
watch: {
'form.isRelateAccess' () {
// 移除校验结果重新生成校验
this.resolveRules()
}
},
created () {
this.getDicTypeListCode()
this.getData()
this.resolveRules()
},
methods: {
handleTabs(tab) {
handleTabs (tab) {
this.active = tab
},
getData() {
getData () {
return new Promise((resolve, reject) => {
this.loading = true
inboundLiaisonDetail({
@@ -318,7 +332,7 @@ export default {
this.reloadForm = true
})
},
handleTransfer() {
handleTransfer () {
this.drawerModal = true
this.drawerTitle = '转办处理人'
},
@@ -333,18 +347,18 @@ export default {
if (res.success) {
this.drawerModal = false
this.$message.success('调整成功')
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
this.$router.push({ path: '/processCenter?tabsName=ProcessCenter' })
} else {
this.$message.warning(res.message)
}
})
},
handleOver(){
handleOver () {
// 驳回
this.form.approvalOpinion = 1
this.handleSubmit()
},
handleApprove(){
handleApprove () {
// 通过
this.form.approvalOpinion = 0
this.handleSubmit()
@@ -363,7 +377,7 @@ export default {
this.rules = { ...this.rules }
},
// 提交
handleSubmit() {
handleSubmit () {
this.addRule()
this.$refs['form'].validate((valid) => {
if (valid) {
@@ -371,16 +385,16 @@ export default {
const json = JSON.stringify(this.form);
const query = {
taskIds: this.$route.query.taskIds,
userId : this.$store.getters.userInfo.userId,
userId: this.$store.getters.userInfo.userId,
json: json
}
this.$http._post('lawss/activiti/completeTask', query).then(res => {
if (res.success) {
if(this.form.approvalOpinion === 1){
this.$message.warning("驳回成功")
if(this.form.approvalOpinion === 1) {
this.$message.warning('驳回成功')
this.footerLoading = false
// 流程提交之后,应该流转至待办任务页面
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
this.$router.push({ path: '/processCenter?tabsName=ProcessCenter' })
}else{
this.processCreateLaws(json)
}
@@ -391,17 +405,18 @@ export default {
})
} else {
this.$message.warning('请检查基础信息表单是否填写完整')
}})
}
})
},
// 流程入库
processCreateLaws(json) {
processCreateLaws (json) {
const _formData = new FormData()
_formData.append('infoJson', json)
processCreateLaws(_formData).then(res => {
if (res.result === '操作成功' || res.data === '入库成功') {
this.$message.success(res.data)
setTimeout(() => {
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
this.$router.push({ path: '/processCenter?tabsName=ProcessCenter' })
}, 100)
this.footerLoading = false
} else {
@@ -312,7 +312,7 @@
</div>
</div>
<div>
<el-divider content-position="left"><h2>标准化活动相关流程</h2></el-divider>
<el-divider content-position="left"><h2>标准化活动/政策课题相关流程</h2></el-divider>
<div class="process-box">
<div class="process-name">
<el-card v-btn-permission="'b196ef0253cebd1adfc3a8432a28e377'" shadow="hover">