收入合同

This commit is contained in:
zhaoxiao
2021-09-02 18:43:48 +08:00
parent 8f264eff03
commit 2532e76532
3 changed files with 341 additions and 0 deletions
@@ -0,0 +1,242 @@
<template>
<div>
<page-header-title :img-for-icon="IconImg"></page-header-title>
<a-card :bordered="false">
<!-- 查询区域-start -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="合同编号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入合同编号" v-model="queryParam.workingGroupProject"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="合同名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入合同名称" v-model="queryParam.workingGroupProject"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="关联项目" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入关联项目" v-model="queryParam.workingGroupProject"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="创建时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-range-picker
format="YYYY-MM-DD HH:mm:00"
:show-time="{ format: 'HH:mm' }"
:trigger-change="true"
style="width: 100%"/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="合同状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag v-model="queryParam.chargeUse" placeholder="请选择合同状态" dictCode="sex"/>
</a-form-item>
</a-col>
<a-col :xl="7" :lg="8" :md="9" :sm="24">
<a-form-item label="来款状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-checkbox-group v-model="queryParam.chargeUse" :options="incomePaymentsStatus"/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button>
<a-button icon="reload" @click="searchReset">重置</a-button>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!-- /查询区域-end-->
<!-- 操作按钮区域-->
<div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd">新增</a-button>
<a-button type="primary" icon="export" @click="handleExportXls('收入合同')">导出</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button>
</div>
<!-- 操作按钮区域-end-->
<!-- table表格区域-->
<div>
<a-table
ref="table"
size="middle"
bordered
rowKey="id"
:columns="columns"
:scroll="{x: 1500}"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
:rowClassName="aduitClass"
@change="handleTableChange"
class="j-table-force-nowrap">
<!-- 项目名称 待审核状态为红色-->
<template slot="projectName" slot-scope="text, record">
<div class="primary-color" @click="toRevenueContractDetail(record.id)" v-if="record.status !== 1">{{ text }}</div>
<div @click="toRevenueContractDetail(record.id)" v-else>{{ text }}</div>
</template>
<template slot="text" slot-scope="text,record">
<j-ellipsis :value="text" :length="20"></j-ellipsis>
</template>
<span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="handleEdit(record)">编辑</a>
<a @click="handleDelete(record.id)">删除</a>
</span>
</a-table>
</div>
</a-card>
</div>
</template>
<script>
import IconImg from '@assets/imgs/icon/icon_revenue_contract.png'
import PageHeaderTitle from '../../../components/layouts/PageHeaderTitle'
import { JeroListMixin } from '../../../mixins/JeroListMixin'
export default {
name: 'RevenueContractList',
components: { PageHeaderTitle },
mixins: [JeroListMixin],
data() {
return {
IconImg,
labelCol: {
xs: { span: 24 },
sm: { span: 5 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 10 }
},
// 来款状态checkbox选项
incomePaymentsStatus: [
{
label: '全部',
value: 1
}, {
label: '到期未付款',
value: 2
}
],
url: {
list: '',
delete: '',
deleteBatch: ''
},
columns: [
{
title: '序号',
dataIndex: '',
key: 'rowIndex',
width: 60,
align: 'center',
customRender: function (t, r, index) {
return parseInt(index) + 1
}
}, {
title: '合同编号',
align: 'center',
dataIndex: 'contractNum',
width: 250,
scopedSlots: { customRender: 'projectName' }
}, {
title: '合同名称',
align: 'center',
dataIndex: 'contractName',
width: 250
}, {
title: '关联项目',
align: 'center',
dataIndex: '',
width: 250
}, {
title: '签订单位',
align: 'center',
dataIndex: 'signedCompany',
width: 250
}, {
title: '签订联系人',
align: 'center',
dataIndex: 'signedContactsName',
width: 250
}, {
title: '合同总金额',
align: 'center',
dataIndex: 'contractAmount',
width: 250
}, {
title: '状态',
align: 'center',
dataIndex: 'status',
width: 250
}, {
title: '创建时间',
align: 'center',
dataIndex: 'createTime',
width: 250
}, {
title: '操作',
dataIndex: 'action',
align: 'center',
fixed: 'right',
width: 180,
scopedSlots: { customRender: 'action' }
}
],
dataSource: [
{
id: 1,
status: 1,
createTime: '2020-09-02 11:11:11'
}
]
}
},
methods: {
toRevenueContractDetail(id) {
this.$router.push({
path: '/contractManagement/RevenueContractDetail',
query: {
revenueId: id
}
})
},
handleAdd() {
this.$router.push({
path: '/contractManagement/AddRevenueContract'
})
},
/**
* 动态设置待审核状态的表格样式
* @param record
* @returns {string}
*/
aduitClass(record) {
console.log(record)
if (record.status === 1) {
console.log(1)
return 'aduit'
}
return ''
}
}
}
</script>
<style scoped lang="less">
@import '~@assets/less/common.less';
/deep/ .aduit {
color: red!important;
cursor: pointer;
}
</style>
@@ -0,0 +1,16 @@
<template>
</template>
<script>
export default {
name: 'RevenueContractDetail',
created() {
console.log(this.$route.query)
}
}
</script>
<style scoped>
</style>
@@ -0,0 +1,83 @@
<template>
<div>
<page-header-title :is-level-one="false" :img-for-icon="IconImg" level-two-title="新建收入合同"></page-header-title>
<a-card :bordered="false">
<a-form :form="form">
<div class="part-title">
<div class="part-title-text">主体信息</div>
</div>
<div>
<a-row>
<a-col :xl="6" :sm="12">
<a-form-item label="合同编号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入合同编号"
v-decorator="['contractNum',validatorRules.contractNum]"
:maxLength='50'
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :sm="12">
<a-form-item label="合同名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入合同名称"
v-decorator="['contractName',validatorRules.contractName]"
:maxLength='50'
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :sm="12">
<a-form-item label="签订单位" :labelCol="labelCol" :wrapperCol="wrapperCol">
<company-select placeholder="请选择签订单位"
v-decorator="['signedCompany',validatorRules.signedCompany]"></company-select>
</a-form-item>
</a-col>
<a-col :xl="6" :sm="12">
<a-form-item label="签订联系人" :labelCol="labelCol" :wrapperCol="wrapperCol">
<select-contacts placeholder="请选择签订联系人"
v-decorator="['signedContactsId',validatorRules.signedContactsId]"></select-contacts>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :xl="6" :sm="12"></a-col>
</a-row>
</div>
</a-form>
</a-card>
</div>
</template>
<script>
import IconImg from '@/assets/imgs/icon/icon_revenue_contract.png'
import PageHeaderTitle from '../../../../components/layouts/PageHeaderTitle'
import CompanySelect from '../../../../components/company/CompanySelect'
import SelectContacts from '../../../../components/company/SelectContacts'
export default {
name: 'RevenueContractModule',
components: { PageHeaderTitle, CompanySelect, SelectContacts },
data() {
return {
IconImg,
form: this.$form.createForm(this),
labelCol: {
xs: { span: 24 },
sm: { span: 8 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 }
},
validatorRules: {
}
}
},
created() {
console.log(this.$route)
}
}
</script>
<style scoped lang="less">
@import '~@assets/less/common.less';
</style>