Browse Source

Merge remote-tracking branch 'origin/master'

zt 7 months ago
parent
commit
3c1e68d7ef

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

@@ -0,0 +1,261 @@
+<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>
+                  <span>平方米</span>
+                </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 prop="invoiceSellerBank">
+                  <el-select
+                    v-model="form.invoiceSellerBank"
+                    filterable
+                    placeholder="请选择"
+                    popper-class="statistic_base"
+                  >
+                    <el-option
+                      v-for="item in bankOptions"
+                      :key="item.id"
+                      :label="item.bankName + (item.bankBranchName?item.bankBranchName:'') + item.bankNumber"
+                      :title="'适用楼盘:' + (item.suitFloorStr?item.suitFloorStr:'无') + ' 适用费用类型:' + (item.suitCostType?item.suitCostType:'无')"
+                      :value="item.bankName + (item.bankBranchName?item.bankBranchName:'') + item.bankNumber"
+                    >
+                      <div class="my-select">
+                        <span>{{ item.bankName + (item.bankBranchName?item.bankBranchName:'') + item.bankNumber }}</span>
+                        <span style="color: #8492a6; font-size: 13px;padding-left: 10px">
+                          {{ ' 适用楼盘:' + (item.suitFloorStr?item.suitFloorStr:'无') + ' 适用费用类型:' + (item.suitCostType?item.suitCostType:'无') }}
+                        </span>
+                      </div>
+                    </el-option>
+                  </el-select>
+                </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 prop="invoiceTax">
+                  <el-select
+                    v-model="form.invoiceTax"
+                    filterable
+                    placeholder="请选择"
+                    popper-class="statistic_base"
+                  >
+                    <el-option
+                      v-for="item in dc_data.invoice_tax"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                  </el-select>
+                </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 v-if="!isView" 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" @getChildrenData="getChildrenData" />
+    </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: '',
+            isView: false,
+            bankOptions: []
+        }
+    },
+    mounted() {
+        this.initDict(this.dc_key).then((res) => {
+        })
+    },
+    methods: {
+        initData(data) {
+            this.isView = data.isView
+            this.getBankOptions()
+            if (data) {
+                this.getData(data)
+            }
+        },
+        getData(data) {
+            const postData = {
+                id: data.id
+            }
+            this.baseRequest('getById', postData).then(res => {
+                if (res.data) {
+                    this.form = res.data
+                    this.getBankTaxRateByFloor()
+                }
+            }).catch(err => {
+                this.$message.error(err)
+            })
+        },
+        getBankOptions() {
+            this.bankRequest('listAll', {}).then(res => {
+                this.bankOptions = res.data || []
+            })
+        },
+        getBankTaxRateByFloor() {
+            this.baseRequest('getBankTaxRateByFloor', { id: this.form.id }).then(res => {
+                if (res.data) {
+                    this.form.invoiceSellerBank = res.data.invoiceSellerBank
+                    this.form.invoiceTax = res.data.invoiceTax
+                }
+            })
+        },
+        handleContract() {
+            this.dialogVisible = true
+            this.dialogTitle = ''
+        },
+        cancel() {
+            this.$emit('cancel')
+        },
+        confirmSubmit() {
+            const _this = this
+            const soaUrl = 'add'
+            const extraData = {
+                type: '1'
+            }
+            const postData = Object.assign({}, _this.form, extraData)
+            this.baseRequest(soaUrl, postData).then(res => {
+                if (res.data.code === 200) {
+                    this.$message.success('保存成功')
+                    this.cancel()
+                } else {
+                    this.$message.error(res.data.msg)
+                }
+            }).catch(err => {
+                this.$message.error(err)
+            })
+        },
+        getChildrenData(data) {
+            console.log('data', data)
+            this.dialogVisible = false
+            const postData = {
+                id: data
+            }
+            this.baseRequest('getByContractId', postData).then(res => {
+                if (res.data) {
+                    this.form = res.data
+                }
+            })
+        },
+        baseRequest(opUrl, postData) {
+            return this.$channel.globeRequest('InvoiceManageController', opUrl, postData, 'project')
+        },
+        bankRequest(opUrl, postData) {
+            return this.$channel.globeRequest('InvoiceBankController', opUrl, postData, 'project')
+        }
+    }
+}
+</script>
+
+<style lang="scss">
+
+</style>

