352 lines
10 KiB
Vue
352 lines
10 KiB
Vue
<template>
|
|
<!-- <div>-->
|
|
<el-col :span="span">
|
|
<el-form-item
|
|
:label="config.attrName"
|
|
:prop="config.attrField"
|
|
:label-width="labelWidth"
|
|
class="add-form-item"
|
|
: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"
|
|
size="mini"
|
|
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="getReplaceLawsNumRow">
|
|
<el-form-item label="编号/名称" class="search-item">
|
|
<el-input v-model="replaceLawsNumForm.standNumber" placeholder="根据编号/名称查找" clearable :maxlength="100"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="标准来源" class="search-item" v-if="dataSource">
|
|
<el-select
|
|
v-model="replaceLawsNumForm.standType"
|
|
placeholder="请选择标准来源">
|
|
<el-option value="ALL" label="全部"></el-option>
|
|
<el-option value="INLAND" label="国内标准库"></el-option>
|
|
<el-option value="FOREIGN" label="国外标准库"></el-option>
|
|
</el-select>
|
|
</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="getReplaceLawsNumRow(true)">
|
|
</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
|
|
label="标准编号"
|
|
width="130">
|
|
<template slot-scope="scope">
|
|
<a v-if="scope.row.standYear" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standSort }} {{ scope.row.standNumber }}-{{ scope.row.standYear }}</a>
|
|
<a v-else class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standSort }} {{ scope.row.standNumber }}</a>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="standName"
|
|
label="标准名称"
|
|
width="130">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="issueTime"
|
|
label="发布日期"
|
|
width="130">
|
|
<template slot-scope="scope">{{ scope.row.issueTime || '' }}</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="putTime"
|
|
label="实施日期"
|
|
width="130">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="standNatureShow"
|
|
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" round 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'
|
|
},
|
|
// 数据来源
|
|
dataSourceFrom: {
|
|
type: String
|
|
},
|
|
// 是否可区分数据来源
|
|
dataSource: {
|
|
type: Boolean,
|
|
default: false
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
replaceLawsNumModel: false,
|
|
sarBussionessLawsEO: {
|
|
replaceLawsNum: ''
|
|
},
|
|
// 代替标准号
|
|
replaceLawsNumForm: {
|
|
standNumber: '', // 政策编号
|
|
page: 1,
|
|
pageSize: this.$store.getters.userInfo.configContent,
|
|
total: 0,
|
|
standType: 'ALL',
|
|
quoteIdList: '',
|
|
validFlag: '0',
|
|
menuId: 'nomenu'
|
|
},
|
|
replaceLawsNumRow: [], // 代替政策号 数组内容
|
|
replaceTotal: 0,
|
|
selectedListRep: [],
|
|
replaceLoading: true,
|
|
replacePage: 1,
|
|
|
|
}
|
|
},
|
|
computed: {
|
|
placeholder () {
|
|
return `请输入${this.config.attrName}`
|
|
},
|
|
showMessage () {
|
|
return `${this.config.attrName}不能为空`
|
|
},
|
|
isRequired () {
|
|
return !!this.config.isMust
|
|
}
|
|
},
|
|
methods: {
|
|
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 (val) {
|
|
if (val) {
|
|
this.replaceLawsNumForm.page = '1'
|
|
}
|
|
if (this.sarBussionessLawsEO.replaceLawsNum !== null && this.sarBussionessLawsEO.replaceLawsNum !== '') {
|
|
this.replaceLawsNumForm.quoteIdList = this.quoteIdList1.toString() === '' ? '' : this.quoteIdList1
|
|
} else {
|
|
this.quoteIdList1 = []
|
|
this.replaceLawsNumForm.quoteIdList = ''
|
|
}
|
|
this.$http.get('sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage', this.replaceLawsNumForm, {
|
|
_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 (item.standYear != null && item.standYear !== '') {
|
|
texts = item.standSort !== null ? item.standSort + ' ' + item.standNumber + '-' + item.standYear : item.standNumber + '-' + item.standYear
|
|
} else {
|
|
texts = item.standSort !== null ? item.standSort + ' ' + item.standNumber : 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 routeUrl = this.$router.resolve({
|
|
name: 'OtherBussStandardDetails',
|
|
params: {
|
|
id: item.id,
|
|
pageType: 'BUSINESS_STAND'
|
|
}
|
|
})
|
|
window.open(routeUrl.href, '_blank')
|
|
},
|
|
getResetLawsNumRow() {
|
|
this.replacePage = 1
|
|
this.replaceLawsNumForm = {
|
|
standNumber: '', // 政策编号
|
|
page: 1,
|
|
pageSize: this.$store.getters.userInfo.configContent,
|
|
total: 0,
|
|
standType: 'FOREIGN',
|
|
quoteIdList: '',
|
|
validFlag: '0'
|
|
}
|
|
this.getReplaceLawsNumRow()
|
|
}
|
|
},
|
|
watch: {
|
|
dataSourceFrom: {
|
|
handler (val) {
|
|
this.replaceLawsNumForm.standType = val
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
|
|
</style>
|