<template>
|
<div class="popup-info-detail">
|
<p class="dialog-form-title">选择利息开票关联信息</p>
|
<CommForm
|
:inline="true"
|
:list="formList"
|
@updateValue="updateValue"
|
@buttonAction="buttonAction"
|
:formValues="formValues"
|
:buttons="formButtons"
|
:isShowAll="isShowAll"
|
:column="2"
|
formType="search"
|
></CommForm>
|
<CommTable
|
:pageInfo="pageInfo"
|
:total="total"
|
@handleCurrentChange="handleCurrentChange"
|
@handleSizeChange="handleSizeChange"
|
:list="list"
|
:header="tableHeader"
|
:isShowCheckbox="true"
|
@handleSelectionChange="handleSelectionChange"
|
></CommTable>
|
<div class="dialog-buttons">
|
<p class="dialog-buttons-item">
|
<el-button size="small" @click="doAction(0)" class="comm-button">取消</el-button>
|
<el-button size="small" @click="doAction(1)" class="comm-button" type="primary">确定</el-button>
|
</p>
|
</div>
|
<div class="bottom-tip">
|
<p>温馨提示:1.开票申请金额不允许超过100万</p>
|
</div>
|
</div>
|
</template>
|
<script>
|
// 选择开票关联信息
|
import { mapState } from 'vuex'
|
import CommTable from '@/components/CommTable'
|
import CommForm from '@/components/CommForm'
|
import optionRelativeDiscountInvoiceInfo from '@/controller/optionRelativeDiscountInvoiceInfo'
|
import optionRelativeInvoiceInfo from '@/controller/optionRelativeInvoiceInfo'
|
import queryProjectList from '@/controller/queryProjectList'
|
import queryCodeValueList from '@/controller/queryCodeValueList'
|
import qryProdList from "@/controller/qryProdList";
|
|
export default {
|
components: {
|
CommTable,
|
CommForm
|
},
|
props: {
|
isShow: {
|
type: Boolean,
|
default: false
|
}
|
},
|
data() {
|
return {
|
isShowAll: false,
|
formList: [],
|
tableHeader: [],
|
formButtons: [
|
{ text: '重置', type: 'default' },
|
{ text: '搜索' },
|
{ text: '展开', type: 'fold' }
|
],
|
pageInfo: {
|
currentPage: 1,
|
pageSize: 10
|
},
|
total: 0,
|
list: [],
|
checkedRecords: []
|
}
|
},
|
created() {
|
this.init()
|
},
|
methods: {
|
init() {
|
const { transCode } = this
|
const model = optionRelativeInvoiceInfo(transCode)
|
const tableHeader = model.getTableList()
|
this.tableHeader = tableHeader
|
this.formList = model.getFormList()
|
this.setSelectOptions()
|
this.model = model
|
this.getList()
|
},
|
|
// 设置表单下拉菜单
|
setSelectOptions() {
|
const { formList } = this
|
formList.forEach(({ name }) => {
|
// 项目名称
|
if (name === 'projectNameArray') {
|
this.queryProjectList(name)
|
}
|
|
// 贴息类型
|
if (name === 'discountTypeArray') {
|
this.queryCodeValueList(name, {
|
codeNo: 'DiscountWay'
|
})
|
}
|
// 开票状态
|
if (name === 'invoiceFlag') {
|
this.queryCodeValueList(name, {
|
codeNo: 'InvoiceFlag'
|
})
|
}
|
// 产品名称
|
if (name === "productNameArray") {
|
this.qryProdList(name);
|
}
|
})
|
},
|
|
// 产品名称下拉列表
|
async qryProdList(name) {
|
const tempModel = qryProdList();
|
const { list } = await tempModel.request({ productTypeNo: "" });
|
this.updateValue(name, { options: list });
|
},
|
|
// 项目名称
|
async queryProjectList(name) {
|
const tempModel = queryProjectList('projectname')
|
const { list } = await tempModel.request({ isAll: '01' })
|
this.updateValue(name, {
|
options: list
|
})
|
},
|
|
// 获取select中options数据
|
async queryCodeValueList(name, info = {}) {
|
const tempModel = queryCodeValueList()
|
const { list } = await tempModel.request(info)
|
this.updateValue(name, { options: list })
|
},
|
|
// 更新表单数据
|
updateValue(index, info) {
|
const { formList } = this
|
if (isNaN(index)) {
|
// index is name
|
index = formList.findIndex(({ name }) => name === index)
|
}
|
if (!isNaN(index) && index > -1) {
|
const preInfo = formList[index]
|
this.$set(formList, index, { ...preInfo, ...info })
|
}
|
},
|
|
// 获取列表
|
async getList() {
|
let { pageInfo, formValues, model, enterpriseInfo } = this
|
const { enterpriseName = '' } = enterpriseInfo
|
const { list = [], total } = await model.request({
|
enterpriseName,
|
...pageInfo,
|
...formValues
|
})
|
this.checkedRecords = []
|
this.list = list
|
this.total = parseInt(total)
|
},
|
|
resetList() {
|
this.pageInfo.currentPage = 1
|
this.getList()
|
},
|
|
handleSelectionChange(checkedRecords) {
|
this.checkedRecords = checkedRecords
|
},
|
|
// 表单按钮事件处理
|
buttonAction(id) {
|
if (id === 0) {
|
this.resetForm()
|
}
|
if (id === 1) {
|
this.resetList()
|
}
|
if (id === 2) {
|
const { isShowAll } = this
|
this.isShowAll = !isShowAll
|
}
|
},
|
|
doAction(id) {
|
const { checkedRecords } = this
|
this.$emit('doAction', id, checkedRecords)
|
},
|
|
resetForm() {
|
const { model } = this
|
this.formList = model.getFormList()
|
this.setSelectOptions()
|
},
|
|
// 修改翻页条数
|
handleSizeChange(val) {
|
this.pageInfo.pageSize = val
|
this.getList()
|
},
|
|
// 修改翻页数
|
handleCurrentChange(val) {
|
this.pageInfo.currentPage = val
|
this.getList()
|
}
|
},
|
computed: {
|
// 表单值信息
|
formValues() {
|
const { model, formList } = this
|
return model.getFormValues(formList)
|
},
|
...mapState({
|
enterpriseInfo: state => state.tabsModule.enterpriseInfo
|
})
|
},
|
watch: {
|
isShow() {
|
if (this.isShow) {
|
this.resetList()
|
}
|
}
|
}
|
}
|
</script>
|
<style lang="postcss" scoped>
|
.popup-info-detail {
|
& .dialog-buttons {
|
display: flex;
|
justify-content: center;
|
& .dialog-buttons-item {
|
padding: 0;
|
margin: 0 40px 0 0;
|
}
|
& .dialog-buttons-item:last-child {
|
margin: 0;
|
}
|
}
|
& .bottom-tip {
|
color: red;
|
& p {
|
margin: 0;
|
padding: 0;
|
}
|
}
|
}
|
</style>
|