LAPTOP-FO2T5SIU\35838 8 月之前
父節點
當前提交
30a5c3df8b

+ 154 - 0
src/views/invoice/components/addInvoice.vue

@@ -0,0 +1,154 @@
+<template>
+  <div class="addInvoice">
+    <el-form ref="form" :model="form" style="width: 100%;padding: 5px" :rules="rules">
+      <el-row>
+        <el-col style="padding-bottom: 10px">
+          <span class="card_title">开票信息</span>
+          <el-card shadow="always" style="padding-top: 10px">
+            <el-row>
+              <el-col :span="4" class="col-txt"><span>*签约信息</span></el-col>
+              <el-col :span="20" class="col-input">
+                <el-form-item>
+                  <el-button type="text" @click="handleContract()">去选择</el-button>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="4" class="col-txt"><span>发票抬头</span></el-col>
+              <el-col :span="20" class="col-input">
+                <el-form-item>
+                  <el-input v-model="form.invoiceHeaderName" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="4" class="col-txt"><span>税号</span></el-col>
+              <el-col :span="20" class="col-input">
+                <el-form-item>
+                  <el-input v-model="form.invoiceHeaderNumber" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="4" class="col-txt"><span>项目名称</span></el-col>
+              <el-col :span="20" class="col-input">
+                <el-form-item>
+                  <el-input v-model="form.invoiceGoodsName" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="4" class="col-txt"><span>规格</span></el-col>
+              <el-col :span="20" class="col-input">
+                <el-form-item>
+                  <el-input v-model="form.specifications" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="4" class="col-txt"><span>数量</span></el-col>
+              <el-col :span="20" class="col-input">
+                <el-form-item>
+                  <el-input v-model="form.invoiceCount" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="4" class="col-txt"><span>金额</span></el-col>
+              <el-col :span="20" class="col-input">
+                <el-form-item>
+                  <el-input v-model="form.invoiceAmount" oninput="value=value.replace(/[^\d.]/g,'')" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="4" class="col-txt"><span>税率</span></el-col>
+              <el-col :span="20" class="col-input">
+                <el-form-item>
+                  <el-input v-model="form.invoiceTax" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="4" class="col-txt"><span>备注</span></el-col>
+              <el-col :span="20" class="col-input">
+                <el-form-item>
+                  <el-input v-model="form.remark" type="textarea" :autosize="{ minRows: 2, maxRows: 100}" maxlength="2000" show-word-limit />
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-card>
+        </el-col>
+      </el-row>
+    </el-form>
+    <div style="text-align: right">
+      <el-button @click="cancel">取 消</el-button>
+      <el-button type="primary" @click="confirmSubmit()">确 定</el-button>
+    </div>
+
+    <el-dialog
+      :visible.sync="dialogVisible"
+      :title="dialogTitle"
+      width="90%"
+      top="20px"
+      class="statistic_base"
+      :append-to-body="true"
+      :modal-append-to-body="true"
+      custom-class="tagdialog"
+      @close="getData"
+    >
+      <contract-index v-if="dialogVisible" ref="contractIndex" from-address="addInvoice" @cancel="contractCancel" />
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+import ContractIndex from '@/views/signingManagement/contractManagement/index.vue'
+import Base from '@/views/base/base.vue'
+import BaseData from '@/views/base/baseData.vue'
+
+export default {
+    name: 'AddInvoice',
+    components: { ContractIndex },
+    mixins: [Base, BaseData],
+    data() {
+        return {
+            dc_key: [],
+            form: {},
+            rules: {},
+            dialogVisible: false,
+            dialogTitle: ''
+        }
+    },
+    methods: {
+        initData(data) {
+
+        },
+        getData(data) {
+
+        },
+        handleContract() {
+            this.dialogVisible = true
+            this.dialogTitle = ''
+            // 新vue时调用的方法
+            this.$nextTick(() => {
+                this.$refs.contractIndex.initData()
+            })
+        },
+        cancel() {
+
+        },
+        confirmSubmit() {
+
+        },
+        contractCancel() {
+
+        }
+    }
+}
+</script>
+
+<style lang="scss">
+
+</style>

+ 16 - 2
src/views/invoice/components/invoiceBankEdit.vue

@@ -71,8 +71,22 @@
                   <el-table-column label="费用类型" prop="suitCostType" width="80" />
                   <el-table-column label="税率">
                     <template scope="scope">
