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