Bladeren bron

打印发票

Shannon_mu 2 jaren geleden
bovenliggende
commit
00451b5280

BIN
operationSupport/src/assets/img/icon_dayincuishou@2x.png


+ 1 - 1
operationSupport/src/views/ownerManagement/index.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="content main">
-        <organ-tree @organId="currentOrganId" v-if="!ownerStatus" :buildingType="1"></organ-tree>
+        <organ-tree @organId="currentOrganId" v-if="!ownerStatus" ></organ-tree>
         <div class="content-right" v-if="!ownerStatus">
             <div class="search">
                 <el-input

+ 31 - 1
operationSupport/src/views/payService/call/index.vue

@@ -7,10 +7,20 @@
                     <el-option v-for="(item, index) in communityArr" :key="index" :label="item.communityName" :value="item.id"></el-option>
                 </el-select>
                 <el-input placeholder="欠费天数(大于)" class="search-input" clearable v-model="mixins_query.arrearageDays"></el-input>
+                <el-date-picker
+                    v-model="times"
+                    value-format="yyyy-MM-dd"
+                    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 effect="light" placement="bottom" content="打印催缴通知单">
-                        <i class="zoniot_font zoniot-icon-cuijiaoshezhi" @click="print"></i>
+                        <img src="@assets/img/icon_dayincuishou@2x.png" alt="" @click="print" />
+                        <!-- <i class="zoniot_font zoniot-icon-dayin" @click="print"></i> -->
                     </el-tooltip>
                     <el-tooltip effect="light" placement="bottom" content="催缴设置">
                         <i class="zoniot_font zoniot-icon-cuijiaoshezhi" @click="toPageSet"></i>