-                      <el-select v-model="scope.row.taxRate" :disabled="!scope.row.isSelected" size="mini" placeholder="请选择">
-                        <el-option v-for="item in dc_data.invoice_tax" :key="item.value" :label="item.label" :value="item.value" />
+                      <el-select
+                        v-model="scope.row.taxRate"
+                        :disabled="!scope.row.isSelected"
+                        size="mini"
+                        placeholder="请选择"
+                        popper-class="statistic_base"
+                        :popper-append-to-body="false"
+                      >
+                        <el-option
+                          v-for="item in dc_data.invoice_tax"
+                          :key="item.value"
+                          :label="item.label"
+                          :value="item.value"
+                          popper-class="statistic_base"
+                          :popper-append-to-body="false"
+                        />
                       </el-select>
                     </template>
                   </el-table-column>

+ 324 - 0
src/views/invoice/invoiceManage.vue

@@ -0,0 +1,324 @@
+<template>
+  <div>
+    <el-row class="handle-box" style="margin-bottom: 10px">
+      <el-col :span="2" class="col-txt">
+        <span>买受人</span>
+      </el-col>
+      <el-col :span="4" class="col-input">
+        <el-input v-model="search.buyerName" @keyup.enter.native="handleSearch()" />
+      </el-col>
+      <el-col :span="2" class="col-txt">
+        <span>房屋</span>
+      </el-col>
+      <el-col :span="4" class="col-input">
+        <el-input v-model="search.houseName" @keyup.enter.native="handleSearch()" />
+      </el-col>
+      <el-col :span="2" class="col-txt">
+        <span>推送状态</span>
+      </el-col>
+      <el-col :span="4" class="col-input">
+        <el-select
+          v-model="search.sendStatus"
+          filterable
+          :popper-append-to-body="false"
+          popper-class="statistic_base"
+        >
+          <el-option
+            v-for="item in dc_data.SEND_STATUS"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+            :popper-append-to-body="false"
+            popper-class="statistic_base"
+          />
+        </el-select>
+      </el-col>
+      <el-col :span="2" class="col-txt">
+        <span>开票状态</span>
+      </el-col>
+      <el-col :span="4" class="col-input">
+        <el-select
+          v-model="search.invoiceStatus"
+          filterable
+          :popper-append-to-body="false"
+          popper-class="statistic_base"
+        >
+          <el-option
+            v-for="item in dc_data.INVOICE_STATUS"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+            :popper-append-to-body="false"
+            popper-class="statistic_base"
+          />
+        </el-select>
+      </el-col>
+    </el-row>
+    <el-row class="handle-box" style="margin-bottom: 10px">
+      <el-col :span="2" class="col-txt">
+        <span>推送日期</span>
+      </el-col>
+      <el-col :span="4" class="col-input">
+        <el-date-picker
+          v-model="search.sendDateFrom"
+          popper-class="statistic_base"
+          type="date"
+          placeholder="年月日"
+          value-format="yyyy-MM-dd"
+        />
+      </el-col>
+      <el-col :span="1">
+        <span>至</span>
+      </el-col>
+      <el-col :span="4" class="col-input">
+        <el-date-picker
+          v-model="search.sendDateTo"
+          popper-class="statistic_base"
+          type="date"
+          placeholder="年月日"
+          value-format="yyyy-MM-dd"
+        />
+      </el-col>
+      <el-col :span="2" class="col-txt">
+        <span>开票日期</span>
+      </el-col>
+      <el-col :span="4" class="col-input">
+        <el-date-picker
+          v-model="search.invoiceDateFrom"
+          popper-class="statistic_base"
+          type="date"
+          placeholder="年月日"
+          value-format="yyyy-MM-dd"
+        />
+      </el-col>
+      <el-col :span="1">
+        <span>至</span>
+      </el-col>
+      <el-col :span="4" class="col-input">
+        <el-date-picker
+          v-model="search.invoiceDateTo"
+          popper-class="statistic_base"
+          type="date"
+          placeholder="年月日"
+          value-format="yyyy-MM-dd"
+        />
+      </el-col>
+    </el-row>
+    <el-row class="handle-box" style="margin-bottom: 10px;text-align: right">
+      <el-col :span="24" style="margin-top: 20px">
+        <el-button class="ch-button" size="small" @click="handleSearch()"><i class="el-icon-search" />&nbsp;查询</el-button>
+        <el-button class="ch-button-warning" size="small" @click="handleReset()"><i class="el-icon-search" />&nbsp;重置</el-button>
+        <el-button class="ch-button-add" size="small" @click="handleAdd()"><i class="el-icon-menu" />&nbsp;新增</el-button>
+      </el-col>
+    </el-row>
+    <el-row class="handle-box">
+      <el-col :span="24">
+        <el-table
+          v-loading="loading"
+          :data="AllData"
+          row-class-name="g_table_row"
+          border
+          :header-cell-style="{background:'#f2f2f2'}"
+        >
+          <el-table-column type="index" width="60" />
+          <el-table-column label="合同编号" prop="contractNumber" />
+          <el-table-column label="网签备案号" prop="recordNumber" />
+          <el-table-column label="买受人" prop="buyerName" width="200" />
+          <el-table-column label="房屋" prop="houseName" width="200" />
+          <el-table-column label="应收(元)" prop="receivableMoney" />
+          <el-table-column label="已收(元)" prop="receivedMoney" />
+          <el-table-column label="收款状态" prop="collectionStatusStr" width="110">
+            <template scope="scope">
+              <span
+                :style="{'color':scope.row.collectionStatusStr==='已退款'?'red':scope.row.collectionStatusStr==='完全收款'?'green':'gray'}"
+              >
+                {{ scope.row.collectionStatusStr }}
+              </span>
+            </template>
+          </el-table-column>
+          <el-table-column label="推送状态" prop="sendStatusStr">
+            <template scope="scope">
+              <span
+                style="color: green"
+              >
+                {{ scope.row.sendStatusStr }}
+              </span>
+            </template>
+          </el-table-column>
+          <el-table-column label="开票状态" prop="invoiceStatusStr">
+            <template scope="scope">
+              <span
+                :style="{'color':scope.row.invoiceStatusStr==='已红冲'?'red':scope.row.invoiceStatusStr==='待开票'?'green':'gray'}"
+              >
+                {{ scope.row.invoiceStatusStr }}
+              </span>
+            </template>
+          </el-table-column>
+          <el-table-column header-align="center" label="操作" width="180">
+            <template scope="scope">
+              <el-button :disabled="scope.row.contractStatusStr !== '认购待签约'" size="mini" type="text" @click="handleEdit(scope.row)">签约</el-button>
+              <el-button size="mini" type="text" @click="handleView(scope.row)">查看</el-button>
+            </template>
+          </el-table-column>
+
+        </el-table>
+        <div class="table-page">
+          <el-pagination
+            :current-page.sync="currentPage"
+            :page-sizes="[10, 20, 50, 100]"
+            :page-size="pageSize"
+            background
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="allpage"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          />
+        </div>
+      </el-col>
+    </el-row>
+
+    <!--新增预收款发票-->
+    <el-dialog
+      :visible.sync="dialogVisible"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      :title="dialogTitle"
+      width="90%"
+      top="20px"
+      class="statistic_base"
+      :append-to-body="true"
+      :modal-append-to-body="true"
+      custom-class="tagdialog"
+      @close="getData"
+    >
+      <add-invoice v-if="dialogVisible" ref="addInvoice" @cancel="cancel" />
+    </el-dialog>
+
+  </div>
+</template>
+<script>
+import Base from '@/views/base/base'
+import BaseData from '@/views/base/baseData'
+import AddInvoice from '@/views/invoice/components/addInvoice.vue'
+
+export default {
+    name: 'InvoiceManage',
+    components: { AddInvoice },
+    mixins: [Base, BaseData],
+    data() {
+        return {
+            dc_key: ['INVOICE_STATUS', 'SEND_STATUS', 'HOUSE_PAYMENT_STATUS'],
+            // 列表相关
+            search: {
+            },
+            AllData: [],
+            loading: false,
+            // 弹框相关
+            dialogVisible: false,
+            dialogTitle: '新增'
+        }
+    },
+    mounted() {
+        this.initDict(this.dc_key).then((res) => {
+            this.getData()
+        })
+    },
+    methods: {
+
+        getData: function() {
+            const _this = this
+            _this.loading = true
+            _this.AllData = []
+
+            this.search.pageNum = this.currentPage
+            this.search.pageSize = this.pageSize
+            this.baseRequest('advancePaymentInvoiceList', this.search).then((res) => {
+                if (res.data.rows) {
+                    res.data.rows.forEach(function(item) {
+                        const json = _this.getItemJson(item)
+                        _this.AllData.push(json)
+                    })
+                    _this.allpage = res.data.total
+                }
+                _this.loading = false
+            }).catch((e) => {
+                // console.log(e)
+            })
+            // this.initOutData()
+        },
+        handleSearch: function() {
+            this.getData()
+        },
+        handleReset: function() {
+            for (const i in this.search) {
+                if (i !== 'pageNum' && i !== 'pageSize') {
+                    this.search[i] = ''
+                }
+            }
+            this.handleSearch()
+        },
+        getItemJson: function(item) {
+            item.invoiceStatusStr = this.dc_map.INVOICE_STATUS[item.invoiceStatus]
+            item.sendStatusStr = this.dc_map.SEND_STATUS[item.sendStatus]
+            item.collectionStatusStr = this.dc_map.HOUSE_PAYMENT_STATUS[item.collectionStatus]
+            return item
+        },
+        handleAdd(val) {
+            this.dialogVisible = true
+            this.dialogTitle = ''
+            val.isView = false
+            // 新vue时调用的方法
+            this.$nextTick(() => {
+                this.$refs.addInvoice.initData(val)
+            })
+        },
+        handleView(val) {
+            this.dialogVisible = true
+            this.dialogTitle = ''
+            val.isView = true
+            // 新vue时调用的方法
+            this.$nextTick(() => {
+                this.$refs.addInvoice.initData(val)
+            })
+        },
+        cancel: function() {
+            this.dialogVisible = false
+        },
+        baseRequest(opUrl, postData) {
+            return this.$channel.globeRequest('InvoiceManageController', opUrl, postData, 'project')
+        }
+    }
+}
+</script>
+
+<style scoped>
+  .ch-input .el-input__inner {
+      border-color: #32323A;
+  }
+  .ch-input-size {
+      width: 150px;
+  }
+  .ch-button {
+      border-color: #32323A;
+      background-color: #32323A;
+      color: #fff;
+  }
+  .ch-button-warning {
+      margin-left: 10px;
+      border-color: #E6A23C;
+      background-color: #E6A23C;
+      color: #fff;
+  }
+  .ch-button-export {
+      margin-left: 10px;
+      border-color: #98CC1F;
+      background-color: #98CC1F;
+      color: #fff;
+  }
+  /deep/.el-dialog__header {
+      padding: 10px 20px;
+  }
+  /deep/.el-dialog__body {
+      padding: 10px 20px;
+  }
+</style>

