<template>
|
<div class="main_app">
|
<QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear">
|
<template #btns>
|
<el-button>导出</el-button>
|
</template>
|
</QueryForm>
|
<div class="mt10">
|
<el-button @click="$refs.ContractEditRef.open('创建合同')" icon="el-icon-plus" type="primary">新建</el-button>
|
</div>
|
<el-table v-loading="loading" :data="list" stripe>
|
<el-table-column prop="renterName" label="客户名称" min-width="100" show-overflow-tooltip />
|
<el-table-column prop="startDate" label="开始日期" min-width="100" show-overflow-tooltip />
|
<el-table-column prop="endDate" label="结束日期" min-width="100" show-overflow-tooltip />
|
<!-- <el-table-column label="租赁单价" min-width="100" show-overflow-tooltip></el-table-column>-->
|
<el-table-column prop="totalArea" label="租赁面积" min-width="100" show-overflow-tooltip />
|
<el-table-column prop="signDate" label="签订日" min-width="100" show-overflow-tooltip />
|
<el-table-column prop="code" label="合同编号" min-width="100" show-overflow-tooltip />
|
<el-table-column label="合同状态" min-width="90" fixed="right" show-overflow-tooltip>
|
<template slot-scope="{row}">
|
<span class="primaryColor" v-if="row.status === 0">待执行</span>
|
<span class="green" v-if="row.status === 1">正常执行中</span>
|
<span class="gary" v-if="row.status === 2">已到期</span>
|
<span class="gary" v-if="row.status === 3">退租结算中</span>
|
<span class="gary" v-if="row.status === 4">已退租</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" min-width="90" fixed="right" show-overflow-tooltip>
|
<template v-slot="scope">
|
<span class="primaryColor cu" @click="handleDetail(scope.row.id)">查看详情</span>
|
</template>
|
</el-table-column>
|
</el-table>
|
<div class="mt20">
|
<Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
|
</div>
|
<ContractDetail ref="ContractDetailRef" />
|
<ContractEdit ref="ContractEditRef" @success="getList(1)" />
|
</div>
|
</template>
|
|
<script>
|
import Pagination from '@/components/common/Pagination'
|
import QueryForm from '@/components/common/QueryForm'
|
import ContractDetail from './components/contractDetail'
|
import ContractEdit from './components/contractEdit.vue'
|
import { fetchList } from '@/api/contract'
|
import dayjs from 'dayjs'
|
import duration from 'dayjs/plugin/duration'
|
dayjs.extend(duration)
|
|
export default {
|
components: {
|
Pagination,
|
QueryForm,
|
ContractEdit,
|
ContractDetail
|
},
|
data () {
|
return {
|
loading: false,
|
pagination: {
|
pageSize: 10,
|
page: 1,
|
total: 0
|
},
|
filters: {},
|
list: [],
|
total: 0,
|
queryFormConfig: {
|
formItems: [
|
{
|
filed: 'renterName',
|
type: 'input',
|
label: '客户名称'
|
},
|
{
|
filed: 'code',
|
type: 'input',
|
label: '合同编号'
|
},
|
{
|
filed: 'status',
|
type: 'select',
|
label: '合同状态',
|
options: [
|
{ value: 0, label: '待执行' },
|
{ value: 1, label: '正常执行中' },
|
{ value: 2, label: '已到期' },
|
{ value: 3, label: '退租结算中' },
|
{ value: 4, label: '已退租' },
|
]
|
},
|
{
|
filed: 'selDate',
|
type: 'datetimerange',
|
label: '合同日期',
|
placeholder: '合同日期'
|
}
|
],
|
online: true
|
}
|
}
|
},
|
created () {
|
this.getList()
|
},
|
methods: {
|
handleDetail (id) {
|
this.$refs.ContractDetailRef.open('合同详情', id)
|
},
|
getList (page) {
|
const { pagination, filters } = this
|
this.loading = true
|
fetchList({
|
model: {
|
...filters
|
},
|
sorts: [{ direction: 'DESC', property: 'param1' }],
|
capacity: pagination.pageSize,
|
page: page || pagination.page
|
}).then(res => {
|
this.loading = false
|
this.list = res.records || []
|
this.pagination.total = res.total || 0
|
}, () => {
|
this.loading = false
|
})
|
},
|
clear () {
|
this.filters = {}
|
this.pagination.pageSize = 10
|
this.pagination.page = 1
|
this.getList()
|
},
|
handleSizeChange (capacity) {
|
this.pagination.pageSize = capacity
|
}
|
}
|
}
|
</script>
|
|
<style>
|
</>
|