Shannon_mu 3 rokov pred
rodič
commit
598053acf7

+ 198 - 0
operationSupport/src/views/businessManagement/contractManagement/index.vue

@@ -0,0 +1,198 @@
+<template>
+    <div class="main">
+        <div class="search">
+            <el-input placeholder="请输入合同编号/名称" class="search-input" clearable v-model="mixins_query.contractName"></el-input>
+            <el-select placeholder="合同状态" v-model="mixins_query.adStatus" clearable>
+                <el-option v-for="(item, index) in advertisingStatus" :key="index" :label="item.label" :value="item.status">{{
+                    item.label
+                }}</el-option>
+            </el-select>
+            <el-date-picker
+                v-model="times"
+                value-format="yyyyMMdd"
+                type="daterange"
+                range-separator="至"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                @change="effectiveDateToggle"
+            ></el-date-picker>
+            <el-button type="primary" class="search-btn" @click="mixins_search" icon="el-icon-search">查询 </el-button>
+            <div class="search-icon">
+                <el-tooltip class="item" effect="light" placement="bottom" content="新增">
+                    <i class="zoniot_font zoniot-icon-tianjia2" @click="addOrEdit('add')"></i>
+                </el-tooltip>
+                <el-tooltip class="item" effect="light" placement="bottom" content="导出">
+                    <i class="zoniot_font zoniot-icon-daochu2" @click="exportExcel"></i>
+                </el-tooltip>
+            </div>
+        </div>
+        <div class="roles-wrap">
+            <zz-table
+                :cols="cols"
+                :settings="{ showIndex: true, stripe: true }"
+                :loading="mixins_onQuery"
+                :data="mixins_list"
+                :pageset="mixins_pageset"
+                @page-change="pageChange"
+                @selection-change="selectionChange"
+            >
+                <template slot-scope="scope" slot="opt">
+                    <div class="opt">
+                        <el-tooltip effect="light" placement="bottom" content="编辑">
+                            <i class="zoniot_font zoniot-icon-bianji" @click="addOrEdit('edit', scope.row)"></i>
+                        </el-tooltip>
+                        <el-tooltip effect="light" placement="bottom" content="详情">
+                            <i class="zoniot_font zoniot-icon-xiangqing" @click="lookDetail(scope.row)"></i>
+                        </el-tooltip>
+                    </div>
+                </template>
+            </zz-table>
+        </div>
+    </div>
+</template>
+
+<script>
+import list from '@utils/list.js';
+export default {
+    mixins: [list],
+    data() {
+        return {
+            times: [],
+            advertisingStatus: [
+                {
+                    status: 0,
+                    label: '已签约'
+                },
+                {
+                    status: 1,
+                    label: '生效中'
+                },
+                {
+                    status: 2,
+                    label: '到期'
+                }
+            ],
+            cols: [
+                {
+                    label: '合同编号',
+                    prop: 'contractNo'
+                },
+                {
+                    label: '客户名称',
+                    prop: 'customerName'
+                },
+                {
+                    label: '客户类型',
+                    prop: 'customerType',
+                    format(val) {
+                        if (val == 1) {
+                            return '企业';
+                        } else if (val == 2) {
+                            return '个人';
+                        }
+                    }
+                },
+                {
+                    label: '合同类型',
+                    prop: 'contractType'
+                },
+                {
+                    label: '房间',
+                    prop: 'houseName'
+                },
+                {
+                    label: '合同状态',
+                    prop: 'contractStatus',
+                    format(val) {
+                        if (val == 0) {
+                            return '已签约';
+                        } else if (val == 1) {
+                            return '已签约';
+                        } else if (val == 2) {
+                            return '到期';
+                        }
+                    }
+                },
+                {
+                    label: '开始时间',
+                    prop: 'startTime'
+                },
+                {
+                    label: '结束时间',
+                    prop: 'endTime'
+                },
+                {
+                    label: '合同到期天数',
+                    prop: 'contactPhone'
+                },
+                {
+                    label: '操作',
+                    slot: 'opt'
+                }
+            ],
+            mixins_post: 'post'
+        };
+    },
+    created() {
+        // new Promise((resolve) => {
+        //     this.getindustry('industry', resolve);
+        //     this.getindustry('economicType', resolve);
+        // }).then(() => {
+        //     this.mixins_dataUrl = '/sc-community/contract/page';
+        //     this.mixins_search();
+        // });
+        this.getorgTree();
+        this.mixins_dataUrl = '/sc-community/contract/page';
+        this.mixins_search();
+    },
+    mounted() {},
+    methods: {
+        getorgTree() {
+            this.$http
+                .get('/sc-community/assets/community/list')
+                .then((data) => {
+                    this.communityArr = data.data;
+                    this.$store.commit('setAreaSelect', data.data);
+                })
+
+                .catch(function () {});
+        },
+        effectiveDateToggle(va) {
+            let arr = va;
+            if (!arr) {
+                arr = ['', ''];
+            }
+            this.mixins_query.startTime = arr[0];
+            this.mixins_query.endTime = arr[1];
+        },
+        addOrEdit(todo, data = {}) {
+            new Promise((resolve) => {
+                let title = '添加合同';
+                if (todo !== 'add') {
+                    title = '修改合同';
+                }
+                this.$store.dispatch('addPopup', {
+                    url: '/businessManagement/contractManagement/stepPage/add.vue',
+                    width: '850px',
+                    height: '600px',
+                    props: {
+                        data,
+                        todo,
+                        communityArr:this.communityArr,
+                        callback: resolve
+                    },
+                    title: title
+                });
+            }).then(() => {
+                this.mixins_search();
+            });
+        },
+        exportExcel() {
+            this.__exportExcel('/sc-community/enterprise/excel', this.mixins_query);
+        },
+        lookDetail() {
+            this.isLook = false;
+        }
+    }
+};
+</script>

