This commit is contained in:
zhutianqi
2021-08-03 13:57:13 +08:00
parent fdcc5a8692
commit af7a749369
@@ -1,92 +1,92 @@
<!--征求意见详情-->
<template>
<div class="consultationDetails">
<div class="contentTitle">
<div class="back" title="返回" @click="back">
<i class="el-icon-back"></i>
</div>
<div class="title">征求意见详情<i class="el-icon-s-order" @click="heightShow = !heightShow"></i></div>
</div>
<transition name="el-zoom-in-top">
<div v-show="heightShow" class="transition-box">
<p class="transition-box-p">
<label class="transition-box-label">标准号</label>
<span class="transition-box-span">{{ this.$route.query.item.cid }}</span>
</p>
<p class="transition-box-p">
<label class="transition-box-label">标准名称</label>
<span class="transition-box-span">{{ this.$route.query.item.cname || '-' }}</span>
</p>
<p class="transition-box-p">
<label class="transition-box-label">上传时间</label>
<span class="transition-box-span">{{ this.$route.query.item.endTime || '-' }}</span>
</p>
<p class="transition-box-p">
<label class="transition-box-label">征求意见周期</label>
<span class="transition-box-span" v-if="this.$route.query.item.startTime && this.$route.query.item.endTime">{{ this.$route.query.item.startTime + ' ~ ' + this.$route.query.item.endTime}}</span>
<span class="transition-box-span" v-else>-</span>
</p>
</div>
</transition>
<div class="effect">
<el-button v-if="ideaKey" type="primary" class="common-button-primary" size="mini" @click="selectStandardPro('add')">添加</el-button>
<el-button type="primary" class="common-button-primary" size="mini" @click="exportAll">导出</el-button>
</div>
<div class="container" style="position:relative;">
<div style="position: absolute;top: 0;left: 0;bottom: 0;right: 0;">
<el-table
:data="standinfoList"
height="100%"
border
style="width: 100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
<div class="contentTitle">
<div class="back" title="返回" @click="back">
<i class="el-icon-back"></i>
</div>
<div class="title">征求意见详情<i class="el-icon-s-order" @click="heightShow = !heightShow"></i></div>
</div>
<transition name="el-zoom-in-top">
<div v-show="heightShow" class="transition-box">
<p class="transition-box-p">
<label class="transition-box-label">标准号</label>
<span class="transition-box-span">{{ this.$route.query.item.cid }}</span>
</p>
<p class="transition-box-p">
<label class="transition-box-label">标准名称</label>
<span class="transition-box-span">{{ this.$route.query.item.cname || '-' }}</span>
</p>
<p class="transition-box-p">
<label class="transition-box-label">上传时间</label>
<span class="transition-box-span">{{ this.$route.query.item.endTime || '-' }}</span>
</p>
<p class="transition-box-p">
<label class="transition-box-label">征求意见周期</label>
<span class="transition-box-span" v-if="this.$route.query.item.startTime && this.$route.query.item.endTime">{{ this.$route.query.item.startTime + ' ~ ' + this.$route.query.item.endTime}}</span>
<span class="transition-box-span" v-else>-</span>
</p>
</div>
</transition>
<div class="effect">
<el-button v-if="ideaKey" type="primary" class="common-button-primary" size="mini" @click="selectStandardPro('add')">添加</el-button>
<el-button type="primary" class="common-button-primary" size="mini" @click="exportAll">导出</el-button>
</div>
<div class="container" style="position:relative;">
<div style="position: absolute;top: 0;left: 0;bottom: 0;right: 0;">
<el-table
:data="standinfoList"
height="100%"
border
style="width: 100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
prop="partCode"
label="章节编号"
align="center"
width="180">
</el-table-column>
<el-table-column
prop="content"
align="center"
label="修改意见内容(包括理由或依据)"
>
</el-table-column>
<el-table-column
prop="deptName"
align="center"
label="提出部门"
>
</el-table-column>
<el-table-column
prop="userName"
align="center"
label="提出人"
>
</el-table-column>
<el-table-column label="操作" align="center" width="50" fixed="right" v-if="ideaKey">
<template slot-scope="scope">
<div @click.stop style="display: inline-block">
<el-dropdown trigger="click" @command="handleCommand">
<i v-if="scope.row.userId === $store.getters.userInfo.userId" class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-if="scope.row.userId === $store.getters.userInfo.userId" :command="[scope.row, '编辑']">编辑</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '删除']">删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
<pagination
style="position: static;width: 100%;"
:page="form.page"
:total="total"
@pageChange="handlePageChange"
@pageSizeChange="handlePageSizeChange"></pagination>
<el-table-column
prop="partCode"
label="章节编号"
align="center"
width="180">
</el-table-column>
<el-table-column
prop="content"
align="center"
label="修改意见内容(包括理由或依据)"
>
</el-table-column>
<el-table-column
prop="deptName"
align="center"
label="提出部门"
>
</el-table-column>
<el-table-column
prop="userName"
align="center"
label="提出人"
>
</el-table-column>
<el-table-column label="操作" align="center" width="50" fixed="right" v-if="ideaKey">
<template slot-scope="scope">
<div @click.stop style="display: inline-block">
<el-dropdown trigger="click" @command="handleCommand">
<i v-if="scope.row.userId === $store.getters.userInfo.userId" class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-if="scope.row.userId === $store.getters.userInfo.userId" :command="[scope.row, '编辑']">编辑</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '删除']">删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
<pagination
style="position: static;width: 100%;"
:page="form.page"
:total="total"
@pageChange="handlePageChange"
@pageSizeChange="handlePageSizeChange"></pagination>
<el-drawer
:title=opiniontitle
:visible.sync="isDialog"
@@ -117,292 +117,304 @@
</template>
<script>
export default {
name: 'consultationDetails',
data () {
return {
id: '', // 选中id
type: '', // 选中状态
spinShow: false,
total: 0, // 总数
opiniontitle: '新增意见', // 抽屉标题
isDialog: false, //新增抽屉状态
heightShow: true, // 高度
isSubmit: false,
opinionContent: { // 抽屉数据
partCode: '',
content: '',
export default {
name: 'consultationDetails',
data () {
return {
id: '', // 选中id
type: '', // 选中状态
spinShow: false,
total: 0, // 总数
opiniontitle: '新增意见', // 抽屉标题
isDialog: false, //新增抽屉状态
heightShow: true, // 高度
isSubmit: false,
opinionContent: { // 抽屉数据
partCode: '',
content: '',
},
opinionContentRules: {
partCode: [
{ required: true, message: '请输入章节编号', trigger: 'blur' },
],
content: [
{ required: true, message: '请输入修改意见内容(包括理由或依据)', trigger: 'blur' }
],
},
standinfoList: [], // 详情列表
form: {
cid: this.$route.query.item.cid,
page: 1,
size: this.$store.getters.userInfo.configContent,
userId: this.$store.getters.userInfo.userId,
endTime: this.$route.query.item.endTime
}, // 详情数据
ideaKey: false
}
},
opinionContentRules: {
partCode: [
{ required: true, message: '请输入章节编号', trigger: 'blur' },
],
content: [
{ required: true, message: '请输入修改意见内容(包括理由或依据)', trigger: 'blur' }
],
methods: {
exportAll () {
window.open('/api/slrs/sar-public-idea-all/tuallStand?cid=' + this.$route.query.item.cid)
},
getIdeaKey () {
this.$http.get('slrs/sar-public-idea-all/checkIsShow', {
endTime: this.form.endTime
}, {}, res => {
if (res.message === '1') {
this.ideaKey = false
} else {
this.ideaKey = true
}
})
},
// 获取详情信息列表
getList() {
this.spinShow = true
this.$http.get('slrs/sar-public-idea-all/getAllStand', this.form, {
_this: this
}, res => {
this.standinfoList = res.data.records
this.total = res.data.total
this.spinShow = false
res.data.records.forEach(item => {
if (item.ideaKey == 1) {
this.ideaKey = false
} else {
this.ideaKey = true
}
})
}, e => {
})
},
//分页数据改变
handlePageChange(page) {
this.form.page = page
this.getList()
},
handlePageSizeChange(pageSize) {
this.$store.getters.userInfo.configContent = pageSize
this.form.size = pageSize
this.getList()
},
back (){
this.$router.push({
name:'standardForComments'
})
},
// 更多
handleCommand (command) {
switch (command[1]) {
case '编辑':
this.selectStandardPro('edit', command[0])
break
case '删除':
this.deleteStand(command[0].id)
break
}
},
//编辑
selectStandardPro(type, row){
this.type = type
if (type === 'edit') {
this.id = row.id
this.opiniontitle = '编辑意见内容'
this.opinionContent.partCode = row.partCode
this.opinionContent.content = row.content
} else {
this.id = ''
this.opiniontitle = '新增意见'
this.opinionContent.partCode = ''
this.opinionContent.content = ''
}
this.isDialog = true
},
//删除
deleteStand(id){
this.$confirm('确认删除这些意见?', '提示', {
confirmButtonText: '确定',
confirmButtonClass: 'common-button-primary',
cancelButtonText: '取消',
type: 'warning',
roundButton: false
}).then(() => {
var form = {
id: id,
autUserId: this.$store.getters.userInfo.userId,
userId: this.$store.getters.userInfo.userId
}
this.$http.get('slrs/sar-public-idea-all/deleteStand', form, {
_this: this
}, res => {
this.$message.warning(res.message)
this.form.page = 1
this.getList()
})
//确认事件
}).catch(() => {
this.$message.warning('取消删除')
//取消事件
})
},
//点击抽屉按钮提交事件
saveUserInfo() {
this.$refs['formAdd'].validate((valid) => {
if (valid) {
var url = ''
var form = {
cid: this.$route.query.item.cid,
content: this.opinionContent.content,
partCode: this.opinionContent.partCode,
userId: this.$store.getters.userInfo.userId,
userName: this.$store.getters.userInfo.account,
deptName: this.$store.getters.userInfo.orgName,
deptId: this.$store.getters.userInfo.orgId
}
if (this.type === 'edit') {
form.id = this.id
form.autUserId = this.$store.getters.userInfo.userId
url = 'slrs/sar-public-idea-all/updateStand'
} else {
url = 'slrs/sar-public-idea-all/insetStand'
}
this.$http.post(url, form, {
_this: this
}, res => {
if (res.respCode === '200') {
this.form.page = 1
this.getList()
}
})
this.isDialog = false
}
})
},
//点击抽屉按钮取消事件
closeDrawer() {
this.isDialog = false
},
},
standinfoList: [], // 详情列表
form: {
cid: this.$route.query.item.cid,
page: 1,
size: this.$store.getters.userInfo.configContent,
userId: this.$store.getters.userInfo.userId,
endTime: this.$route.query.item.endTime
}, // 详情数据
ideaKey: false
mounted () {
this.getList()
this.getIdeaKey()
}
}
},
methods: {
exportAll () {
window.open('/api/slrs/sar-public-idea-all/tuallStand?cid=' + this.$route.query.item.cid)
},
// 获取详情信息列表
getList() {
this.spinShow = true
this.$http.get('slrs/sar-public-idea-all/getAllStand', this.form, {
_this: this
}, res => {
this.standinfoList = res.data.records
this.total = res.data.total
this.spinShow = false
res.data.records.forEach(item => {
if (item.ideaKey == 1) {
this.ideaKey = false
} else {
this.ideaKey = true
}
})
}, e => {
})
},
//分页数据改变
handlePageChange(page) {
this.form.page = page
this.getList()
},
handlePageSizeChange(pageSize) {
this.$store.getters.userInfo.configContent = pageSize
this.form.size = pageSize
this.getList()
},
back (){
this.$router.push({
name:'standardForComments'
})
},
// 更多
handleCommand (command) {
switch (command[1]) {
case '编辑':
this.selectStandardPro('edit', command[0])
break
case '删除':
this.deleteStand(command[0].id)
break
}
},
//编辑
selectStandardPro(type, row){
this.type = type
if (type === 'edit') {
this.id = row.id
this.opiniontitle = '编辑意见内容'
this.opinionContent.partCode = row.partCode
this.opinionContent.content = row.content
} else {
this.id = ''
this.opiniontitle = '新增意见'
this.opinionContent.partCode = ''
this.opinionContent.content = ''
}
this.isDialog = true
},
//删除
deleteStand(id){
this.$confirm('确认删除这些意见?', '提示', {
confirmButtonText: '确定',
confirmButtonClass: 'common-button-primary',
cancelButtonText: '取消',
type: 'warning',
roundButton: false
}).then(() => {
var form = {
id: id,
autUserId: this.$store.getters.userInfo.userId,
userId: this.$store.getters.userInfo.userId
}
this.$http.get('slrs/sar-public-idea-all/deleteStand', form, {
_this: this
}, res => {
this.$message.warning(res.message)
this.form.page = 1
this.getList()
})
//确认事件
}).catch(() => {
this.$message.warning('取消删除')
//取消事件
})
},
//点击抽屉按钮提交事件
saveUserInfo() {
this.$refs['formAdd'].validate((valid) => {
if (valid) {
var url = ''
var form = {
cid: this.$route.query.item.cid,
content: this.opinionContent.content,
partCode: this.opinionContent.partCode,
userId: this.$store.getters.userInfo.userId,
userName: this.$store.getters.userInfo.account,
deptName: this.$store.getters.userInfo.orgName,
deptId: this.$store.getters.userInfo.orgId
}
if (this.type === 'edit') {
form.id = this.id
form.autUserId = this.$store.getters.userInfo.userId
url = 'slrs/sar-public-idea-all/updateStand'
} else {
url = 'slrs/sar-public-idea-all/insetStand'
}
this.$http.post(url, form, {
_this: this
}, res => {
if (res.respCode === '200') {
this.form.page = 1
this.getList()
}
})
this.isDialog = false
}
})
},
//点击抽屉按钮取消事件
closeDrawer() {
this.isDialog = false
},
},
mounted () {
this.getList()
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/mixins';
@import '~@/assets/styles/style';
.consultationDetails {
height: 100%;
display: flex;
flex-direction: column;
.iconClass{
width: 18px;
height: 18px;
}
.contentTitle {
display: flex;
align-items: center;
padding: 0 10px;
height: 50px;
background: #ffffff;
.title{
flex: 1;
font-weight: bold;
font-size: 20px;
margin-left: 15px;
.el-icon-s-order{
font-size: 22px;
color: #4498F0;
cursor: pointer;
}
}
}
.transition-box{
padding: 0 10px;
background: #ffffff;
font-size: 14px;
.transition-box-p{
line-height: 35px;
.transition-box-label{
display: inline-block;
width: 100px;
vertical-align: top;
}
.transition-box-span{
display: inline-block;
width: calc(~'100% - 100px');
}
.file-box{
display: inline-block;
width: calc(~'100% - 100px');
.transition-box-span{
display: inline;
width: 100%;
cursor: pointer;
color: #4498f0;
}
p{
& > a{
cursor: pointer;
}
& > i{
display: inline-block;
margin-left: 3px;
width: 18px;
height: 16px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: sub;
cursor: pointer;
}
.icon-download{
background-image: url("~assets/images/shangqi/img/download.png");
}
.icon-download2{
background-image: url("~assets/images/shangqi/img/download2.png");
}
}
}
}
}
.effect {
margin: 10px 10px 0 0;
}
.container {
height: calc(~'100% - 52px - 55px - 50px');
flex: auto;
display: flex;
margin:10px 0;
flex-direction: column;
.el-tabs{
height: 100%;
display: flex;
flex-direction: column;
flex: auto;
/deep/.el-tabs__content{
//height: calc(~'100% - 55px');
overflow-y: auto;
flex: auto;
@import '~@/assets/styles/mixins';
@import '~@/assets/styles/style';
.consultationDetails {
height: 100%;
display: flex;
flex-direction: column;
.el-tab-pane{
height: 100%;
flex: auto;
display: flex;
flex-direction: column;
.iconClass{
width: 18px;
height: 18px;
}
.contentTitle {
display: flex;
align-items: center;
padding: 0 10px;
height: 50px;
background: #ffffff;
.title{
flex: 1;
font-weight: bold;
font-size: 20px;
margin-left: 15px;
.el-icon-s-order{
font-size: 22px;
color: #4498F0;
cursor: pointer;
}
}
}
.transition-box{
padding: 0 10px;
background: #ffffff;
font-size: 14px;
.transition-box-p{
line-height: 35px;
.transition-box-label{
display: inline-block;
width: 100px;
vertical-align: top;
}
.transition-box-span{
display: inline-block;
width: calc(~'100% - 100px');
}
.file-box{
display: inline-block;
width: calc(~'100% - 100px');
.transition-box-span{
display: inline;
width: 100%;
cursor: pointer;
color: #4498f0;
}
p{
& > a{
cursor: pointer;
}
& > i{
display: inline-block;
margin-left: 3px;
width: 18px;
height: 16px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: sub;
cursor: pointer;
}
.icon-download{
background-image: url("~assets/images/shangqi/img/download.png");
}
.icon-download2{
background-image: url("~assets/images/shangqi/img/download2.png");
}
}
}
}
}
.effect {
margin: 10px 10px 0 0;
}
.container {
height: calc(~'100% - 52px - 55px - 50px');
flex: auto;
display: flex;
margin:10px 0;
flex-direction: column;
.el-tabs{
height: 100%;
display: flex;
flex-direction: column;
flex: auto;
/deep/.el-tabs__content{
//height: calc(~'100% - 55px');
overflow-y: auto;
flex: auto;
display: flex;
flex-direction: column;
.el-tab-pane{
height: 100%;
flex: auto;
display: flex;
flex-direction: column;
}
}
}
}
.add-demo {
.search-area {
height: 100%;
}
::v-deep .el-textarea__inner {
width: 1000px;
}
}
}
}
}
.add-demo {
.search-area {
height: 100%;
}
::v-deep .el-textarea__inner {
width: 1000px;
}
}
}
</style>