|
@@ -1,230 +1,242 @@
|
|
-<template>
|
|
|
|
- <div class="hui-content-filter">
|
|
|
|
- <div class="filter-box" v-if="type === 'customer'">
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <el-input prefix-icon="el-icon-search" v-model="customer.name" placeholder="请输入客户名称"></el-input>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <el-select v-model="customer.type" placeholder="请选择客户类型">
|
|
|
|
- <el-option :label="item.name" :value="item.id" v-for="(item,index) in $field.field.customerType"
|
|
|
|
- :key="item.id">
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <el-select v-model="customer.followUpState" placeholder="请选择跟进状态">
|
|
|
|
- <el-option :label="item.name" :value="item.id" v-for="(item,index) in $field.field.followUpState"
|
|
|
|
- :key="item.id">
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-box" v-if="type === 'highseas'">
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <el-input prefix-icon="el-icon-search" v-model="highseas.name" placeholder="请输入客户名称"></el-input>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <el-select v-model="highseas.type" placeholder="请选择客户类型">
|
|
|
|
- <el-option :label="item.name" :value="item.id" v-for="(item,index) in $field.field.customerType"
|
|
|
|
- :key="item.id">
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-box" v-if="type === 'agent'">
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <el-input prefix-icon="el-icon-search" v-model="agent.name" placeholder="请输入经纪人名称"></el-input>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-box" v-if="type === 'organization'">
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <el-input prefix-icon="el-icon-search" v-model="organization.name" placeholder="请输入公司名称"></el-input>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-box" v-if="type === 'contract'">
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <el-select v-model="contract.type" placeholder="请选择合同类型">
|
|
|
|
- <el-option :label="item.name" :value="item.id" v-for="(item,index) in $field.field.contractType"
|
|
|
|
- :key="item.id">
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <el-input prefix-icon="el-icon-search" v-model="contract.code" placeholder="请输入合同编码"></el-input>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <el-input v-model="contract.value" placeholder="请输入客商名称">
|
|
|
|
- <el-select v-model="contract.select" slot="prepend" placeholder="请选择">
|
|
|
|
- <el-option label="企业" value="1"></el-option>
|
|
|
|
- <el-option label="个人" value="2"></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-input>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <select-house ref="selectHouse" @change="changeHouse">
|
|
|
|
- </select-house>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-box" v-if="type === 'order'">
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <el-input prefix-icon="el-icon-search" v-model="order.name" placeholder="请输入工单名称"></el-input>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <el-select v-model="order.status" placeholder="请选择工单状态">
|
|
|
|
- <el-option label="待提交" :value="null"></el-option>
|
|
|
|
- <el-option label="待处理" :value="1"></el-option>
|
|
|
|
- <el-option label="处理中" :value="2"></el-option>
|
|
|
|
- <el-option label="已处理" :value="3"></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-box" v-if="type === 'billContract'">
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <el-input prefix-icon="el-icon-search" v-model="billContract.contractCode" placeholder="请输入合同编码">
|
|
|
|
- </el-input>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-box" v-if="type === 'billRoutine'">
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <el-input prefix-icon="el-icon-search" v-model="billRoutine.name" placeholder="请输入账单名称">
|
|
|
|
- </el-input>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-box" v-if="type === 'invoice'">
|
|
|
|
- <div class="filter-item">
|
|
|
|
- <el-input prefix-icon="el-icon-search" v-model="invoice.name" placeholder="请输入发票名称">
|
|
|
|
- </el-input>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="filter-btn">
|
|
|
|
- <el-button type="primary" size="medium" @click="submit">查询</el-button>
|
|
|
|
- <el-button size="medium" @click="resetForm">重置</el-button>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
-</template>
|
|
|
|
-
|
|
|
|
-<script>
|
|
|
|
- import selectHouse from '@/components/common/selectHouse';
|
|
|
|
- export default {
|
|
|
|
- props: ['type'],
|
|
|
|
- data() {
|
|
|
|
- return {
|
|
|
|
- customer: {
|
|
|
|
- name: '',
|
|
|
|
- type: '',
|
|
|
|
- followUpState: ''
|
|
|
|
- },
|
|
|
|
- customerData: {},
|
|
|
|
- highseas: {
|
|
|
|
- name: '',
|
|
|
|
- type: ''
|
|
|
|
- },
|
|
|
|
- highseasData: {},
|
|
|
|
- agent: {
|
|
|
|
- name: ''
|
|
|
|
- },
|
|
|
|
- agentData: {},
|
|
|
|
- organization: {
|
|
|
|
- name: ''
|
|
|
|
- },
|
|
|
|
- organizationData: {},
|
|
|
|
- contract: {
|
|
|
|
- code: '',
|
|
|
|
- value: '',
|
|
|
|
- select: '1',
|
|
|
|
- projectItemTargetRoomIds: ''
|
|
|
|
- },
|
|
|
|
- contractData: {},
|
|
|
|
- order: {
|
|
|
|
- name: '',
|
|
|
|
- status: ''
|
|
|
|
- },
|
|
|
|
- orderData: {},
|
|
|
|
- billContract: {
|
|
|
|
- contractCode: ''
|
|
|
|
- },
|
|
|
|
- billContractData: {},
|
|
|
|
- billRoutine: {
|
|
|
|
- name: ''
|
|
|
|
- },
|
|
|
|
- billRoutineData: {},
|
|
|
|
- invoice: {
|
|
|
|
- name: ''
|
|
|
|
- },
|
|
|
|
- invoiceData: {}
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- mounted() {
|
|
|
|
- this[this.type + 'Data'] = JSON.parse(JSON.stringify(this[this.type]));
|
|
|
|
- },
|
|
|
|
- methods: {
|
|
|
|
- resetForm() {
|
|
|
|
- this[this.type] = JSON.parse(JSON.stringify(this[this.type + 'Data']));
|
|
|
|
- this.$emit('filter', {});
|
|
|
|
- },
|
|
|
|
- resetField() {
|
|
|
|
- this[this.type] = JSON.parse(JSON.stringify(this[this.type + 'Data']));
|
|
|
|
- },
|
|
|
|
- submit() {
|
|
|
|
- let data = this.filterOption(this[this.type]);
|
|
|
|
- this.$emit('filter', data);
|
|
|
|
- },
|
|
|
|
- filterOption(data) {
|
|
|
|
- let obj = {};
|
|
|
|
- for (let key in data) {
|
|
|
|
- if (data[key]) obj[key] = data[key]
|
|
|
|
- }
|
|
|
|
- return obj;
|
|
|
|
- },
|
|
|
|
- changeHouse(data) {
|
|
|
|
- this.contract['projectItemTargetRoomIds'] = data.map(node => node.roomId).join(',');
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- components: {
|
|
|
|
- selectHouse
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-</script>
|
|
|
|
-
|
|
|
|
-<style lang="scss">
|
|
|
|
- .hui-content-filter {
|
|
|
|
- display: flex;
|
|
|
|
- margin-bottom: 15px;
|
|
|
|
-
|
|
|
|
- .filter-box {
|
|
|
|
- flex: 1;
|
|
|
|
- width: 0;
|
|
|
|
- display: flex;
|
|
|
|
- flex-wrap: wrap;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .filter-item {
|
|
|
|
- width: 240px;
|
|
|
|
- margin-right: 12px;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .el-input-group__append,
|
|
|
|
- .el-input-group__prepend {
|
|
|
|
- width: 70px;
|
|
|
|
- padding: 0;
|
|
|
|
- background: transparent;
|
|
|
|
- border-color: $--input-border;
|
|
|
|
-
|
|
|
|
- .el-input__suffix {
|
|
|
|
- right: 0;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .el-input--suffix .el-input__inner {
|
|
|
|
- padding-right: 20px;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .el-input-group__append .el-select,
|
|
|
|
- .el-input-group__append .el-button,
|
|
|
|
- .el-input-group__prepend .el-select,
|
|
|
|
- .el-input-group__prepend .el-button {
|
|
|
|
- margin: -10px 0;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+<template>
|
|
|
|
+ <div class="hui-content-filter">
|
|
|
|
+ <div class="filter-box" v-if="type === 'customer'">
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-input prefix-icon="el-icon-search" v-model="customer.name" placeholder="请输入客户名称"></el-input>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-select v-model="customer.type" placeholder="请选择客户类型">
|
|
|
|
+ <el-option :label="item.name" :value="item.id" v-for="(item,index) in $field.field.customerType"
|
|
|
|
+ :key="item.id">
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-select v-model="customer.followUpState" placeholder="请选择跟进状态">
|
|
|
|
+ <el-option :label="item.name" :value="item.id" v-for="(item,index) in $field.field.followUpState"
|
|
|
|
+ :key="item.id">
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-box" v-if="type === 'highseas'">
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-input prefix-icon="el-icon-search" v-model="highseas.name" placeholder="请输入客户名称"></el-input>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-select v-model="highseas.type" placeholder="请选择客户类型">
|
|
|
|
+ <el-option :label="item.name" :value="item.id" v-for="(item,index) in $field.field.customerType"
|
|
|
|
+ :key="item.id">
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-box" v-if="type === 'agent'">
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-input prefix-icon="el-icon-search" v-model="agent.name" placeholder="请输入经纪人名称"></el-input>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-box" v-if="type === 'organization'">
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-input prefix-icon="el-icon-search" v-model="organization.name" placeholder="请输入公司名称"></el-input>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-box" v-if="type === 'contract'">
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-select v-model="contract.type" placeholder="请选择合同类型">
|
|
|
|
+ <el-option :label="item.name" :value="item.id" v-for="(item,index) in $field.field.contractType"
|
|
|
|
+ :key="item.id">
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-input prefix-icon="el-icon-search" v-model="contract.code" placeholder="请输入合同编码"></el-input>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-input v-model="contract.value" placeholder="请输入客商名称">
|
|
|
|
+ <el-select v-model="contract.select" slot="prepend" placeholder="请选择">
|
|
|
|
+ <el-option label="企业" value="1"></el-option>
|
|
|
|
+ <el-option label="个人" value="2"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-input>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <select-house ref="selectHouse" @change="changeHouse">
|
|
|
|
+ </select-house>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-box" v-if="type === 'order'">
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-input prefix-icon="el-icon-search" v-model="order.name" placeholder="请输入工单名称"></el-input>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-select v-model="order.status" placeholder="请选择工单状态">
|
|
|
|
+ <el-option label="待提交" :value="null"></el-option>
|
|
|
|
+ <el-option label="待处理" :value="1"></el-option>
|
|
|
|
+ <el-option label="处理中" :value="2"></el-option>
|
|
|
|
+ <el-option label="已处理" :value="3"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-box" v-if="type === 'billContract'">
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-input prefix-icon="el-icon-search" v-model="billContract.contractCode" placeholder="请输入合同编码">
|
|
|
|
+ </el-input>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-box" v-if="type === 'billRoutine'">
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-input prefix-icon="el-icon-search" v-model="billRoutine.name" placeholder="请输入账单名称">
|
|
|
|
+ </el-input>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-box" v-if="type === 'invoice'">
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-input prefix-icon="el-icon-search" v-model="invoice.name" placeholder="请输入发票名称">
|
|
|
|
+ </el-input>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-box" v-if="type === 'cost'">
|
|
|
|
+ <div class="filter-item">
|
|
|
|
+ <el-select v-model="cost.status" placeholder="请选择状态">
|
|
|
|
+ <el-option label="未缴费" :value="null"></el-option>
|
|
|
|
+ <el-option label="已交费" :value="1"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-btn">
|
|
|
|
+ <el-button type="primary" size="medium" @click="submit">查询</el-button>
|
|
|
|
+ <el-button size="medium" @click="resetForm">重置</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+ import selectHouse from '@/components/common/selectHouse';
|
|
|
|
+ export default {
|
|
|
|
+ props: ['type'],
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ customer: {
|
|
|
|
+ name: '',
|
|
|
|
+ type: '',
|
|
|
|
+ followUpState: ''
|
|
|
|
+ },
|
|
|
|
+ customerData: {},
|
|
|
|
+ highseas: {
|
|
|
|
+ name: '',
|
|
|
|
+ type: ''
|
|
|
|
+ },
|
|
|
|
+ highseasData: {},
|
|
|
|
+ agent: {
|
|
|
|
+ name: ''
|
|
|
|
+ },
|
|
|
|
+ agentData: {},
|
|
|
|
+ organization: {
|
|
|
|
+ name: ''
|
|
|
|
+ },
|
|
|
|
+ organizationData: {},
|
|
|
|
+ contract: {
|
|
|
|
+ code: '',
|
|
|
|
+ value: '',
|
|
|
|
+ select: '1',
|
|
|
|
+ projectItemTargetRoomIds: ''
|
|
|
|
+ },
|
|
|
|
+ contractData: {},
|
|
|
|
+ order: {
|
|
|
|
+ name: '',
|
|
|
|
+ status: ''
|
|
|
|
+ },
|
|
|
|
+ orderData: {},
|
|
|
|
+ billContract: {
|
|
|
|
+ contractCode: ''
|
|
|
|
+ },
|
|
|
|
+ billContractData: {},
|
|
|
|
+ billRoutine: {
|
|
|
|
+ name: ''
|
|
|
|
+ },
|
|
|
|
+ billRoutineData: {},
|
|
|
|
+ invoice: {
|
|
|
|
+ name: ''
|
|
|
|
+ },
|
|
|
|
+ invoiceData: {},
|
|
|
|
+ cost: {
|
|
|
|
+ status: ''
|
|
|
|
+ },
|
|
|
|
+ costData: {}
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ mounted() {
|
|
|
|
+ this[this.type + 'Data'] = JSON.parse(JSON.stringify(this[this.type]));
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ resetForm() {
|
|
|
|
+ this[this.type] = JSON.parse(JSON.stringify(this[this.type + 'Data']));
|
|
|
|
+ this.$emit('filter', {});
|
|
|
|
+ },
|
|
|
|
+ resetField() {
|
|
|
|
+ this[this.type] = JSON.parse(JSON.stringify(this[this.type + 'Data']));
|
|
|
|
+ },
|
|
|
|
+ submit() {
|
|
|
|
+ let data = this.filterOption(this[this.type]);
|
|
|
|
+ this.$emit('filter', data);
|
|
|
|
+ },
|
|
|
|
+ filterOption(data) {
|
|
|
|
+ let obj = {};
|
|
|
|
+ for (let key in data) {
|
|
|
|
+ if (data[key] || data[key] == null) obj[key] = data[key]
|
|
|
|
+ }
|
|
|
|
+ return obj;
|
|
|
|
+ },
|
|
|
|
+ changeHouse(data) {
|
|
|
|
+ this.contract['projectItemTargetRoomIds'] = data.map(node => node.roomId).join(',');
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ components: {
|
|
|
|
+ selectHouse
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style lang="scss">
|
|
|
|
+ .hui-content-filter {
|
|
|
|
+ display: flex;
|
|
|
|
+ margin-bottom: 15px;
|
|
|
|
+
|
|
|
|
+ .filter-box {
|
|
|
|
+ flex: 1;
|
|
|
|
+ width: 0;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .filter-item {
|
|
|
|
+ width: 240px;
|
|
|
|
+ margin-right: 12px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .el-input-group__append,
|
|
|
|
+ .el-input-group__prepend {
|
|
|
|
+ width: 70px;
|
|
|
|
+ padding: 0;
|
|
|
|
+ background: transparent;
|
|
|
|
+ border-color: $--input-border;
|
|
|
|
+
|
|
|
|
+ .el-input__suffix {
|
|
|
|
+ right: 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .el-input--suffix .el-input__inner {
|
|
|
|
+ padding-right: 20px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .el-input-group__append .el-select,
|
|
|
|
+ .el-input-group__append .el-button,
|
|
|
|
+ .el-input-group__prepend .el-select,
|
|
|
|
+ .el-input-group__prepend .el-button {
|
|
|
|
+ margin: -10px 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
</style>
|
|
</style>
|