This commit is contained in:
宋伟佳
2021-07-16 14:34:55 +08:00
9 changed files with 1775 additions and 899 deletions
+71 -169
View File
@@ -8,11 +8,11 @@
@click="addLink"
v-btn-permission="'980cb239683de9e29ee5335cec98e5b4'"
size="mini">新增</el-button>
<!-- <el-button type="primary"-->
<!-- class="common-button-primary add-button"-->
<!-- @click="linkOrder"-->
<!-- v-btn-permission="'779665b2e4bb20fc480cf9372a100f69'"-->
<!-- size="mini">顺序调整</el-button>-->
<el-button type="primary"
class="common-button-primary add-button"
@click="linkOrder"
v-btn-permission="'779665b2e4bb20fc480cf9372a100f69'"
size="mini">顺序调整</el-button>
<el-button type="primary"
class="common-button-primary add-button"
@click="deleteAllLink"
@@ -22,7 +22,6 @@
<!-- 表格-->
<div class="content">
<el-table
ref="multipleTable"
:data="linkList"
tooltip-effect="dark"
border
@@ -46,11 +45,11 @@
prop="url"
label="链接">
</el-table-column>
<el-table-column
prop="orderBy"
label="序号"
sortable
width="170px">
<!-- <el-table-column-->
<!-- prop="orderBy"-->
<!-- label="序号"-->
<!-- sortable-->
<!-- width="170px">-->
</el-table-column>
<el-table-column
label="操作"
@@ -112,14 +111,21 @@
type: '', // 1为新增 2为编辑
dialogTitle: '',
submitLoading: false,
selectList: [],
// 向后台传参使用
data: [],
Loading: false,
modalshowflag: false,
// 排序
order:[],
// 表格选取的
selectList:[],
selectId:[],
ids:'',
// 向后台传参使用
sarStandardsInfoEO: {
name: '',
url: '',
// orderBy: ''
// sortId: ''
},
//新增链接未输入时提示
sarStandardsInfoRules: {
@@ -137,133 +143,7 @@
children: 'children'
},
linkList: [
{
url: 'http://www.sac.gov.cn/',
name: '国家标准化管理委员会',
orderBy: '01'
},
{
url: 'http://std.samr.gov.cn/',
name: '全国标准公共服务平台',
orderBy: '02'
},
{
url: 'http://www.gb688.cn/bzgk/gb/gbMainQuery%E5%9B%BD%E5%AE%B6%E6%A0%87%E5%87%86%E5%85%A8%E6%96%87%E5%85%AC%E5%BC%80',
name: '国家标准全文公开',
orderBy: '03'
},
{
url: 'http://www.catarc.org.cn/',
name: '全国汽车标准化技术委员会',
orderBy: '04'
},
{
url: 'http://jtst.mot.gov.cn/news/',
name: '交通运输标准化信息平台',
orderBy: '05'
},
{
url: 'https://www.miit.gov.cn/index.html',
name: '中华人民共和国工业和信息化部',
orderBy: '06'
},
{
url: 'http://www.miit-eidc.org.cn/',
name: '工信部装备工业发展中心',
orderBy: '07'
},
{
url: 'http://www.mee.gov.cn/',
name: '中华人民共和国生态环境部',
orderBy: '08'
},
{
url: 'http://sthjj.beijing.gov.cn/',
name: '北京市生态环境局',
orderBy: '09'
},
{
url: 'http://www.tmri.cn/',
name: '公安部交通管理科学研究院',
orderBy: '10'
},
{
url: 'http://www.tbt-sps.gov.cn/page/cwtoz/Indexquery.action',
name: '中国WTO/TBT-SPS通报资讯网',
orderBy: '11'
},
{
url: 'http://www.samr.gov.cn/',
name: '国家市场监督管理总局',
orderBy: '12'
},
{
url: 'http://www.caam.org.cn/',
name: '中国汽车工业协会',
orderBy: '13'
},
{
url: 'http://www.sae-china.org/',
name: '汽车工程学会',
orderBy: '14'
},
{
url: 'http://csae.sae-china.org/',
name: 'CSAE汽车工程学会标准',
orderBy: '15'
},
{
url: 'http://www.ttbz.org.cn/',
name: '全国团体标准信息平台',
orderBy: '16'
},
{
url: 'http://www.autoinfo.org.cn/',
name: '中国汽车工业信息网',
orderBy: '17'
},
{
url: 'http://cv.ce.cn/',
name: '中国商用车辆网',
orderBy: '18'
},
{
url: 'http://www.cnspv.cn/',
name: '中国专用汽车网',
orderBy: '19'
},
{
url: 'http://scjgj.beijing.gov.cn/bsfw/bmfw/bzhzl/',
name: '北京市市场监督管理局',
orderBy: '20'
},
{
url: 'http://www.unece.org/',
name: '欧盟经济委员会',
orderBy: '21'
},
{
url: 'https://eur-lex.europa.eu',
name: '欧盟',
orderBy: '22'
},
{
url: 'http://ec.europa.eu',
name: '欧共体',
orderBy: '23'
},
{
url: 'https://www.iso.org',
name: 'ISO',
orderBy: '24'
},
{
url: 'https://www.interregs.net/',
name: 'InterRegs',
orderBy: '25'
}
]
linkList: []
}
},
methods: {
@@ -274,26 +154,43 @@
this.modalshowflag = true
},
// //头部顺序调整按钮
// linkOrder () {
// this.$http.post('sarUrl/tsUrl/order',{
// urlId: this.sarStandardsInfoEO.url
// })
// },
//头部顺序调整按钮
linkOrder () {
this.order=[]
for (var i=0;i<this.linkList.length;i++){
this.order.push({
urlId:this.linkList[i].id,
sortId:this.linkList[i].sortId
})
}
this.$http.postData('sarUrl/tsUrl/order',this.order, {}, res => {
if (res.ok) {
}else {
this.$message.warning(res.message)
}
})
},
//头部删除按钮
deleteAllLink(row) {
deleteAllLink() {
this.selectId=[]
for (var i=0;i<this.selectList.length;i++){
this.selectId.push(this.selectList[i].id)
}
this.ids=this.selectId.join(",")
if (this.selectList.length === 0) {
this.$message.warning('请选择要删除的链接')
} else {
this.modalRole = true
// this.nodeList = this.selectList[0].idList
this.$http.delete('sarUrl/tsUrl/deleteBatch', {
id: this.selectList.id
ids: this.ids
}, {}, res => {
if (res.ok) {
this.$message.success('删除成功')
this.getLink()
}else {
this.$message.warning(res.message)
}
})
}
@@ -310,9 +207,8 @@
this.$refs['sarStandardsInfoForm'].validate((valid) => {
if (valid) {
if (this.type === 1) {
this.$http.post('sarUrl/tsUrl/add', {
name: this.sarStandardsInfoEO.name,
url: this.sarStandardsInfoEO.url,
this.$http.postData('/sarUrl/tsUrl/add', {
...this.sarStandardsInfoEO,
}, {
_this: this,
loading: 'Loading'
@@ -326,7 +222,8 @@
}
})
} else {
this.$http.put('sarUrl/tsUrl/edit', {
// 编辑
this.$http.putData('/sarUrl/tsUrl/edit', {
id: this.editId,
name: this.sarStandardsInfoEO.name,
url: this.sarStandardsInfoEO.url,
@@ -365,10 +262,15 @@
deleteLink (row) {
this.$http.delete('sarUrl/tsUrl/delete', {
id: row.id
}, {}, res => {
}, {
_this: this,
loading: 'Loading'
}, res => {
if (res.ok) {
this.$message.success('删除成功')
this.getLink()
}else {
this.$message.warning(res.message)
}
})
},
@@ -379,7 +281,7 @@
this.editId = row.id
this.sarStandardsInfoEO.name = row.name
this.sarStandardsInfoEO.url = row.url
this.sarStandardsInfoEO.orderBy = row.orderBy
this.sarStandardsInfoEO.sortId = row.sortId
this.dialogTitle = '修改链接'
this.modalshowflag = true
},
@@ -391,12 +293,12 @@
// 获取链接数据
getLink () {
this.$http.get('sarUrl/tsUrl', {}, {
_this: this,
loading: 'Loading'
}, res=> {
this.data = res.data
console.log(data);
this.$http.get('sarUrl/tsUrl', {
}, {
_this: this,
loading: 'Loading'
}, res=> {
this.linkList = res.data
})
},
},
@@ -407,14 +309,14 @@
</script>
<style lang="less" scoped>
@import '~@/assets/styles/mixins';
#post-manage {
height: 100%;
.content {
height: calc(~'100% - 53px')
@import '~@/assets/styles/mixins';
#post-manage {
height: 100%;
.content {
height: calc(~'100% - 53px')
}
.filter-tree {
height: calc(~'100% - 50px')
}
}
.filter-tree {
height: calc(~'100% - 50px')
}
}
</style>
+7 -35
View File
@@ -2,8 +2,8 @@
<template>
<div class="link">
<ul>
<li v-for="(link, index) in linkList" :key="index">
<a @click="openLinkUrl(link.newWebSite)" v-html="link.webName"></a>
<li v-for="(link, index) in linkList" v-if="index<5" :key="index">
<a @click="openLinkUrl(link.url)" v-html="link.name"></a>
</li>
<li>
<router-link to="/linkManage">更多链接></router-link>
@@ -19,36 +19,7 @@ export default {
mixins: [],
data() {
return {
linkList: [
{
newWebSite: 'http://www.sac.gov.cn/',
webName: '国家标准化管理委员会'
},
{
newWebSite: 'http://std.samr.gov.cn/',
webName: '全国标准公共服务平台'
},
{
newWebSite: 'http://www.catarc.org.cn/',
webName: '全国汽车标准化技术委员会'
},
{
newWebSite: 'http://jtst.mot.gov.cn/news/',
webName: '交通运输标准化信息平台'
},
{
newWebSite: 'http://www.miit-eidc.org.cn/',
webName: '工信部装备工业发展中心'
},
{
newWebSite: 'http://www.mee.gov.cn/',
webName: '中华人民共和国生态环境部'
},
// {
// newWebSite: '',
// webName: '更多链接>'
// }
]
linkList: [],
}
},
computed: {},
@@ -67,13 +38,14 @@ export default {
window.open('https://' + linkUri)
}
},
// 获取链接数据
getLink () {
this.$http.get('sarUrl/tsUrl', {}, {
this.$http.get('sarUrl/tsUrl', {
}, {
_this: this,
loading: 'Loading'
}, res=> {
this.data = res.data
console.log(data);
this.linkList = res.data
})
}
},
File diff suppressed because it is too large Load Diff
@@ -1655,9 +1655,7 @@ export default {
},
methods: {
popoverHide (checkedIds, checkedData) {
console.log(checkedData)
this.sarStandardsInfoEO.standSystem = checkedData.id
console.log(this.sarStandardsInfoEO.standSystem);
},
closeModal () {
this.productModal = false
@@ -0,0 +1,324 @@
<!-- ProcessFooter -->
<template>
<div class="process-footer" v-if="showSave || showSubmit">
<div class="footer-line"></div>
<div class="btn-group-wrap">
<slot></slot>
<el-button
type="warning"
icon="el-icon-edit-outline"
size="small"
class="common-button-warning"
@click="handleOnLineEdit"
v-if="showEdit">在线编辑</el-button>
<!-- <el-button-->
<!-- type="primary"-->
<!-- size="mini"-->
<!-- class="common-button-primary"-->
<!-- @click="handleEntrust"-->
<!-- :loading="isSubmit"-->
<!-- v-if="showEntrust">-->
<!-- <i class="iconfont" style="font-size: 12px;">&#xe615;</i>-->
<!-- 委托</el-button>-->
<el-button
type="primary"
size="small"
class="common-button-primary"
icon="el-icon-message"
@click="handleSendEmail"
:loading="sendEmailLoading"
v-if="showSendEmail"
>发送邮件</el-button>
<el-button
type="danger"
size="small"
class="common-button-danger"
icon="el-icon-close"
@click="handleOver"
:loading="submitLoading"
v-if="showOver"
>撤销申请</el-button>
<el-button
type="primary"
size="mini"
class="common-button-primary"
@click="handleSave"
:loading="saveLoading"
v-if="showSave">
<i class="iconfont">&#xe608;</i>
保存
</el-button>
<el-button
type="danger"
size="small"
class="common-button-danger"
@click="beforeBack"
:loading="isSubmit"
v-if="showBack">
<i class="iconfont" style="font-size: 12px;">&#xe615;</i>
{{ backBTNText }}</el-button>
<el-button
type="primary"
size="small"
class="common-button-primary"
icon="el-icon-check"
@click="handleSubmit"
:loading="submitLoading"
v-if="showSubmit"
>{{ submitBTNTextShow }}</el-button>
</div>
<!-- 组织机构树 -->
<!-- <ProcessChooseTree-->
<!-- :visible.sync="visibleTree"-->
<!-- show-user-->
<!-- :dept-select="false"-->
<!-- @dblClick="handleAssigneeNew"-->
<!-- ></ProcessChooseTree>-->
<!-- 在线编辑 -->
<only-office-edit ref="onlyOffice" :visible.sync="visibleOnlyOffice"></only-office-edit>
<!-- 从全公司选人,2021-03-22(上汽大数据量人员解决方案) -->
<org-table
v-if="showEntrust"
:visible.sync="visibleTree"
:config="{
value: this.orgTableVal,
valueName: this.orgTableName
}"
title="委托"
:exclude-user="userId"
:max-selected="1"
max-selected-tips="当前任务只能委托给一个人"
dialog-model
@confirm="handleAssigneeNew"
></org-table>
</div>
</template>
<script>
import ProcessChooseTree from 'process/components/ProcessChooseTree'
import OnlyOfficeEdit from '@/components/onlyOfficeEdit'
import { changeAssigneeNew } from 'api/process'
import { mapGetters } from 'vuex'
export default {
name: 'ProcessFooter',
mixins: [],
props: {
// 是否显示结束流程按钮
showOver: {
type: Boolean,
default: false
},
// 是否显示保存按钮
showSave: {
type: Boolean,
default: false
},
// 是否显示发送邮件按钮
showSendEmail: {
type: Boolean,
default: false
},
// 发送邮件按钮loading
sendEmailLoading: {
type: Boolean,
default: false
},
// 是否显示提交按钮
showSubmit: {
type: Boolean,
default: false
},
// 是否显示委托按钮
showEntrust: {
type: Boolean,
default: false
},
// 是否显示退回按钮
showBack: {
type: Boolean,
default: false
},
// 提交按钮loading
submitLoading: {
type: Boolean,
default: false
},
// 保存按钮loading
saveLoading: {
type: Boolean,
default: false
},
// 是否默认委托事件
defaultEntrust: {
type: Boolean,
default: false
},
// 是否显示在线编辑按钮
showEdit: {
type: Boolean,
default: false
},
// 标准编号(在线编辑)
standNo: {
type: String
},
// 未选择标准编号/企标编号进行在线编辑的提示
noStandNoTip: {
type: String,
default: '请选择或输入企标编号后进行在线编辑'
},
// 审批节点
approval: {
type: Boolean,
default: false
},
// 带有退回/驳回意见
opinion: {
type: Boolean,
default: false
},
submitBTNText: {
type: String
}
},
components: {
ProcessChooseTree,
OnlyOfficeEdit
},
data () {
return {
isSubmit: false,
visibleTree: false,
visibleOnlyOffice: false,
orgTableVal: '',
orgTableName: ''
}
},
methods: {
handleOver() {
this.$emit('over')
},
handleSave() {
this.$emit('save')
},
handleSubmit() {
this.$emit('submit')
},
handleSendEmail() {
this.$emit('sendEmail')
},
handleEntrust() {
if (this.defaultEntrust) {
this.visibleTree = true
} else {
this.$emit('entrust')
}
},
handleBack() {
if (!this.opinion) {
this.$confirm(`您确定要${this.approval ? '驳回' : '退回'}该任务吗?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
confirmButtonClass: 'common-button-primary',
roundButton: true
}).then(() => {
this.$emit('back')
}).catch(() => {})
} else {
this.$emit('back')
}
},
/**
* @description: 委托
* @date: 2020-12-16 10:11:31
* @auth: chenxiaoxi
*/
handleAssigneeNew(checkedList, checkedIdList) {
if (!checkedList.length) { return false }
const assignee = checkedIdList[0]
const assigneeUserName = checkedList[0].userName
this.$confirm(`您确定要委托 ${assigneeUserName} 完成该任务吗?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
confirmButtonClass: 'common-button-primary',
roundButton: true
}).then(() => {
changeAssigneeNew({
taskId: this.$store.getters.getHandleInfo.taskIds, // 任务id
assignee, // 被委托人
userId: this.$store.getters.userInfo.userId, // 委托人
pId: this.$store.getters.getHandleInfo.prcId // 流程实例
}).then(res => {
if (res.success) {
this.$message.success('委托成功')
setTimeout(() => {
this.$router.push({
name: 'ProcessCenter'
})
}, 100)
this.visibleTree = false
} else {
this.$message.warning(res.message)
}
})
}).catch(() => {})
},
/**
* @description: 在线编辑
* @date: 2021-01-08 10:32:16
* @auth: chenxiaoxi
*/
handleOnLineEdit() {
if (!this.standNo || this.standNo === '') {
this.$message.warning(this.noStandNoTip)
} else {
this.visibleOnlyOffice = true
this.$nextTick(() => {
this.$refs['onlyOffice'].officeInit(this.standNo, this.standId)
})
}
},
beforeBack() {
this.handleBack()
}
},
computed: {
// 提交按钮文字
submitBTNTextShow() {
return this.submitBTNText ? this.submitBTNText : this.approval ? '同意' : '提交'
},
// 退回按钮文字
backBTNText() {
return this.approval ? '驳回' : '退回'
},
userId() {
return this.userInfo.userId
},
...mapGetters(['userInfo'])
},
watch: {},
mounted () {}
}
</script>
<style lang="less" scoped>
.process-footer {
line-height: 50px;
text-align: right;
background: #fff;
z-index: 999;
padding: 0;
.footer-line {
height: 1px;
box-shadow: 0 -1px 2px 0px #e8e8e8;
}
}
</style>
@@ -0,0 +1,89 @@
<!-- 流程信息公共头部 -->
<template>
<div class="prc-header-wrap">
<div class="process-header">
<div class="back" title="返回流程中心" @click="handleBack">
<i class="el-icon-back"></i>
</div>
<span class="process-title">
流程中心 <slot name="proName"></slot>
<a>(<slot name="proNode"></slot>)</a>
</span>
</div>
<el-divider></el-divider>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
name: 'ProcessHeader',
mixins: [],
props: {
toggle: {
type: Boolean,
default: false
}
},
components: {},
data () {
return {
activeName: '',
opacityStyle: {},
headerFixed: false
}
},
methods: {
handleBack() {
if (this.$store.state.detailMap !== '') {
this.$router.push({
path: this.$store.state.detailMap,
query: {
prcNum: this.$store.getters.getHandleInfo.prcNum,
tabsName: this.$store.getters.getHandleInfo.tabsName
}
})
this.$store.commit('setDetailMap', '')
} else {
this.$router.push({
name: 'ProcessCenter'
})
}
}
},
computed: {
...mapGetters(['isCollapse'])
},
watch: {},
mounted () {
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.el-divider {
margin: 10px 0 0;
}
.process-header {
position: relative;
padding-top: 10px;
}
.back {
margin-left: 10px;
}
.process-title {
font-size: 18px;
font-weight: bold;
display: inline-block;
height: 30px;
line-height: 30px;
a {
font-size: 14px;
margin-left: 5px;
cursor: default;
color: #888;
}
}
</style>
@@ -0,0 +1,32 @@
<!-- 流程信息公共标题 -->
<template>
<div class="contentTitle">
<div class="titleIcon"></div>
<div class="titleText"><slot name="title"></slot></div>
</div>
</template>
<script>
export default {
name: "ProcessTitle"
}
</script>
<style scoped lang="less">
.contentTitle {
height: 30px;
display: flex;
align-items: center;
color: #E6A23C;
.titleIcon{
background: #E6A23C;
width: 3px;
height: 14px;
}
.titleText{
margin-left: 10px;
font-size: 16px;
font-weight: bold;
}
}
</style>
@@ -1460,28 +1460,6 @@ export default {
this.reletionSelectNum = []
this.showModelRelation = false
},
// 删除
handleDelete (row) {
this.$confirm('此操作将永久删除这条数据, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
confirmButtonClass: 'common-button-primary',
roundButton: true,
type: 'warning'
}).then(() => {
this.$http.post('lawss/sarProductInfo/deleteLocalProducts',
{
ids: row.id
}, {
_this: this
}, res => {
if (res.ok) {
this.getLocalProductTable()
}
})
}).catch(() => {
})
},
// 分页点击后方法
pageChange (page) {
this.localProTableSearch.page = page
@@ -9,216 +9,214 @@
<div class="contaiiner">
<el-card class="contaiinerCard" style="margin: 5px">
<div style="padding: 20px">
<el-row style="margin-top: 10px">
<el-col :span="5">产品平台: <span class="valueColor">{{ localProEO.projectPlatfor}}</span></el-col>
<el-col :span="5" :push="1">项目编号: <span class="valueColor">{{ localProEO.projectNumber }}</span></el-col>
<el-col :span="5" :push="2">项目名称: <span class="valueColor">{{ localProEO.projectName }}</span></el-col>
<!-- <el-col :span="5" :push="2">车型系列:<span class="valueColor">{{ localProEO.productSet }}</span></el-col>-->
<el-col :span="4" :push="3">项目分类:<span class="valueColor">{{ localProEO.projectClassification }}</span></el-col>
</el-row>
<el-row style="margin-top: 10px">
<el-col :span="5">项目状态: <span class="valueColor">{{ localProEO.projectStatus }} </span></el-col>
<el-col :span="5" :push="1">项目群: <span class="valueColor">{{ localProEO.projectGroup }} </span></el-col>
<el-col :span="5" :push="2">当前节点: <span class="valueColor">{{ localProEO.currentNode }} </span></el-col>
<el-col :span="4" :push="3">项目级别: <span class="valueColor">{{ localProEO.projectLevel }} </span></el-col>
</el-row>
<el-row style="margin-top: 10px">
<el-col :span="5">项目经理: <span class="valueColor">{{ localProEO.projectManager }} </span></el-col>
<el-col :span="5" :push="1"> 项目计划开始时间: <span class="valueColor">{{ localProEO.projectStartDate}}</span></el-col>
<el-col :span="5" :push="2">项目计划完成时间: <span class="valueColor">{{localProEO.projectEndDate }} </span></el-col>
</el-row>
<el-row style="margin-top: 10px">
<el-col :span="5">产品平台: <span class="valueColor">{{ localProEO.projectPlatfor}}</span></el-col>
<el-col :span="5" :push="1">项目编号: <span class="valueColor">{{ localProEO.projectNumber }}</span></el-col>
<el-col :span="5" :push="2">项目名称: <span class="valueColor">{{ localProEO.projectName }}</span></el-col>
<!-- <el-col :span="5" :push="2">车型系列:<span class="valueColor">{{ localProEO.productSet }}</span></el-col>-->
<el-col :span="4" :push="3">项目分类:<span class="valueColor">{{ localProEO.projectClassification }}</span></el-col>
</el-row>
<el-row style="margin-top: 10px">
<el-col :span="5">项目状态: <span class="valueColor">{{ localProEO.projectStatus }} </span></el-col>
<el-col :span="5" :push="1">项目群: <span class="valueColor">{{ localProEO.projectGroup }} </span></el-col>
<el-col :span="5" :push="2">当前节点: <span class="valueColor">{{ localProEO.currentNode }} </span></el-col>
<el-col :span="4" :push="3">项目级别: <span class="valueColor">{{ localProEO.projectLevel }} </span></el-col>
</el-row>
<el-row style="margin-top: 10px">
<el-col :span="5">项目经理: <span class="valueColor">{{ localProEO.projectManager }} </span></el-col>
<el-col :span="5" :push="1"> 项目计划开始时间: <span class="valueColor">{{ localProEO.projectStartDate}}</span></el-col>
<el-col :span="5" :push="2">项目计划完成时间: <span class="valueColor">{{localProEO.projectEndDate }} </span></el-col>
</el-row>
</div>
</el-card>
<div class="action-bar">
<el-button class="common-button-default delete-button"
size="mini" @click="selectStandLawsForProduct"
v-btn-permission="'KJJ6U32LFL4PAK5C6P55'"
>调取</el-button>
<el-button class="common-button-default delete-button"
size="mini" @click="deleteStandLawsForProduct(1)"
icon="delete"
v-btn-permission="'KJJ6U32LFL4PAK5C6P55'"
>删除</el-button>
<el-button plain class="common-button-primary" size="mini" @click="addList">添加</el-button>
<el-button plain class="common-button-primary" size="mini" @click="deleteList">批量删除</el-button>
<el-button class="common-button-default export-button"
size="mini" @click="exportProducdata"
size="mini" @click="exportStandard"
title="不勾选时默认导出所有筛选项;勾选时仅导出勾选项"
icon="export"
>导出</el-button>
</div>
<!-- <el-tabs type="border-card">-->
<!-- <el-tab-pane :label="localProEO.productName" class="details-panel-tabs-item">-->
<div class="table-wrapper">
<el-table
:data="data"
style="width: 100%"
:height="Height"
border
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', fontFamily: 'MicrosoftYaHei-Bold', height: '48px'}"
@selection-change="standSelectChange"
ref="selection"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="standName"
label="中文名称"
fixed="left"
width="260px"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop="enName"
label="文名称"
width="260px"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop="sarState"
align="center"
width="100"
label="合规性分级">
<template slot-scope="scope">
<div @click="chooseColor(scope.row,'2')">
<div v-if="!scope.row.color">
<div v-if="scope.row.actState === ''||scope.row.actState === null">
<img class="iconClass" src="../../../../assets/images/ComplianceClassification/white.png" >
</div>
<div v-else-if="scope.row.sarState === 8 || scope.row.sarState === '' ||scope.row.sarState === null" >
<!-- <img class="iconClass" src="../../../../assets/images/ComplianceClassification/blue.png">-->
<!--暂不显示-->
</div>
<div v-else-if="scope.row.sarState === 2" >
<img class="iconClass" src="../../../../assets/images/ComplianceClassification/green.png">
</div>
<div v-else-if="scope.row.sarState === 5">
<img class="iconClass" src="../../../../assets/images/ComplianceClassification/grey.png">
</div>
<div v-else>
<img class="iconClass" @click="typeColor(scope.row, 2, 1)" src="../../../../assets/images/ComplianceClassification/yellow.png" >
</div>
</div>
<div v-else>
<div v-if="scope.row.color === 'green'" >
<img class="iconClass" src="../../../../assets/images/ComplianceClassification/green.png">
<!--暂不显示-->
</div>
<div v-if="scope.row.color === 'red'" >
<img class="iconClass" src="../../../../assets/images/ComplianceClassification/red.png">
<!--暂不显示-->
</div>
<div v-if="scope.row.color === 'blue'" >
<img class="iconClass" src="../../../../assets/images/ComplianceClassification/blue.png">
<!--暂不显示-->
</div>
<div v-if="scope.row.color === 'grey'" >
<img class="iconClass" src="../../../../assets/images/ComplianceClassification/grey.png">
<!--暂不显示-->
</div>
<div v-if="scope.row.color === 'yellow'" >
<img class="iconClass" src="../../../../assets/images/ComplianceClassification/yellow.png">
<!--暂不显示-->
</div>
</div>
</div>
</template>
</el-table-column>
<el-table-column
prop="authDelive"
width="120px"
label="认证交付物">
</el-table-column>
<el-table-column
prop="authObjId"
width="100px"
label="认证对象">
</el-table-column>
<el-table-column
prop="newPutTime"
width="190px"
sortable
label="新车型实施日期">
</el-table-column>
<el-table-column
prop="prodPutTime"
sortable
width="190px"
label="在产车实施日期">
</el-table-column>
<el-table-column
prop="eopPutTime"
sortable
width="190px"
label="EOP实施日期">
<template slot-scope="scope">
<span>{{ scope.row.eopPutTime !== null && scope.row.eopPutTime !== 'N/A' && scope.row.eopPutTime !== 'TBD'
&& scope.row.eopPutTime !== '已实施' ? $moment(scope.row.eopPutTime).format('YYYY-MM-DD') : scope.row.eopPutTime }}</span>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="synopsis"
width="200px"
label="文本说明">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="performInfo"
width="280px"
label="实施说明">
</el-table-column>
<el-table-column
prop="dutyDepart"
width="150px"
label="责任部门">
</el-table-column>
<el-table-column
prop="foUser"
width="150px"
label="FO">
</el-table-column>
<el-table-column
prop="proEssessUser"
width="120px"
label="项目评估角色">
</el-table-column>
<el-table-column
prop="askTypeName"
width="100px"
label="要求类型">
</el-table-column>
</el-table>
<pagination
style="position: relative;"
:page="page"
:total="total"
@pageChange="pageChangeLaws"
@pageSizeChange="pageSizeChangeLaws"></pagination>
</div>
<loading :loading="loading">数据获取中</loading>
<!-- </el-tab-pane>-->
<!-- </el-tabs>-->
<!-- <el-tabs type="border-card">-->
<!-- <el-tab-pane :label="localProEO.productName" class="details-panel-tabs-item">-->
<div class="table-wrapper">
<el-table
:data="dataList"
style="width: 100%"
:height="Height"
border
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', fontFamily: 'MicrosoftYaHei-Bold', height: '48px',textAlign: 'center'}"
@selection-change="standSelectChange"
ref="selection"
:cell-style="{ textAlign: 'center' }"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="standId"
label="项目编号"
fixed="left"
width="260px"
>
</el-table-column>
<el-table-column
prop="standName"
label="文名称"
width="180px"
>
</el-table-column>
<el-table-column
prop="standEnName"
label="英文名称"
width="180px"
>
</el-table-column>
<el-table-column
prop="SSRQ"
width="190px"
sortable
label="标准实施日期">
</el-table-column>
<el-table-column
prop="XCXSSRQGJ"
width="190px"
label="新车型实施日期">
</el-table-column>
<el-table-column
prop="ZCCSSRQGJ"
sortable
width="190px"
label="在产车实施日期">
</el-table-column>
<el-table-column
prop="ZRBM"
label="责任部门"
width="180px"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="KCCVPPSBM"
width="180px"
label="卡车VPPS编码">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="KCCVPPSCN"
width="180px"
label="卡车vpps中文名称">
</el-table-column>
<el-table-column
prop="CYCVPPSBM"
width="180px"
label="乘车VPPS编码">
</el-table-column>
<el-table-column
prop="CYCVPPSBM"
width="180px"
label="乘车vpps中文名称">
</el-table-column>
</el-table>
<pagination
style="position: relative;"
:page="page"
:total="total"
@pageChange="pageChangeLaws"
@pageSizeChange="pageSizeChangeLaws"></pagination>
</div>
<loading :loading="loading">数据获取中</loading>
<!-- </el-tab-pane>-->
<!-- </el-tabs>-->
</div>
<!-- 调取弹窗 -->
<el-drawer
title="调取"
:visible.sync="takeingFlag"
:wrapperClosable="false"
size="800px"
:before-close="resetTakeingForm"
title="调取"
:visible.sync="standModel"
size="900px"
custom-class="demo-drawer"
>
<div class="demo-drawer-content">
<div style="position: absolute;bottom: 48px;top:16px;left: 0;right: 0">
<div style="position: absolute;bottom: 55px;top: 0;right: 0;left: 0">
<el-table
:data="standardData"
tooltip-effect="dark"
style="width: 100%"
border
ref="table"
height="100%"
:header-cell-style="{background: '#f5f1f1', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@selection-change="selectThree"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="code"
label="标准号">
<template slot-scope="scope">
<a v-if="scope.row.standYear" class="table-jump"
@click="handlePreview(scope.row)">{{ scope.row.standSortShow }} {{ scope.row.standNumber
}}-{{ scope.row.standYear }}</a>
<a v-else @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standSortShow }}
{{ scope.row.standNumber }}</a>
</template>
</el-table-column>
<el-table-column
prop="standName"
label="标准名称"
>
</el-table-column>
<el-table-column
prop="issueTime"
label="发布日期">
</el-table-column>
<el-table-column
prop="xcxssrq"
label="新车型实施日期">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="zccssrq"
label="在产车实施日期">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="textStatus"
label="文本状态">
</el-table-column>
</el-table>
</div>
<pagination
:page="pageNo"
:pageSize="pageSizeNo"
:total="totalNo"
@pageChange="pageChangeNo"
@pageSizeChange="pageSizeChangeNo"
style="position: absolute;"
/>
</div>
</div>
<div class="demo-drawer-footer">
<el-button size="mini" @click="cancelStand">取消</el-button>
<el-button type="primary" size="mini" @click="okStand">添加</el-button>
</div>
</el-drawer>
<!--导出-->
<el-dialog :visible.sync="exportModelFlag" title="导出文件" width="700" :show-close="false">
<label-input v-model="exportName" placeholder="请输入导出文件名" clearable label="导出名称"/>
<div slot="footer">
<el-button class="common-button-primary" icon="el-icon-check" type="primary" @click="exportTestItem">导出</el-button>
<el-button class="common-button-primary" icon="el-icon-check" type="primary"
title="不勾选时默认导出所有筛选项;勾选时仅导出勾选项"
@click="exportTestItem">导出</el-button>
<el-button class="common-button-default" icon="el-icon-close" @click="cancal">取消</el-button>
</div>
</el-dialog>
@@ -227,7 +225,7 @@
<script>
import { mapGetters } from 'vuex'
import LawsTreeView from '@/components/ProjectRelatedPersonnel/view'
import { interfaceUrl } from "@/sysConfig";
export default {
name: 'Details',
components: {
@@ -235,6 +233,16 @@ export default {
},
data () {
return {
size: this.$store.getters.userInfo.configContent,
pageSizeNo: this.$store.getters.userInfo.configContent,
pageSize: this.$store.getters.userInfo.configContent,
pageNo: 1,
standardData: [], //添加标准数据
totalNo: 0,
standModel: false, // 选择标准抽屉状态
selectList: [], //选择标准的选择框
selectList1: [], //选择标准的选择框
dataList: [],//清单里的标准数据
page: 1,
total: 0,
loading: false,
@@ -244,16 +252,215 @@ export default {
localProLib:{},
takeingFlag: false,
exportModelFlag: false,
exportName: ''
exportName: '',
standList:[],//调取添加的数据
standList1:[],//调取添加的数据
id:'',//批量删除.
saveExportType: '',// 导出文件模态框控制,和文件名称
}
},
methods: {
pageChange(page) {
this.page = page;
this.selectionList();
},
pageSizeChange(pageSize) {
this.pageSize = this.$store.getters.userInfo.configContent;
this.selectionList();
},
pageChangeNo(page){
this.pageNo = page
this.addList()
},
pageSizeChangeNo(pageSize){
this.pageSizeNo = this.$store.getters.userInfo.configContent;
this.addList()
},
//添加标准select的改变
selectThree(data) {
this.standList = data;
},
//点击添加事件
addList() {
this.$http.get("sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage", {
page:this.pageNo,
pageSize:this.pageSizeNo
}, {
_this:this,
}, res => {
console.log('res')
console.log(res)
this.standardData = res.data.list;
this.totalNo = res.data.count
}, e => {
});
this.standModel = true;
},
// 点击批量删除事件
deleteList() {
if (this.selectList.length < 1) {
this.$message.warning("请选择一条数据进行删除");
} else {
this.$confirm("您确认删除这些数据?", "提示", {
confirmButtonText: "确认",
confirmButtonClass: "common-button-primary",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
let exits = [];
this.selectList.map(item => {
let index;
index = this.dataList.findIndex(items => {
return items.id = item;
});
if (index > -1) {
this.dataList.splice(index, 1);
}
exits.push(item);
});
// 批量删除表格数据
for (let i=0;i<this.selectList.length;i++){
this.selectList1.push(this.selectList[i].standId)
}
this.id=this.selectList1.join(',')
this.$http.post('sarStandProjectLibrary/deleteByIds', {
id:this.id
}, {
_this: this,
loading: 'loading'
}, res => {
this.getDataList()
this.selectList = [];
this.selectList1 = [];
}, e => {
})
}).catch(() => {
});
}
},
getDataList(){
// 查询详情表格数据
this.$http.get('sarStandProjectLibrary/queryStandInfo', {
id:this.localProEO.id,
current:this.page,
pageSize:this.pageSize
}, {
_this: this,
loading: 'loading'
}, res => {
this.dataList=res.data.records
this.total=res.data.total
}, e => {
})
},
//添加标准取消事件
cancelStand() {
this.standModel = false;
},
//添加标准确定事件
okStand() {
let _this = this;
if (this.standList.length < 1) {
_this.$message.warning("请选择需要添加进清单的数据");
} else {
for (let i=0;i<this.dataList.length;i++){
let newStand = false;
for (let j=0;j<this.standList.length;j++){
if (this.standList[j].id==this.dataList[i].standId){
newStand = true;
this.standList.splice(j,1)
j--
}
}
if (newStand) {
_this.$message.warning("请勿重复添加数据");
} else {
// _this.dataList.push(item);
}
}
this.standardData = []
_this.standModel = false;
for (var i=0;i<this.standList.length;i++){
this.standList1.push({
standId:this.standList[i].id,
projectId:this.localProEO.id
})
}
if(this.standList1!=''){
this.$http.postData("sarStandProjectLibrary/batchInsert", this.standList1, {
_this: this
}, res => {
if (res.ok) {
this.$message.success(res.message)
this.getDataList()
}else {
this.$message.warning(res.message)
}
}, e => {
});
}
this.standList = []
this.standList1 = []
_this.standModel = false;
}
},
//选择清单确定事件
OkDrawer() {
if (this.selectList.length === 1) {
let deposit = new Map();
this.sarAccessListDatas.forEach(item => {
deposit.set(item.id, item);
});
let bringData = [];
for (let i = 0; i < this.selectList.length; i++) {
bringData.push(deposit.get(this.selectList[i]));
}
this.listForm.standId = bringData[0].id;
this.listForm.listName = bringData[0].detailedListName;
this.listForm.applyRegion = bringData[0].applicationScope;
this.listForm.descriptionList = bringData[0].remark;
this.listForm.fileId = bringData[0].fileId;
this.ListModel = false;
this.$http.get("sarLawsAttrDetailedList/sar-laws-attr-detailed-list/selectLawsById", { id: bringData[0].id }, {
_this: this
}, res => {
if(res.data==null){
res.data=[]
}
this.dataList = res.data;
this.listForm.dataList = res.data;
let formId = []
this.dataList.map(item => {
formId.push(item.id)
});
this.listForm.inforlist = formId.join(',');
}, e => {
});
} else if (this.selectList.length > 1) {
this.$message.warning("只能选择一条数据进行带入");
} else {
this.$message.warning("请选择一条数据进行带入");
}
},
back () {
this.$router.push(this.$store.state.detailMap)
this.$store.commit('setDetailMap', '')
},
showLocalProductData (item) {
this.localProEO = JSON.parse(JSON.stringify(item))
// 查询详情表格数据
this.$http.get('sarStandProjectLibrary/queryStandInfo', {
id:this.localProEO.id
}, {
_this: this,
loading: 'loading'
}, res => {
this.dataList=res.data.records
console.log(res)
this.total=res.data.total
}, e => {
})
this.pointTimeList = JSON.parse(JSON.stringify(item)).pointTime.split(',')
this.reverseTimeList = this.pointTimeList.reverse()
this.reverseTimeList.map((item, index) => {
@@ -276,19 +483,59 @@ export default {
this.selectTableDataList()
},
resetTakeingForm() {},
exportTestItem() {},
cancal() {},
//导出
exportStandard () {
if(this.selectList.length > 0) {
this.saveExportType = 'apart'
} else {
this.saveExportType = 'all'
}
this.exportName = ''
this.exportModelFlag = true
console.log(this.saveExportType);
},
//取消导出
cancal () {
this.exportModelFlag = false
},
//确认导出
exportTestItem () {
if(this.saveExportType === 'apart') {
if (this.selectList != null && this.selectList != ''){
console.log(this.selectList);
let ids='\''+this.selectList[0].standId+'\''
for(let i=1;i<this.selectList.length;i++){
ids+=',\''+this.selectList[i].standId+'\''
}
const exportURL = interfaceUrl + 'sarStandProjectLibrary/exportStandAttrInfoExcel?' +
'exportType' + this.saveExportType + '&ids=' + ids + '&exportName=' + this.exportName
window.open(exportURL)
this.$message.success('导出信息成功')
}
} else if (this.saveExportType === 'all') {
console.log(this.selectList);
const exportURL = interfaceUrl + 'sarStandProjectLibrary/exportStandAttrInfoExcel?' +
'exportType' + this.saveExportType + '&ids=' + this.selectList.join(',') + '&exportName=' + this.exportName
window.open(exportURL)
this.$message.success('导出信息成功')
}
this.exportModelFlag = false
},
exportProducdata() {},
deleteStandLawsForProduct() {},
selectStandLawsForProduct() {},
pageChangeLaws() {
pageChangeLaws(page) {
this.page = page
this.getDataList()
},
pageSizeChangeLaws() {
pageSizeChangeLaws(pageSize) {
this.$store.getters.userInfo.configContent = pageSize
this.size = pageSize
this.getDataList()
},
standSelectChange() {},//选项值发生改变
standSelectChange(val) {
this.selectList = val;
},//选项值发生改变
},
computed: {
...mapGetters(['getLocalPro'])
@@ -312,10 +559,10 @@ export default {
}, e => {
})
}
}
}
</script>
<style lang="less" scoped>
.localProductDetails{
.typeIcon {
@@ -488,7 +735,6 @@ export default {
padding: 0;
}
</style>
<style lang="less">
.localProductDetails {
height: 100%;
@@ -498,8 +744,10 @@ export default {
}
.leftTable{
.el-table--enable-row-transition .el-table__body td {
cursor: pointer;
cursor: pointer;
}
}
</style>
.demo-drawer-content {
margin-top: 10px;
}
</style>