+ 201 - 0
operationSupport/src/views/businessManagement/contractManagement/stepPage/add.vue

@@ -0,0 +1,201 @@
+<template>
+    <el-form ref="form" :model="formData" :rules="formRules" label-width="110px">
+        <div class="formContent-item_title">合同信息</div>
+        <el-col :span="12"
+            ><el-form-item label="合同编号" prop="name">
+                <el-input v-model="formData.name" disabled placeholder="请输入合同编号"></el-input> </el-form-item
+        ></el-col>
+        <el-col :span="12">
+            <el-form-item label="合同类型" prop="abbreviate">
+                <el-radio v-model="formData.contactGender" :label="1">租赁合同</el-radio></el-form-item
+            ></el-col
+        >
+        <div class="formContent-item_title">客户信息</div>
+        <el-col :span="24"
+            ><el-form-item label="客户类型" prop="name">
+                <el-radio v-model="formData.contactGender" :label="1">企业</el-radio>
+                <el-radio v-model="formData.contactGender" :label="2">个人</el-radio>
+            </el-form-item></el-col
+        >
+        <div class="formContent-item_title">物业信息</div>
+        <el-col :span="8"
+            ><el-form-item label="所属社区" prop="name">
+                <el-select v-model="formData.communityId" placeholder="请选择所属社区" clearable>
+                    <el-option v-for="(item, index) in communityArr" :key="index" :label="item.communityName" :value="item.id"></el-option>
+                </el-select> </el-form-item
+        ></el-col>
+        <zz-table :cols="cols" :settings="{ stripe: true }" :data="mixins_list"></zz-table>
+        <div class="formContent-item_title">合同周期</div>
+        <el-col :span="12"
+            ><el-form-item label="合同时间" prop="name">
+                <el-date-picker
+                    v-model="times"
+                    value-format="yyyy-MM-dd"
+                    type="daterange"
+                    range-separator="至"
+                    start-placeholder="开始日期"
+                    end-placeholder="结束日期"
+                    @change="effectiveDateToggle"
+                    :editable="false"
+                ></el-date-picker> </el-form-item
+        ></el-col>
+        <el-col :span="12"
+            ><el-form-item label="合同时间" prop="name">
+                <el-date-picker
+                    v-model="times"
+                    value-format="yyyy-MM-dd"
+                    type="date"
+                    range-separator="至"
+                    placeholder="选择日期"
+                    @change="effectiveDateToggle"
+                    :editable="false"
+                ></el-date-picker> </el-form-item
+        ></el-col>
+        <div class="formContent-item_title">合同附件</div>
+    </el-form>
+</template>
+<script >
+export default {
+    props: ['params'],
+    data() {
+        return {
+            formData: {
+                name: '',
+                abbreviate: '',
+                creditCode: '',
+                industry: '',
+                economicType: '',
+                legalPerson: '',
+                legalPersonPhone: '',
+                address: '',
+                businessLicense: '',
+                contactName: '',
+                contactPhone: '',
+                contactIdCard: '',
+                contactGender: 1
+            },
+            pictureArr: [],
+            formRules: {
+                name: [this.$valid.inputRequired('企业名称')],
+                abbreviate: [this.$valid.inputRequired('企业简称')],
+                creditCode: [this.$valid.inputRequired('信用代码')],
+                industry: [this.$valid.selectRequired('所属行业')],
+                economicType: [this.$valid.selectRequired('经济类型')],
+                legalPerson: [this.$valid.inputRequired('企业法人')],
+                legalPersonPhone: [this.$valid.patternPhone('法人手机')],
+                contactName: [this.$valid.inputRequired('联系人姓名')],
+                contactPhone: [this.$valid.patternPhone('联系人手机')],
+                contactIdCard: [this.$valid.inputRequired('联系人身份证')]
+            },
+            communityArr: [],
+            cols: [
+                {
+                    label: '所属社区',
+                    prop: 'contractNo'
+                },
+                {
+                    label: '楼栋',
+                    prop: 'customerName'
+                },
+                {
+                    label: '单元',
+                    prop: 'customerType',
+                    format(val) {
+                        if (val == 1) {
+                            return '企业';
+                        } else if (val == 2) {
+                            return '个人';
+                        }
+                    }
+                },
+                {
+                    label: '楼层',
+                    prop: 'contractType'
+                },
+                {
+                    label: '房间号',
+                    prop: 'houseName'
+                },
+                {
+                    label: '房屋类型',
+                    prop: 'contractStatus',
+                    format(val) {
+                        if (val == 0) {
+                            return '已签约';
+                        } else if (val == 1) {
+                            return '已签约';
+                        } else if (val == 2) {
+                            return '到期';
+                        }
+                    }
+                },
+                {
+                    label: '建筑面积',
+                    prop: 'startTime'
+                }
+            ]
+        };
+    },
+    watch: {
+        pictureArr(val) {
+            this.formData.businessLicense = val.join();
+        }
+    },
+    methods: {
+        submit() {
+            this.$refs.form.validate((valid) => {
+                if (valid) {
+                    var loading = this.$loading();
+                    let installData = this.formData;
+                    this.$http
+                        .post(`/sc-community/enterprise/${this.params.todo == 'add' ? 'add' : 'edit'}`, installData)
+                        .then(({ status, msg }) => {
+                            if (status == 0) {
+                                this.$message.success(msg);
+                                this.params.callback();
+                                this.$emit('close');
+                            } else {
+                                this.$message.error(msg);
+                            }
+                            loading.close();
+                        })
+                        .catch(() => {
+                            loading.close();
+                        });
+                }
+            });
+        },
+        findDetali(id) {
+            this.$http
+                .get('/sc-community/enterprise/find/' + id)
+                .then(({ data, status, msg }) => {
+                    if (0 === status) {
+                        if (data !== null) {
+                            this.pictureArr = !!data.businessLicense ? data.businessLicense.split(',') : [];
+                            Object.assign(this.formData, data);
+                        }
+                    } else {
+                        this.$message.error(msg);
+                    }
+                })
+                .catch(() => {});
+        }
+    },
+    created() {
+        const { todo, data, communityArr } = this.params;
+        this.communityArr = communityArr;
+        if (todo !== 'add') {
+            this.findDetali(data.id);
+        }
+    }
+};
+</script>
+<style lang="scss" scoped>
+.formContent-item_title {
+    clear: both;
+}
+/deep/ .el-form-item__label,
+/deep/ .el-input__inner {
+    font-size: 12px;
+}
+</style>

+ 39 - 0
operationSupport/src/views/businessManagement/contractManagement/stepPage/details.vue

@@ -0,0 +1,39 @@
+<template>
+    <div class="scheduling">
+        <div class="search">
+            <div class="search-icon">
+                <el-tooltip effect="light" placement="bottom" content="返回">
+                    <i class="zoniot_font zoniot-icon-fanhui" @click="goback()"></i>
+                </el-tooltip>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            monthValue: '',
+            findUser: [],
+            thisObj: {},
+            calendarData: [],
+            indexThis: 0,
+            trueArr: [] //已有设置时间集合
+        };
+    },
+    filters: {
+        dateNewType(val) {
+            return val.getDate();
+        }
+    },
+    methods: {
+        goback() {
+            this.$emit('initPage');
+        }
+    },
+    created() {},
+    mounted() {}
+};
+</script>
+<style scoped lang='scss'>
+</style>