+ 3 - 2
src/views/receiveRefundsManagement/paymentManagement/index.vue

@@ -66,7 +66,7 @@
           <el-table-column label="实测建筑面积(㎡)" prop="actualBuildArea" width="110" />
           <el-table-column label="买卖单价(㎡)" prop="housePrice" />
           <el-table-column label="买受人产权份额占比" prop="buyerProportion" />
-          <el-table-column label="付款方式" prop="paymentMethod" />
+          <el-table-column label="付款方式" prop="paymentMethodStr" />
           <el-table-column label="应收房款(元)" prop="totalPrice" />
           <el-table-column label="已收房款(元)" prop="receivedMoney" />
           <el-table-column label="尚欠房款(元)" prop="arrears" />
@@ -131,7 +131,7 @@ export default {
     mixins: [Base, BaseData],
     data() {
         return {
-            dc_key: ['CONTRACT_STATUS', 'HOUSE_PAYMENT_STATUS'],
+            dc_key: ['CONTRACT_STATUS', 'HOUSE_PAYMENT_STATUS', 'PAYMENT_METHODS'],
             // 列表相关
             search: {
             },
@@ -183,6 +183,7 @@ export default {
             this.handleSearch()
         },
         getItemJson: function(item) {
+            item.paymentMethodStr = this.dc_map.PAYMENT_METHODS[item.paymentMethod]
             item.collectionStatusStr = this.dc_map.HOUSE_PAYMENT_STATUS[item.collectionStatus]
             return item
         },

+ 29 - 17
src/views/signingManagement/contractManagement/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div>
+  <div class="newIndexDiv">
     <el-row class="handle-box" style="margin-bottom: 10px">
       <el-col :span="24">
         <span>买受人&nbsp;</span>
@@ -26,22 +26,24 @@
             popper-class="statistic_base"
           />
         </el-select>
-        <span>签约日期&nbsp;</span>
-        <el-date-picker
-          v-model="search.signingDateFrom"
-          popper-class="statistic_base"
-          type="date"
-          placeholder="年月日"
-          value-format="yyyy-MM-dd"
-        />
-        <span>至&nbsp;</span>
-        <el-date-picker
-          v-model="search.signingDateTo"
-          popper-class="statistic_base"
-          type="date"
-          placeholder="年月日"
-          value-format="yyyy-MM-dd"
-        />
+        <div class="qyrqBox">
+          <span>签约日期&nbsp;</span>
+          <el-date-picker
+            v-model="search.signingDateFrom"
+            popper-class="statistic_base"
+            type="date"
+            placeholder="年月日"
+            value-format="yyyy-MM-dd"
+          />
+          <span>至&nbsp;</span>
+          <el-date-picker
+            v-model="search.signingDateTo"
+            popper-class="statistic_base"
+            type="date"
+            placeholder="年月日"
+            value-format="yyyy-MM-dd"
+          />
+        </div>
       </el-col>
     </el-row>
     <el-row class="handle-box" style="margin-bottom: 10px">
@@ -219,7 +221,17 @@ export default {
     }
 }
 </script>
+<style lang="scss">
+   .newIndexDiv{
+       .qyrqBox{
+           display: inline-flex;align-items: center;
+           .el-input{
+               width: 220px !important;
+           }
+       }
 
+   }
+</style>
 <style scoped>
   .ch-input .el-input__inner {
       border-color: #32323A;