+ 235 - 0
src/views/invoice/components/formalInvoiceManageEdit.vue

@@ -0,0 +1,235 @@
+<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-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>
+                  <span>平方米</span>
+                </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 prop="invoiceSellerBank">
+                  <el-select
+                    v-model="form.invoiceSellerBank"
+                    filterable
+                    placeholder="请选择"
+                    popper-class="statistic_base"
+                  >
+                    <el-option
+                      v-for="item in bankOptions"
+                      :key="item.id"
+                      :label="item.bankName + (item.bankBranchName?item.bankBranchName:'') + item.bankNumber"
+                      :title="'适用楼盘:' + (item.suitFloorStr?item.suitFloorStr:'无') + ' 适用费用类型:' + (item.suitCostType?item.suitCostType:'无')"
+                      :value="item.bankName + (item.bankBranchName?item.bankBranchName:'') + item.bankNumber"
+                    >
+                      <div class="my-select">
+                        <span>{{ item.bankName + (item.bankBranchName?item.bankBranchName:'') + item.bankNumber }}</span>
+                        <span style="color: #8492a6; font-size: 13px;padding-left: 10px">
+                          {{ ' 适用楼盘:' + (item.suitFloorStr?item.suitFloorStr:'无') + ' 适用费用类型:' + (item.suitCostType?item.suitCostType:'无') }}
+                        </span>
+                      </div>
+                    </el-option>
+                  </el-select>
+                </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 prop="invoiceTax">
+                  <el-select
+                    v-model="form.invoiceTax"
+                    filterable
+                    placeholder="请选择"
+                    popper-class="statistic_base"
+                  >
+                    <el-option
+                      v-for="item in dc_data.invoice_tax"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                  </el-select>
+                </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 v-if="!isView" type="primary" @click="confirmSubmit()">确 定</el-button>
+    </div>
+
+  </div>
+</template>
+
+<script>
+import Base from '@/views/base/base.vue'
+import BaseData from '@/views/base/baseData.vue'
+
+export default {
+    name: 'FormalInvoiceManageEdit',
+    components: { },
+    mixins: [Base, BaseData],
+    data() {
+        return {
+            dc_key: ['invoice_tax'],
+            form: {},
+            rules: {},
+            dialogVisible: false,
+            dialogTitle: '',
+            isView: false,
+            bankOptions: []
+        }
+    },
+    mounted() {
+        this.initDict(this.dc_key).then((res) => {
+            console.log('invoice_tax', this.dc_data.invoice_tax)
+        })
+    },
+    methods: {
+        initData(data) {
+            this.isView = data.isView
+            this.getBankOptions()
+            if (data) {
+                this.getData(data)
+            }
+        },
+        getData(data) {
+            const postData = {
+                id: data.id
+            }
+            this.baseRequest('getById', postData).then(res => {
+                if (res.data) {
+                    this.form = res.data
+                    this.getBankTaxRateByFloor()
+                }
+            }).catch(err => {
+                this.$message.error(err)
+            })
+        },
+        getBankOptions() {
+            this.bankRequest('listAll', {}).then(res => {
+                this.bankOptions = res.data || []
+            })
+        },
+        getBankTaxRateByFloor() {
+            this.baseRequest('getBankTaxRateByFloor', { id: this.form.id }).then(res => {
+                if (res.data) {
+                    this.form.invoiceSellerBank = res.data.invoiceSellerBank
+                    this.form.invoiceTax = res.data.invoiceTax
+                }
+            })
+        },
+        cancel() {
+            this.$emit('cancel')
+        },
+        confirmSubmit() {
+            const _this = this
+            const soaUrl = 'add'
+            const extraData = {
+                type: '1'
+            }
+            const postData = Object.assign({}, _this.form, extraData)
+            this.baseRequest(soaUrl, postData).then(res => {
+                if (res.data.code === 200) {
+                    this.$message.success('保存成功')
+                    this.cancel()
+                } else {
+                    this.$message.error(res.data.msg)
+                }
+            }).catch(err => {
+                this.$message.error(err)
+            })
+        },
+        getChildrenData(data) {
+            console.log('data', data)
+            this.dialogVisible = false
+            const postData = {
+                id: data
+            }
+            this.baseRequest('getByContractId', postData).then(res => {
+                if (res.data) {
+                    this.form = res.data
+                }
+            })
+        },
+        baseRequest(opUrl, postData) {
+            return this.$channel.globeRequest('InvoiceManageController', opUrl, postData, 'project')
+        },
+        bankRequest(opUrl, postData) {
+            return this.$channel.globeRequest('InvoiceBankController', opUrl, postData, 'project')
+        }
+    }
+}
+</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>