@@ -56,6 +66,7 @@ export default {
         return {
             isShowStatus: 'list',
             selectRow: [],
+            times: [],
             cols: [
                 {
                     label: '订单号',
@@ -188,6 +199,14 @@ export default {
         selectionChange(val) {
             this.selectRow = val;
         },
+        effectiveDateToggle(va) {
+            let arr = va;
+            if (!arr) {
+                arr = ['', ''];
+            }
+            this.mixins_query.startTime = arr[0];
+            this.mixins_query.endTime = arr[1];
+        },
         allNotice() {
             if (!this.mixins_list.length) {
                 this.$message.error('暂无数据无法催缴');
@@ -206,3 +225,14 @@ export default {
     }
 };
 </script>
+<style lang="scss" scoped>
+.search-icon {
+    img {
+        width: 28px;
+        height: 28px;
+        vertical-align: bottom;
+        margin-right: 20px;
+        cursor: pointer;
+    }
+}
+</style>

+ 14 - 3
operationSupport/src/views/payService/call/printFuntion.vue

@@ -37,10 +37,17 @@ export default {
                     if (status == 0) {
                         var LODOP; //声明为全局变量
                         LODOP = getLodop();
-                        LODOP.PRINT_INIT('凤凰天誉专用收据');
-                        LODOP.ADD_PRINT_HTML(30, 40, '90%', 200, data);
+                        LODOP.PRINT_INIT('凤凰天誉催缴收据');
+                        // LODOP.ADD_PRINT_HTML(30, 40, '90%', '98%', data);
+
+                        data.map((item) => {
+                            this.mapsList(LODOP, item);
+                        });
+
+                        // LODOP.ADD_PRINT_TABLE("2%","1%","96%","98%",document.getElementById("div1").innerHTML);
                         //LODOP.SET_PRINT_STYLEA(0,"Top2Offset",-40); //这句可让次页起点向上移
-                        LODOP.SET_PRINT_PAGESIZE(1, 2410, 1000, '');
+                        LODOP.SET_PRINT_PAGESIZE(2, 0, 0, 'A4');
+                        LODOP.SET_SHOW_MODE('LANDSCAPE_DEFROTATED', 1); //横向时的正向显示
 
                         //LODOP.SET_PRINT_STYLEA(0,"LinkedItem",-1);
                         LODOP.PREVIEW();
@@ -55,6 +62,10 @@ export default {
                 .catch(() => {
                     loading.close();
                 });
+        },
+        mapsList(LODOP, data) {
+            LODOP.ADD_PRINT_HTML(30, 40, '90%', '95%', data);
+            LODOP.NewPage();
         }
     },
     created() {

+ 36 - 20
operationSupport/src/views/payService/propertyFee/actualReceipts.vue

@@ -1,13 +1,6 @@
 <template>
     <div class="content main">
-        <zz-table
-            :settings="{ stripe: true }"
-            :cols="cols"
-            :data="mixins_list"
-            :pageset="mixins_pageset"
-            @page-change="pageChange"
-            @selection-change="selectionChange"
-        >
+        <zz-table :settings="{ stripe: true }" :cols="cols" :data="mixins_list" :pageset="mixins_pageset" @page-change="pageChange">
             <template slot-scope="scope" slot="payBeginTime">
                 {{ typeTimeTransition(scope.row.payBeginTime, scope.row.payEndTime) }}
             </template>
@@ -18,10 +11,15 @@
                         <i class="zoniot_font zoniot-icon-xiangqing" @click="lookDetails(scope.row)"></i>
                     </el-tooltip>
                     <el-tooltip class="item" effect="light" placement="bottom" content="打印收据">
-                        <i class="zoniot_font zoniot-icon-xiangqing" @click="palys(scope.row.id)"></i>
+                        <i class="zoniot_font zoniot-icon-dayin" @click="palys(scope.row.id)"></i>
                     </el-tooltip>
-                    <el-tooltip v-if="scope.row.printStatus !== 0" class="item" effect="light" placement="bottom" content="收据作废">
-                        <i class="zoniot_font zoniot-icon-shanchu redText" @click="deluserbyidFn(scope.row.id)"></i>
+                    <el-tooltip class="item" effect="light" placement="bottom" content="收据作废">
+                        <i
+                            class="zoniot_font zoniot-icon-baofei redText"
+                            v-if="scope.row.printStatus !== 0"
+                            @click="delets(scope.row.id)"
+                        ></i>
+                        <i class="zoniot_font zoniot-icon-baofei ashText" v-else></i>
                     </el-tooltip>
                 </div>
             </template>
@@ -36,9 +34,7 @@ export default {
     mixins: [list],
     data() {
         return {
-            mixins_querys: {
-                chargeType: ''
-            },
+            mixins_querys: {},
             cols: [
                 {
                     label: '收据号',
@@ -147,13 +143,22 @@ export default {
                 this.mixins_search();
             });
         },
-        selectionChange(val) {
-            this.selectRow = val;
-        },
-        currentOrganId(data) {
-            this.currentId = data || '';
+        delets(id) {
+            new Promise((resolve) => {
+                this.$store.dispatch('addPopup', {
+                    url: '/payService/propertyFee/stepPage/nullify.vue',
+                    width: '400px',
+                    height: '230px',
+                    props: {
+                        id: id,
+                        callback: resolve
+                    },
+                    title: '收据作废'
+                });
+            }).then(() => {
+                this.mixins_search();
+            });
         },
-
         typeTimeTransition(start, end) {
             let text = '';
             if (!!end) {
@@ -192,6 +197,17 @@ export default {
                     this.$message.error(msg);
                 }
             });
+        },
+        nullify_search() {
+            this.mixins_query.printStatus = this.$parent.nullifyObj.printStatus;
+            this.mixins_query.startTime = this.$parent.mixins_query.startTime;
+            this.mixins_query.endTime = this.$parent.mixins_query.endTime;
+            this.mixins_query.payType = this.$parent.mixins_query.payType;
+
+            this.mixins_query.chargeType = this.$parent.mixins_querys.chargeType;
+
+            this.mixins_query.name = this.$parent.mixins_query.name;
+            this.mixins_search();
         }
     },
     created() {

+ 88 - 49
operationSupport/src/views/payService/propertyFee/index.vue

@@ -8,13 +8,13 @@
                     <el-radio-button :label="2">已交账单</el-radio-button>
                     <el-radio-button :label="3">实收管理</el-radio-button>
                 </el-radio-group>
-                <template v-if="chargeStatus !== 3">
+                <div class="searchText">
                     <el-input
                         clearable
                         placeholder="输入订单号/业主/房间号"
-                        class="search-input"
                         v-trim
                         v-model.trim="mixins_query.name"
+                        class="search-input"
                     ></el-input>
                     <el-select v-model="mixins_querys.chargeType" placeholder="费用类型" clearable class="width120">
                         <template v-for="(item, index) in $publicArray.chargeType()">
@@ -26,9 +26,43 @@
                             ></el-option>
                         </template>
                     </el-select>
-                    <!-- 已交 -->
-                    <template v-if="chargeStatus == 2">
-                        <el-select v-model="mixins_query.payType" class="width120" placeholder="缴费方式" clearable>
+                    <template v-if="chargeStatus !== 3">
+                        <!-- 已交 -->
+                        <template v-if="chargeStatus == 2">
+                            <el-select v-model="mixins_query.payType" class="width120" placeholder="缴费方式" clearable>
+                                <el-option
+                                    :label="item.label"
+                                    :value="item.value"
+                                    v-for="(item, index) in $publicArray.paymentType()"
+                                    :key="index"
+                                ></el-option>
+                            </el-select>
+                            <el-date-picker
+                                v-model="times"
+                                value-format="yyyy-MM-dd"
+                                type="daterange"
+                                range-separator="至"
+                                start-placeholder="选择开始日期"
+                                end-placeholder="选择结束日期"
+                                @change="effectiveDateToggle"
+                            ></el-date-picker>
+                        </template>
+
+                        <el-date-picker
+                            v-else
+                            v-model="times"
+                            value-format="yyyy-MM"
+                            type="monthrange"
+                            range-separator="至"
+                            start-placeholder="选择开始月"
+                            end-placeholder="选择结束月"
+                            @change="effectiveDateToggle"
+                        ></el-date-picker>
+
+                        <el-button class="search-btn" type="primary" @click="mixins_search()" icon="el-icon-search">搜索</el-button>
+                    </template>
+                    <template v-else>
+                        <el-select v-model="nullifyObj.payType" class="width120" placeholder="缴费方式" clearable>
                             <el-option
                                 :label="item.label"
                                 :value="item.value"
@@ -36,6 +70,10 @@
                                 :key="index"
                             ></el-option>
                         </el-select>
+                        <el-select v-model="nullifyObj.printStatus" class="width120" placeholder="打印状态" clearable>
+                            <el-option label="未打印" :value="0"></el-option>
+                            <el-option label="已打印" :value="1"></el-option>
+                        </el-select>
                         <el-date-picker
                             v-model="times"
                             value-format="yyyy-MM-dd"
@@ -45,52 +83,40 @@
                             end-placeholder="选择结束日期"
                             @change="effectiveDateToggle"
                         ></el-date-picker>
+                        <el-button class="search-btn" type="primary" @click="nullify_search()" icon="el-icon-search">搜索</el-button>
                     </template>
+                </div>
 
-                    <el-date-picker
-                        v-else
-                        v-model="times"
-                        value-format="yyyy-MM"
-                        type="monthrange"
-                        range-separator="至"
-                        start-placeholder="选择开始月"
-                        end-placeholder="选择结束月"
-                        @change="effectiveDateToggle"
-                    ></el-date-picker>
-
-                    <el-button class="search-btn" type="primary" @click="mixins_search()" icon="el-icon-search">搜索</el-button>
-                    <div class="search-icon">
-                        <el-tooltip
-                            v-show="chargeStatus == 1 && chiData.type === 'room'"
-                            class="item"
-                            effect="light"
-                            placement="bottom"
-                            content="临时收款"
-                        >
-                            <i class="zoniot_font zoniot-icon-linshishoukuan" @click="collections('temporary')"></i>
-                        </el-tooltip>
-                        <el-dropdown type="primary" @command="addCommand">
-                            <span class="zoniot_font zoniot-icon-tianjia2"></span>
-                            <el-dropdown-menu slot="dropdown" hide-on-click="false" class="device-search-dropdown">
-                                <el-dropdown-item command="batchAdd">
-                                    <div class="upload_div">
-                                        <xk-upload class="upload_class" @callback="mixins_search" :params="{ importType: 'BILL' }">
-                                            <span slot="content">批量导入</span>
-                                        </xk-upload>
-                                    </div>
-                                </el-dropdown-item>
-                                <el-dropdown-item command="template">下载模板</el-dropdown-item>
-                            </el-dropdown-menu>
-                        </el-dropdown>
-                        <el-tooltip v-show="chargeStatus == 1" class="item" effect="light" placement="bottom" content="批量收款">
-                            <i class="zoniot_font zoniot-icon-piliangshoukuan" @click="collections('bulk')"></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>
-                </template>
-                <template v-else> 41515151 </template>
+                <div class="search-icon">
+                    <el-tooltip
+                        v-show="chargeStatus == 1 && chiData.type === 'room' && chargeStatus !== 3"
+                        class="item"
+                        effect="light"
+                        placement="bottom"
+                        content="临时收款"
+                    >
+                        <i class="zoniot_font zoniot-icon-linshishoukuan" @click="collections('temporary')"></i>
+                    </el-tooltip>
+                    <el-dropdown type="primary" @command="addCommand">
+                        <span class="zoniot_font zoniot-icon-tianjia2"></span>
+                        <el-dropdown-menu slot="dropdown" hide-on-click="false" class="device-search-dropdown">
+                            <el-dropdown-item command="batchAdd">
+                                <div class="upload_div">
+                                    <xk-upload class="upload_class" @callback="mixins_search" :params="{ importType: 'BILL' }">
+                                        <span slot="content">批量导入</span>
+                                    </xk-upload>
+                                </div>
+                            </el-dropdown-item>
+                            <el-dropdown-item command="template">下载模板</el-dropdown-item>
+                        </el-dropdown-menu>
+                    </el-dropdown>
+                    <el-tooltip v-show="chargeStatus == 1" class="item" effect="light" placement="bottom" content="批量收款">
+                        <i class="zoniot_font zoniot-icon-piliangshoukuan" @click="collections('bulk')"></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>
             <template v-if="chargeStatus !== 3">
                 <zz-table
@@ -142,6 +168,7 @@ export default {
     },
     data() {
         return {
+            nullifyObj: { printStatus: '' },
             mixins_querys: {
                 chargeType: ''
             },
@@ -403,6 +430,7 @@ export default {
                     this.statusTable = true;
                 });
                 this.times = [];
+                this.nullifyObj.printStatus = '';
                 this.Object_Set(['startTime', 'endTime', 'chargeStatus'], ['', '', this.chargeStatus]);
                 this.mixins_search();
             }
@@ -451,6 +479,9 @@ export default {
                     this['mixins_query'][thisObj] = val;
                 }
             }
+        },
+        nullify_search() {
+            this.$refs.actual.nullify_search();
         }
     },
     watch: {
@@ -516,11 +547,19 @@ export default {
 <style lang='scss' scoped >
 @import '@assets/css/public-style.scss';
 .search {
+    display: flex;
+    justify-content: space-between;
+    height: inherit;
+    .searchText {
+        width: calc(100% - 420px);
+    }
     .zz-tab-button {
         margin-right: 20px;
+        min-width: 238px;
     }
     .width120 {
         width: rem(120);
+        margin-bottom: 10px;
     }
 }
 </style>

+ 69 - 0
operationSupport/src/views/payService/propertyFee/stepPage/nullify.vue

@@ -0,0 +1,69 @@
+<template>
+    <el-form ref="form" :model="formData" :rules="formRules" label-width="100px">
+        <el-form-item label="作废原因:" placeholder="请输入作废原因" prop="remark">
+            <el-input type="textarea" maxlength="100" show-word-limit resize="none" rows="3" v-model="formData.remark"></el-input>
+        </el-form-item>
+    </el-form>
+</template>
+<script >
+export default {
+    props: ['params'],
+    data() {
+        return {
+            formData: {
+                remark: ''
+            },
+            formRules: {
+                remark: [this.$valid.inputRequired('作废原因')]
+            }
+        };
+    },
+    methods: {
+        submit() {
+            this.$refs.form.validate((valid) => {
+                if (valid) {
+                    let installData = {
+                        id: this.params.id,
+                        remark: this.formData.remark
+                    };
+                    var loading = this.$loading();
+                    this.$http
+                        .post('/sc-charge/charge/receipt/cancellation', 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();
+                        });
+                }
+            });
+        }
+    },
+    created() {}
+};
+</script>
+<style lang="scss" scoped>
+.marginNone {
+    margin-bottom: 0;
+}
+.zz-table {
+    margin-bottom: 20px;
+}
+.noneBef {
+    margin-top: 5px;
+    &::before {
+        content: none;
+    }
+}
+.inline {
+    display: flex;
+    justify-content: space-between;
+}
+</style>