399 lines
12 KiB
Vue
399 lines
12 KiB
Vue
<template>
|
|
<!-- <div>-->
|
|
<el-col :span="span">
|
|
<el-form-item
|
|
:label="config.attrName"
|
|
:prop="config.attrField"
|
|
:label-width="labelWidth"
|
|
class="add-form-item leftButton"
|
|
:class="{'form-item-disabled': disabled}"
|
|
>
|
|
<el-input
|
|
:value="value"
|
|
:placeholder="placeholder"
|
|
:disabled="disabled"
|
|
clearable
|
|
@input="handleChange"
|
|
></el-input>
|
|
<el-button
|
|
type="primary"
|
|
class="common-button-primary"
|
|
round
|
|
style="position:absolute;top: 10px;right: 0;"
|
|
@click="selectLaws"
|
|
v-if="(processModel && !disabled) || !processModel"
|
|
>手动查找</el-button>
|
|
</el-form-item>
|
|
<el-dialog
|
|
:title="config.attrName"
|
|
:visible.sync="replaceLawsNumModel"
|
|
width="875px"
|
|
:close-on-click-modal="false"
|
|
@close="replaceLawsNumModelCancel"
|
|
:append-to-body="true"
|
|
>
|
|
<div class="search-area">
|
|
<div class="left">
|
|
<el-form :modal="replaceLawsNumForm" :inline="true" class="label-input-form" @keyup.enter.native="getReplaceLawsNumRowSearch">
|
|
<el-form-item label="数据来源" class="search-item">
|
|
<el-select v-model="replaceLawsNumForm.dataSource" filterable>
|
|
<el-option
|
|
v-for="item in dataSourceOptions"
|
|
:key="item.value"
|
|
:value="item.value"
|
|
:label="item.label"
|
|
>
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item label="企标编号/标准名称" class="search-item input-width">
|
|
<el-input
|
|
v-model="replaceLawsNumForm.numberName"
|
|
placeholder="根据企标编号/标准名称查找"
|
|
clearable
|
|
:maxlength="100"></el-input>
|
|
</el-form-item>
|
|
<el-form-item class="search-item btn-box">
|
|
<el-button
|
|
icon="el-icon-search"
|
|
type="primary"
|
|
class="common-button-primary"
|
|
round
|
|
@click="getReplaceLawsNumRowSearch">
|
|
</el-button>
|
|
</el-form-item>
|
|
<el-form-item class="search-item btn-box">
|
|
<el-button
|
|
class="common-button-default"
|
|
icon="el-icon-refresh-left"
|
|
round
|
|
type="default"
|
|
@click="getResetLawsNumRow"></el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
</div>
|
|
</div>
|
|
<el-table
|
|
ref="selections"
|
|
:data="replaceLawsNumRow"
|
|
tooltip-effect="dark"
|
|
style="width: 100%;overflow-y: auto;overflow-x: hidden;"
|
|
border
|
|
:height="300"
|
|
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
|
|
fontWeight: 'bold', height: '48px'}"
|
|
@selection-change="selectReplaceStandNumRowChange">
|
|
<el-table-column
|
|
type="selection"
|
|
width="55"
|
|
align="center">
|
|
</el-table-column>
|
|
<!-- <el-table-column-->
|
|
<!-- prop="standSortShow"-->
|
|
<!-- label="企标类别"-->
|
|
<!-- min-width="130"-->
|
|
<!-- >-->
|
|
<!-- </el-table-column>-->
|
|
<el-table-column
|
|
label="企标编号"
|
|
min-width="130">
|
|
<template slot-scope="scope">
|
|
<span v-if="dataSource === 'BUSINESS'">
|
|
<a v-if="scope.row.standYear" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standCode }}-{{ scope.row.standYear }}</a>
|
|
<a v-else class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standCode }}</a>
|
|
</span>
|
|
<span v-else>
|
|
<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>
|
|
</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="standName"
|
|
label="标准名称"
|
|
min-width="130">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="issueTime"
|
|
label="发布日期"
|
|
width="130">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="putTime"
|
|
label="实施日期"
|
|
width="130">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="standStateShow"
|
|
label="标准状态"
|
|
width="130">
|
|
</el-table-column>
|
|
</el-table>
|
|
<loading :loading="replaceLoading">{{$t('m.dataAcquisition')}}</loading>
|
|
<!--分页-->
|
|
<pagination
|
|
style="position: relative;"
|
|
:page="replacePage"
|
|
:total="replaceTotal"
|
|
@pageChange="pageChangeReplace"
|
|
@pageSizeChange="pageSizeChangeReplace"></pagination>
|
|
<div slot="footer" class="demo-drawer-footer">
|
|
<el-button class="common-button-default" icon="el-icon-close" @click="replaceLawsNumModel = false">取消</el-button>
|
|
<el-button type="primary" round class="common-button-primary" icon="el-icon-check" @click="replaceLawsNumModelBt">提交</el-button>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
</el-col>
|
|
<!-- </div>-->
|
|
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
name: 'CustomInput',
|
|
props: {
|
|
config: {
|
|
type: Object,
|
|
required: true
|
|
},
|
|
value: {
|
|
required: true
|
|
},
|
|
disabled: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
// 栅格比例
|
|
span: {
|
|
type: Number,
|
|
default: 24
|
|
},
|
|
// 是否为流程中使用
|
|
processModel: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
// label宽度
|
|
labelWidth: {
|
|
type: String,
|
|
default: '150px'
|
|
}
|
|
},
|
|
data () {
|
|
return {
|
|
replaceLawsNumModel: false,
|
|
sarBussionessLawsEO: {
|
|
replaceLawsNum: ''
|
|
},
|
|
// 代替标准号
|
|
replaceLawsNumForm: {
|
|
dataSource: 'BUSINESS', // 数据来源
|
|
numberName: '', // 政策编号
|
|
page: 1,
|
|
pageSize: this.$store.getters.userInfo.configContent,
|
|
total: 0,
|
|
quoteIdList: '',
|
|
menuId: '',
|
|
validFlag: 0
|
|
},
|
|
replaceLawsNumRow: [], // 代替政策号 数组内容
|
|
replaceTotal: 0,
|
|
selectedListRep: [],
|
|
replaceLoading: true,
|
|
replacePage: 1,
|
|
// 数据搜索 数据来源list
|
|
dataSourceOptions: [
|
|
{value: 'INLAND_STAND', label: '国内标准法规'},
|
|
{value: 'FOREIGN_STAND', label: '海外标准法规'},
|
|
{value: 'BUSINESS', label: '企业标准 '}
|
|
],
|
|
dataSource: 'BUSINESS'
|
|
}
|
|
},
|
|
computed: {
|
|
placeholder () {
|
|
return `请输入${this.config.attrName}`
|
|
},
|
|
showMessage () {
|
|
return `${this.config.attrName}不能为空`
|
|
},
|
|
isRequired () {
|
|
return !!this.config.isMust
|
|
}
|
|
},
|
|
methods: {
|
|
getReplaceLawsNumRowSearch () {
|
|
this.replaceLawsNumForm.page = 1
|
|
this.replacePage = 1
|
|
this.getReplaceLawsNumRow()
|
|
},
|
|
handleChange (event) {
|
|
// const value = event.target.value
|
|
const value = event
|
|
this.$emit('input', value)
|
|
},
|
|
selectLaws () {
|
|
// if (this.standNumFlag === 1) {
|
|
// this.$refs.selections.selectAll(false)
|
|
// }
|
|
// this.sarBussionessLawsEO.replaceLawsNum = ''
|
|
this.replaceLawsNumModel = true
|
|
this.getReplaceLawsNumRow()
|
|
},
|
|
// 代替政策号 请求数据
|
|
getReplaceLawsNumRow () {
|
|
if (this.sarBussionessLawsEO.replaceLawsNum !== null && this.sarBussionessLawsEO.replaceLawsNum !== '') {
|
|
this.replaceLawsNumForm.quoteIdList = this.quoteIdList1.toString() === '' ? '' : this.quoteIdList1
|
|
} else {
|
|
this.quoteIdList1 = []
|
|
this.replaceLawsNumForm.quoteIdList = ''
|
|
}
|
|
const formData = {
|
|
...this.replaceLawsNumForm
|
|
}
|
|
this.dataSource = this.replaceLawsNumForm.dataSource
|
|
// 根据数据来源,查询不同的标准库
|
|
formData.standType = this.replaceLawsNumForm.dataSource === 'INLAND_STAND' ? 'INLAND'
|
|
: this.replaceLawsNumForm.dataSource === 'FOREIGN_STAND' ? 'FOREIGN' : ''
|
|
formData.standNumber = formData.numberName
|
|
let url = this.replaceLawsNumForm.dataSource === 'BUSINESS' ? 'lawss/sarBussionessStand/getSarBussionStandPage' : 'lawss/sarStandardsInfo/getSarStandardsInfoPage'
|
|
this.$http.get(url, formData, {
|
|
_this: this,
|
|
loading: 'replaceLoading'
|
|
}, res => {
|
|
this.replaceLawsNumRow = res.data.list
|
|
this.replaceTotal = res.data.count
|
|
if (this.selectedListRep.length !== 0) {
|
|
this.selectedListRep.map((list) => {
|
|
this.replaceLawsNumRow.map((item) => {
|
|
if (list.id === item.id) {
|
|
item._checked = true
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}, e => {
|
|
})
|
|
},
|
|
// 代替政策编号-取消
|
|
replaceLawsNumModelCancel () {
|
|
// this.replaceLawsNumModel = false
|
|
this.$refs.selections.clearSelection()
|
|
},
|
|
// 代替政策号 table选择事件
|
|
selectReplaceStandNumRowChange (row) {
|
|
this.selectedListRep = row
|
|
},
|
|
// 代替政策分页
|
|
pageChangeReplace (page) {
|
|
this.replacePage = page
|
|
this.replaceLawsNumForm.page = page
|
|
this.getReplaceLawsNumRow()
|
|
},
|
|
pageSizeChangeReplace (pageSize) {
|
|
// this.replaceRows = pageSize
|
|
this.replaceLawsNumForm.pageSize = pageSize
|
|
this.getReplaceLawsNumRow()
|
|
},
|
|
// 代替政策编号确定
|
|
replaceLawsNumModelBt () {
|
|
let textArr = []
|
|
|
|
if (typeof this.value === 'string') {
|
|
if (this.value) {
|
|
textArr = this.value.split(',')
|
|
}
|
|
}
|
|
if (this.selectedListRep.length === 0) {
|
|
return this.$message({
|
|
message: '请先选择数据',
|
|
type: 'warning'
|
|
})
|
|
}
|
|
if (this.selectedListRep.length + textArr.length > 20) {
|
|
return this.$message({
|
|
message: '代替标准号最多选择20项',
|
|
type: 'warning'
|
|
})
|
|
}
|
|
this.selectedListRep.map((item) => {
|
|
let texts = ''
|
|
// 判断数据是国内外法规标准还是企业标准
|
|
if (this.dataSource === 'BUSINESS') {
|
|
if (item.standYear != null && item.standYear !== '') {
|
|
texts = item.standCode + '-' + item.standYear
|
|
} else {
|
|
texts = item.standCode
|
|
}
|
|
} else {
|
|
if (item.standYear != null && item.standYear !== '') {
|
|
texts = item.standSortShow + ' ' + item.standNumber + '-' + item.standYear
|
|
} else {
|
|
texts = item.standSortShow + ' ' + item.standNumber
|
|
}
|
|
}
|
|
textArr.push(texts)
|
|
textArr = [...new Set(textArr)]
|
|
this.replaceLawsNumModel = false
|
|
})
|
|
// this.SarLawsInfoEO.replaceLawsNum = textArr.join(',')
|
|
this.$emit('input', textArr.join(','))
|
|
this.$refs.selections.clearSelection()
|
|
},
|
|
// 点击查看
|
|
handlePreview (item) {
|
|
let name = ''
|
|
let pageType = ''
|
|
switch (this.dataSource) {
|
|
case 'INLAND_STAND':
|
|
name = 'OtherStandardDetails'
|
|
pageType = 'INLAND_STAND'
|
|
break
|
|
case 'FOREIGN_STAND':
|
|
name = 'OtherStandardDetails'
|
|
pageType = 'FOREIGN_STAND'
|
|
break
|
|
case 'BUSINESS':
|
|
name = 'OtherBussStandardDetails'
|
|
pageType = 'BUSINESS_STAND'
|
|
break
|
|
}
|
|
let routeUrl = this.$router.resolve({
|
|
name: name,
|
|
params: {
|
|
id: item.id,
|
|
pageType: pageType
|
|
}
|
|
})
|
|
window.open(routeUrl.href, '_blank')
|
|
|
|
},
|
|
getResetLawsNumRow () {
|
|
this.replaceLawsNumForm = {
|
|
dataSource: 'BUSINESS',
|
|
numberName: '', // 政策编号
|
|
page: 1,
|
|
pageSize: this.$store.getters.userInfo.configContent,
|
|
total: 0,
|
|
lawsType: 'FOREIGN',
|
|
quoteIdList: '',
|
|
validFlag: '0'
|
|
}
|
|
this.getReplaceLawsNumRow()
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="less">
|
|
/deep/.el-dialog__body {
|
|
padding: 0 20px 0;
|
|
}
|
|
/deep/.el-dialog__footer {
|
|
padding: 0 20px 20px;
|
|
}
|
|
/deep/.input-width input.el-input__inner {
|
|
width: 220px;
|
|
}
|
|
</style>
|