+ 364 - 0
src/views/invoice/formalInvoiceManage.vue

@@ -0,0 +1,364 @@
+<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" placeholder="请选择" popper-class="statistic_base">
+          <el-option
+            v-for="item in dc_data.SEND_STATUS"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </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-class="statistic_base"
+        >
+          <el-option
+            v-for="item in dc_data.INVOICE_STATUS"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </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 size="small" class="ch-button-warning" @click="handleReset()"><i class="el-icon-refresh" />&nbsp;重置</el-button>
+        <el-button size="small" class="ch-button" @click="handleSearch()"><i class="el-icon-search" />&nbsp;查询</el-button>
+        <el-button size="small" class="ch-button-export" @click="batchInvoice()">批量开票</el-button>
+<!--        <el-button size="small" type="danger" @click="handleBatchBadDebt()">红冲</el-button>-->
+        <el-button size="small" class="ch-button-export" :loading="excelFlag" @click="handleExportAll()">导出</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'}"
+          @selection-change="handleSelectionChange"
+        >
+          <el-table-column type="selection" width="55" />
+          <el-table-column type="index" width="60" />
+          <el-table-column label="款项名称" prop="paymentTypeStr" />
+          <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 v-if="scope.row.sendStatus === '0'" type="text" size="mini" @click="handleInvoice(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"
+    >
+      <formal-invoice-manage-edit v-if="dialogVisible" ref="editInvoice" @cancel="cancel" />
+    </el-dialog>
+
+  </div>
+</template>
+<script>
+import Base from '@/views/base/base'
+import BaseData from '@/views/base/baseData'
+import FormalInvoiceManageEdit from '@/views/invoice/components/formalInvoiceManageEdit.vue'
+import constant from '@/static/utils/constant'
+
+export default {
+    name: 'FormalInvoiceManage',
+    components: { FormalInvoiceManageEdit },
+    mixins: [Base, BaseData],
+    data() {
+        return {
+            dc_key: ['INVOICE_STATUS', 'SEND_STATUS', 'HOUSE_PAYMENT_STATUS'],
+            // 列表相关
+            search: {
+            },
+            AllData: [],
+            loading: false,
+            // 弹框相关
+            dialogVisible: false,
+            dialogTitle: '新增',
+            sendStatusOption: [],
+            invoiceStatusOption: [],
+            selected: [],
+            excelFlag: false
+        }
+    },
+    mounted() {
+        this.initDict(this.dc_key).then((res) => {
+            console.log('dc_data.INVOICE_STATUS', this.dc_data.INVOICE_STATUS)
+            console.log('dc_data.SEND_STATUS', this.dc_data.SEND_STATUS)
+            // this.sendStatusOption = this.dc_data.SEND_STATUS
+            // this.invoiceStatusOption = this.dc_data.INVOICE_STATUS
+            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('formalInvoiceList', 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]
+            if (item.paymentType === '1') {
+                item.collectionStatusStr = this.dc_map.HOUSE_PAYMENT_STATUS[item.collectionStatus]
+            }
+            if (item.paymentType === '2') {
+                item.collectionStatusStr = this.dc_map.HOUSE_PAYMENT_STATUS[item.fundCollectionStatus]
+            }
+            item.paymentTypeStr = item.paymentType === '1' ? '房款' : '专项维修资金'
+            return item
+        },
+        handleInvoice(row) {
+            this.dialogTitle = '开票'
+            this.dialogVisible = true
+            const data = {
+                isView: false,
+                id: row.id
+            }
+            this.$nextTick(() => {
+                this.$refs.editInvoice.initData(data)
+            })
+        },
+        handleView(val) {
+            this.dialogVisible = true
+            this.dialogTitle = ''
+            val.isView = true
+            // 新vue时调用的方法
+            this.$nextTick(() => {
+                this.$refs.editInvoice.initData(val)
+            })
+        },
+        batchInvoice() {
+            if (!this.selected.length) {
+                this.$message.warning('请先勾选要批量开票的数据')
+                return
+            }
+            let check = true
+            this.selected.forEach(item => {
+                if (item.invoiceStatus !== '0' && item.invoiceStatus !== '2') {
+                    check = false
+                }
+            })
+            if (!check) {
+                this.$message.warning('仅可对待开票和已发票作废的账单进行批量开票')
+                return
+            }
+            this.dialogBatchVisible = true
+            this.dialogBatchTitle = '批量开票'
+            this.$nextTick(() => {
+                // this.$refs.batchInvoice.initData(JSON.stringify(this.selected))
+                this.$refs.batchInvoice.initData(this.selected)
+            })
+        },
+        handleExportAll() {
+
+        },
+        handleSelectionChange(val) {
+            this.selected = 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>

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

@@ -0,0 +1,321 @@
+<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" placeholder="请选择" popper-class="statistic_base">
+          <el-option
+            v-for="item in dc_data.SEND_STATUS"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </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-class="statistic_base"
+        >
+          <el-option
+            v-for="item in dc_data.INVOICE_STATUS"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </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 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'
+import constant from '@/static/utils/constant'
+
+export default {
+    name: 'InvoiceManage',
+    components: { AddInvoice },
+    mixins: [Base, BaseData],
+    data() {
+        return {
+            dc_key: ['INVOICE_STATUS', 'SEND_STATUS', 'HOUSE_PAYMENT_STATUS'],
+            // 列表相关
+            search: {
+                sendStatus: ''
+            },
+            AllData: [],
+            loading: false,
+            // 弹框相关
+            dialogVisible: false,
+            dialogTitle: '新增',
+            sendStatusOption: [],
+            invoiceStatusOption: []
+        }
+    },
+    mounted() {
+        this.initDict(this.dc_key).then((res) => {
+            console.log('dc_data.INVOICE_STATUS', this.dc_data.INVOICE_STATUS)
+            console.log('dc_data.SEND_STATUS', this.dc_data.SEND_STATUS)
+            // this.sendStatusOption = this.dc_data.SEND_STATUS
+            // this.invoiceStatusOption = this.dc_data.INVOICE_STATUS
+            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 - 3
src/views/receiveRefundsManagement/maintenanceFundsManagement/addFunds.vue

@@ -178,7 +178,7 @@ export default {
             })
         },
         getById(data) {
-            this.getBankTaxRateByFloor()
+            this.getBankByFloor()
             if (data.maintenanceFundsId) {
                 const postData = {
                     id: data.maintenanceFundsId
@@ -253,8 +253,8 @@ export default {
             this.form.bankBranchName = val.bankBranchName
             this.form.bankNumber = val.bankNumber
         },
-        getBankTaxRateByFloor() {
-            this.baseRequest('getBankTaxRateByFloor', { contractId: this.contractId }).then(res => {
+        getBankByFloor() {
+            this.baseRequest('getBankByFloor', { contractId: this.contractId }).then(res => {
                 if (res.data) {
                     this.bankObject = res.data.bankFullName
                     this.form.bankName = res.data.bankName

+ 3 - 3
src/views/receiveRefundsManagement/paymentManagement/addPayment.vue

@@ -199,7 +199,7 @@ export default {
                 if (data.id) {
                     this.getById(data)
                 } else {
-                    this.getBankTaxRateByFloor()
+                    this.getBankByFloor()
                 }
                 this.addLoading = false
             })
@@ -280,8 +280,8 @@ export default {
             this.form.bankBranchName = val.bankBranchName
             this.form.bankNumber = val.bankNumber
         },
-        getBankTaxRateByFloor() {
-            this.fundRequest('getBankTaxRateByFloor', { contractId: this.contractId }).then(res => {
+        getBankByFloor() {
+            this.fundRequest('getBankByFloor', { contractId: this.contractId }).then(res => {
                 if (res.data) {
                     this.bankObject = res.data.bankFullName
                     this.form.bankName = res.data.bankName

+ 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
         },

+ 4 - 20
src/views/receiveRefundsManagement/paymentManagement/paymentRegistration.vue

@@ -15,23 +15,7 @@
               <el-col :span="3" class="col-txt"><span>买受人</span></el-col>
               <el-col :span="9" class="col-input">
                 <el-form-item>
-                  <el-select
-                    v-model="form.buyerName"
-                    :popper-append-to-body="false"
-                    popper-class="statistic_base"
-                    placeholder=""
-                    filterable
-                    clearable
-                  >
-                    <el-option
-                      v-for="item in dc_data.COLLECTION_METHODS"
-                      :key="item.value"
-                      popper-class="statistic_base"
-                      :popper-append-to-body="false"
-                      :label="item.label"
-                      :value="item.value"
-                    />
-                  </el-select>
+                  <el-input v-model="form.buyerName" />
                 </el-form-item>
               </el-col>
             </el-row>
@@ -153,7 +137,7 @@ export default {
     mixins: [Base, BaseData],
     data() {
         return {
-            dc_key: ['PAYMENT_METHODS', 'COLLECTION_METHODS'],
+            dc_key: ['PAYMENT_METHODS', 'CONTENT_TYPE'],
             form: {
 
             },
@@ -225,7 +209,7 @@ export default {
         },
         getItemJson: function(item) {
             item.paymentMethodStr = this.dc_map.PAYMENT_METHODS[item.paymentMethod]
-            item.contentTypeStr = this.dc_map.COLLECTION_METHODS[item.contentType]
+            item.contentTypeStr = this.dc_map.CONTENT_TYPE[item.contentType]
             item.bankFullName = item.bankName + item.bankBranchName + item.bankNumber
             return item
         },
@@ -265,7 +249,7 @@ export default {
                 cancelButtonText: '取消',
                 type: 'warning'
             }).then(() => {
-                this.baseRequest('delete', { id: val.id }).then(res => {
+                this.baseRequest('remove', { id: val.id }).then(res => {
                     if (res.data.code == 200) {
                         this.getData()
                         this.$message({

+ 66 - 18
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">
@@ -53,13 +55,16 @@
     <el-row class="handle-box">
       <el-col :span="24">
         <el-table
+          ref="myTable"
           v-loading="loading"
           :data="AllData"
           row-class-name="g_table_row"
           border
           :header-cell-style="{background:'#f2f2f2'}"
+          @selection-change="handleSelectionChange"
         >
           <el-table-column type="index" width="60" />
+          <el-table-column v-if="fromAddress" type="selection" width="55" />
           <el-table-column label="合同编号" prop="contractNumber" />
           <el-table-column label="网签备案号" prop="recordNumber" />
           <el-table-column label="买受人" prop="buyerName" width="200" />
@@ -100,6 +105,10 @@
             @current-change="handleCurrentChange"
           />
         </div>
+        <el-row v-if="fromAddress" style="float: right">
+          <el-button @click="handleConnectCancel">取 消</el-button>
+          <el-button type="primary" @click="handleConnect()">确 定</el-button>
+        </el-row>
       </el-col>
     </el-row>
 
@@ -131,6 +140,12 @@ export default {
     name: 'ContractIndex',
     components: { contractAdd },
     mixins: [Base, BaseData],
+    props: {
+        fromAddress: {
+            type: String,
+            default: ''
+        }
+    },
     data() {
         return {
             dc_key: ['CONTRACT_STATUS', 'PAYMENT_METHODS'],
@@ -141,7 +156,9 @@ export default {
             loading: false,
             // 弹框相关
             dialogVisible: false,
-            dialogTitle: '新增'
+            dialogTitle: '新增',
+            selectedRows: [],
+            selectId: ''
         }
     },
     mounted() {
@@ -213,13 +230,44 @@ export default {
         cancel: function() {
             this.dialogVisible = false
         },
+        handleConnect() {
+            this.$emit('getChildrenData', this.selectId)
+        },
+        handleConnectCancel() {
+            this.$emit('getChildrenData')
+        },
+        handleSelectionChange(val) {
+            // 若存在一条数据 再次点击 该函数会执行三次 若没有数据选中,执行一次
+            // 第一次 选中状态 val中有两条数据 => 走if
+            // 第二次 清空数据 val为空  => 不走if
+            // 第三次 将最后一条数据设置为选中状态 val有一条数据 =>不走if
+            this.selectedRows = val
+            if (val.length > 1) {
+                this.$refs.myTable.clearSelection()
+                this.$refs.myTable.toggleRowSelection(val.pop())
+            }
+            if (val.length != 0) {
+                this.selectId = val[val.length - 1].id
+            }
+        },
+
         baseRequest(opUrl, postData) {
             return this.$channel.globeRequest('ContractManageController', opUrl, postData, 'project')
         }
     }
 }
 </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;