| | |
| | | <template> |
| | | <div class="main_app"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear"> |
| | | <template #btns> |
| | | <!-- <el-button @click="exportData">导出</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 prop="zlFirstPrice" label="租赁单价" min-width="100" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | <div style="display: flex; align-items: center;"> |
| | | <span>{{row.zlFirstPrice || row.wyFirstPrice}}</span> |
| | | <span>{{row.zlFirstCircleStr || row.wyFirstCircleStr}}</span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="租赁面积" min-width="100" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | {{row.totalArea}}㎡ |
| | | </template> |
| | | </el-table-column> |
| | | <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 |
| | | }, |
| | | exportData () { |
| | | |
| | | } |
| | | } |
| | | } |
| | | </script> |