Explorar o código

资产个贷大中型客户经理端申请开票修改

wucl hai 11 meses
pai
achega
0247290d97
Modificáronse 3 ficheiros con 829 adicións e 175 borrados
  1. 208 139
      src/views/assets/myOrderList.vue
  2. 104 33
      src/views/major/myOrder.vue
  3. 517 3
      src/views/personal/myOrder.vue

+ 208 - 139
src/views/assets/myOrderList.vue

@@ -175,10 +175,7 @@
                                 @click="openAllotProductionDialog(row)">
                                 实收款分配
                             </el-button>
-                            <el-button type="text" size="mini"
-                                @click="openFinanceInvoiceDialog(row.orderFundId, row.productionFundId)">
-                                申请开票
-                            </el-button>
+                            <el-button type="text" size="mini" @click="openFinanceInvoiceDialog(row.orderFundId,row.productionFundId,row.realAmount,row.customerName,row.customerSubName)">申请开票</el-button>
                             <!-- <el-button v-if="row.currentNodeCode === 'REPORT_OUT_APPLY'" type="text"
                             @click="canceladdRepertoryOutWarehouse(row)">
                             撤销出库申请 
@@ -386,121 +383,187 @@
                 </el-table>
             </div>
         </el-dialog>
-        <el-dialog :visible.sync="newInvoiceDialog" width="75%" center custom-class="doWarehouseClass" @closed="cleanFinanceInvoiceForm()">
-            <el-form ref="invoice" :model="invoice">
-                <el-divider content-position="left">开票信息</el-divider>
-                <el-row>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                        <el-form-item label="发票抬头:" :rules="{ required: true, message: '发票抬头不能为空', trigger: 'blur' }"
-                            prop="title" label-width="140px" class="postInfo-container-item">
-                            <el-input v-model.trim="invoice.title" class="filter-item" />
-                        </el-form-item>
-                    </el-col>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                        <el-form-item label="发票类型:" :rules="{ required: true, message: '发票类型不能为空', trigger: 'blur' }"
-                            prop="type" label-width="140px" class="postInfo-container-item">
-                            <el-select v-model="invoice.type" style="width:206px">
-                                <el-option label="普票" value="普票"></el-option>
-                                <el-option label="专票" value="专票"></el-option>
-                            </el-select>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                        <el-form-item label="待开金额(元):" prop="planAmount"
-                            :rules="{ required: true, message: '使用权面积不能为空', trigger: 'blur' }" label-width="140px"
-                            class="postInfo-container-item">
-                            <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="invoice.planAmount"
-                                type="number" style="width:206px" class="filter-item" />
-                        </el-form-item>
-                    </el-col>
-                </el-row>
-                <el-row>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                        <el-form-item label="税号:" :rules="{ required: true, message: '税号不能为空', trigger: 'blur' }"
-                            prop="taxNo" label-width="140px" class="postInfo-container-item">
-                            <el-input v-model.trim="invoice.taxNo" class="filter-item" />
-                        </el-form-item>
-                    </el-col>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                        <el-form-item label="计划开票日期:" prop="planMakeDate"
-                            :rules="{ required: true, message: '计划开票日期不能为空', trigger: 'blur' }" label-width="140px"
-                            class="postInfo-container-item">
-                            <el-date-picker v-model="invoice.planMakeDate" type="date" placeholder="选择日期"
-                                value-format="yyyy-MM-dd" style="width:206px">
-                            </el-date-picker>
-                        </el-form-item>
-                    </el-col>
-                </el-row>
-                <el-divider content-position="left">银行信息</el-divider>
-                <el-row>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                        <el-form-item label="开户行:" prop="bankName" label-width="140px" class="postInfo-container-item">
-                            <el-input v-model.trim="invoice.bankName" class="filter-item" />
-                        </el-form-item>
-                    </el-col>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                        <el-form-item label="银行账号:" prop="bankAccount" label-width="140px" class="postInfo-container-item">
-                            <el-input v-model.trim="invoice.bankAccount" class="filter-item" />
-                        </el-form-item>
-                    </el-col>
-                </el-row>
-                <el-row>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                        <el-form-item label="地址:" prop="bankAddress" label-width="140px" class="postInfo-container-item">
-                            <el-input v-model.trim="invoice.bankAddress" class="filter-item" />
-                        </el-form-item>
-                    </el-col>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                        <el-form-item label="电话:" prop="bankTel" label-width="140px" class="postInfo-container-item">
-                            <el-input v-model.trim="invoice.bankTel" class="filter-item" />
-                        </el-form-item>
-                    </el-col>
-                </el-row>
-                <el-divider content-position="left">发票信息</el-divider>
-                <el-row>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                        <el-form-item label="开票项目:" prop="makeItem" label-width="140px" class="postInfo-container-item">
-                            <el-input v-model.trim="invoice.makeItem" class="filter-item" />
-                        </el-form-item>
-                    </el-col>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                        <el-form-item label="项目数量:" prop="itemQuantity" label-width="140px" class="postInfo-container-item">
-                            <el-input v-model.trim="invoice.itemQuantity" class="filter-item" />
-                        </el-form-item>
-                    </el-col>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                        <el-form-item label="计量单位:" prop="itemUnit" label-width="140px" class="postInfo-container-item">
-                            <el-input v-model.trim="invoice.itemUnit" class="filter-item" placeholder="个/套/箱/次/斤/公斤/..." />
-                        </el-form-item>
-                    </el-col>
-                </el-row>
-                <el-row>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                        <el-form-item label="税点:" prop="taxRate" label-width="140px" class="postInfo-container-item">
-                            <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="invoice.taxRate"
-                                type="number" style="width:206px" class="filter-item" />
-                        </el-form-item>
-                    </el-col>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                        <el-form-item label="税额:" prop="taxAmount" label-width="140px" class="postInfo-container-item">
-                            <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="invoice.taxAmount"
-                                type="number" style="width:206px" class="filter-item" />
-                        </el-form-item>
-                    </el-col>
-                </el-row>
-                <el-row>
-                    <el-col :xs="24" :sm="12" :lg="18" :span="6">
-                        <el-form-item label="备注:" prop="remark" label-width="140px" class="postInfo-container-item">
-                            <el-input v-model.trim="invoice.remark" type="textarea" class="filter-item" />
-                        </el-form-item>
-                    </el-col>
-                </el-row>
-            </el-form>
-            <span slot="footer" class="dialog-footer">
-                <el-button @click="newInvoiceDialog = false">取 消</el-button>
-                <el-button type="primary" @click="saveInvoice()">确 定</el-button>
-            </span>
-        </el-dialog>
+        <el-dialog :visible.sync="newInvoiceDialog" width="55%" top="10vh" center custom-class="doWarehouseClass"
+      @closed="cleanFinanceInvoiceForm">
+      <el-form ref="invoice" :model="invoice">
+        <el-divider content-position="left">开票信息</el-divider>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="发票抬头:" :rules="{ required: true, message: '发票抬头不能为空', trigger: 'blur' }" prop="title"
+              label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.title" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="发票类型:" :rules="{ required: true, message: '发票类型不能为空', trigger: 'blur' }" prop="type"
+              label-width="140px" class="postInfo-container-item">
+              <el-select v-model="invoice.type" style="width:100%">
+                <el-option label="普票" value="普票"></el-option>
+                <el-option label="专票" value="专票"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="税号:" :rules="{ required: true, message: '税号不能为空', trigger: 'blur' }" prop="taxNo"
+              label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.taxNo" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="计划开票日期:" prop="planMakeDate"
+              :rules="{ required: true, message: '计划开票日期不能为空', trigger: 'blur' }" label-width="140px"
+              class="postInfo-container-item">
+              <el-date-picker v-model="invoice.planMakeDate" type="date" placeholder="选择日期" value-format="yyyy-MM-dd" style="width:100%">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="待开金额(元):" prop="planAmount"
+              :rules="{ required: true, message: '使用权面积不能为空', trigger: 'blur' }" label-width="140px"
+              class="postInfo-container-item">
+              <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="invoice.planAmount"
+                type="number" style="width:100%" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="是否收款:" label-width="140px"
+              class="postInfo-container-item">
+              <el-radio-group :value="invoice.realPayAmount?'已收款':'未收款'">
+                <el-radio label="已收款"></el-radio>
+                <el-radio label="未收款"></el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="开票项目:" prop="makeItem" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.makeItem" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="项目数量:" prop="itemQuantity" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.itemQuantity" class="filter-item" />
+            </el-form-item>
+          </el-col>
+         
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="计量单位:" prop="itemUnit" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.itemUnit" class="filter-item" placeholder="个/套/箱/次/斤/公斤/..." />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="24" :span="6">
+            <el-form-item label="备注:" prop="remark" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.remark" type="textarea" :autosize="{ minRows: 5, maxRows: 8}"  class="filter-item" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <!-- <el-divider content-position="left">银行信息</el-divider>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="开户行:" prop="bankName" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.bankName" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6" :span="6">
+            <el-form-item label="银行账号:" prop="bankAccount" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.bankAccount" class="filter-item" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="地址:" prop="bankAddress" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.bankAddress" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6" :span="6">
+            <el-form-item label="电话:" prop="bankTel" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.bankTel" class="filter-item" />
+            </el-form-item>
+          </el-col>
+        </el-row> -->
+        <!-- <el-divider content-position="left">发票信息</el-divider>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="发票号码:" prop="ticketNo" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.ticketNo" class="filter-item"  readonly disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="实开金额(元):" prop="realAmount" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.realAmount" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+         
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="申请日期:" prop="created" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.created" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="实开日期:" prop="realMakeDate" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.realMakeDate" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="订单类型:" prop="businessType" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.businessType" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="开票人:" prop="applyName" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.applyName" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="订单编号:" prop="orderId" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.orderId" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="产品号:" prop="productionNo" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.productionNo" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+        </el-row> -->
+       
+        <!-- <el-row>
+          <el-col :xs="24" :sm="12" :lg="6" :span="6">
+            <el-form-item label="税点:" prop="taxRate" label-width="140px" class="postInfo-container-item">
+              <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="invoice.taxRate" type="number"
+                style="width:206px" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6" :span="6">
+            <el-form-item label="税额:" prop="taxAmount" label-width="140px" class="postInfo-container-item">
+              <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="invoice.taxAmount"
+                type="number" style="width:206px" class="filter-item" />
+            </el-form-item>
+          </el-col>
+        </el-row> -->
+       
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="newInvoiceDialog = false">取 消</el-button>
+        <el-button type="primary" @click="saveInvoice()">确 定</el-button>
+      </span>
+    </el-dialog>
     </div>
 </template>
 
@@ -606,25 +669,28 @@ export default {
             },
             invoiceData: [],
             invoice: {
-                id: null,
-                orderFundId: null,
-                productionFundId: null,
-                title: null,
-                type: null,
-                taxNo: null,
-                planAmount: null,
-                planMakeDate: null,
-                bankName: null,
-                bankAccount: null,
-                bankAddress: null,
-                bankTel: null,
-                makeItem: null,
-                itemQuantity: null,
-                itemUnit: null,
-                taxRate: null,
-                taxAmount: null,
-                remark: null
-            },
+        id: null,
+        orderFundId: null,
+        productionFundId: null,
+        title: null,
+        type: null,
+        taxNo: null,
+        planAmount: null,
+        planMakeDate: null,
+        bankName: null,
+        bankAccount: null,
+        bankAddress: null,
+        bankTel: null,
+        makeItem: null,
+        itemQuantity: null,
+        itemUnit: null,
+        taxRate: null,
+        taxAmount: null,
+        remark: null,
+        realPayAmount:null,
+        realAmount:null,
+        realMakeDate:null
+      },
             makeInvoiceListDialog: false,
             newInvoiceDialog: false
         }
@@ -1040,7 +1106,8 @@ export default {
                 }
             })
         },
-        openFinanceInvoiceDialog(orderFundId, productionFundId) {
+        openFinanceInvoiceDialog(orderFundId, productionFundId,realAmount,clientName,clientSubName) {
+            console.log(orderFundId,realAmount,clientName,clientSubName)
             if (!orderFundId) {
                 this.$notify({
                     title: '提示',
@@ -1054,6 +1121,8 @@ export default {
             if (orderFundId) {
                 this.invoice.orderFundId = orderFundId;
                 this.invoice.productionFundId = productionFundId;
+                this.invoice.realPayAmount = realAmount;
+                this.invoice.title = clientName+clientSubName;
                 this.getFinanceInvoiceList();
             }
         },

+ 104 - 33
src/views/major/myOrder.vue

@@ -88,7 +88,7 @@
               <el-button type="text" size="small" @click="openAllotProductionDialog(row)">实收款分配</el-button>
             </div>
             <div>
-              <el-button type="text" size="small" @click="openFinanceInvoiceDialog(row.orderFundId)">申请开票</el-button>
+              <el-button type="text" size="small" @click="openFinanceInvoiceDialog(row.orderFundId,row.realAmount,row.clienteleName,row.clienteleSubName)">申请开票</el-button>
               <el-button type="text" size="small" @click="productionList(row.id)">产品包</el-button>
             </div>
           </template>
@@ -158,7 +158,7 @@
         </el-table>
       </div>
     </el-dialog>
-    <el-dialog :visible.sync="newInvoiceDialog" width="75%" center custom-class="doWarehouseClass"
+    <el-dialog :visible.sync="newInvoiceDialog" width="55%" top="10vh" center custom-class="doWarehouseClass"
       @closed="cleanFinanceInvoiceForm">
       <el-form ref="invoice" :model="invoice">
         <el-divider content-position="left">开票信息</el-divider>
@@ -169,7 +169,7 @@
               <el-input v-model.trim="invoice.title" class="filter-item" />
             </el-form-item>
           </el-col>
-          <el-col :xs="24" :sm="12" :lg="6" :span="6">
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
             <el-form-item label="发票类型:" :rules="{ required: true, message: '发票类型不能为空', trigger: 'blur' }" prop="type"
               label-width="140px" class="postInfo-container-item">
               <el-select v-model="invoice.type" style="width:100%">
@@ -178,14 +178,7 @@
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col :xs="24" :sm="12" :lg="6" :span="6">
-            <el-form-item label="待开金额(元):" prop="planAmount"
-              :rules="{ required: true, message: '使用权面积不能为空', trigger: 'blur' }" label-width="140px"
-              class="postInfo-container-item">
-              <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="invoice.planAmount"
-                type="number" style="width:100%" class="filter-item" />
-            </el-form-item>
-          </el-col>
+        
         </el-row>
         <el-row>
           <el-col :xs="24" :sm="12" :lg="12" :span="6">
@@ -194,7 +187,7 @@
               <el-input v-model.trim="invoice.taxNo" class="filter-item" />
             </el-form-item>
           </el-col>
-          <el-col :xs="24" :sm="12" :lg="6" :span="6">
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
             <el-form-item label="计划开票日期:" prop="planMakeDate"
               :rules="{ required: true, message: '计划开票日期不能为空', trigger: 'blur' }" label-width="140px"
               class="postInfo-container-item">
@@ -203,7 +196,53 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-divider content-position="left">银行信息</el-divider>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="待开金额(元):" prop="planAmount"
+              :rules="{ required: true, message: '使用权面积不能为空', trigger: 'blur' }" label-width="140px"
+              class="postInfo-container-item">
+              <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="invoice.planAmount"
+                type="number" style="width:100%" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="是否收款:" label-width="140px"
+              class="postInfo-container-item">
+              <el-radio-group :value="invoice.realPayAmount?'已收款':'未收款'">
+                <el-radio label="已收款"></el-radio>
+                <el-radio label="未收款"></el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="开票项目:" prop="makeItem" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.makeItem" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="项目数量:" prop="itemQuantity" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.itemQuantity" class="filter-item" />
+            </el-form-item>
+          </el-col>
+         
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="计量单位:" prop="itemUnit" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.itemUnit" class="filter-item" placeholder="个/套/箱/次/斤/公斤/..." />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="24" :span="6">
+            <el-form-item label="备注:" prop="remark" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.remark" type="textarea" :autosize="{ minRows: 5, maxRows: 8}"  class="filter-item" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <!-- <el-divider content-position="left">银行信息</el-divider>
         <el-row>
           <el-col :xs="24" :sm="12" :lg="12" :span="6">
             <el-form-item label="开户行:" prop="bankName" label-width="140px" class="postInfo-container-item">
@@ -227,26 +266,59 @@
               <el-input v-model.trim="invoice.bankTel" class="filter-item" />
             </el-form-item>
           </el-col>
+        </el-row> -->
+        <!-- <el-divider content-position="left">发票信息</el-divider>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="发票号码:" prop="ticketNo" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.ticketNo" class="filter-item"  readonly disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="实开金额(元):" prop="realAmount" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.realAmount" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+         
         </el-row>
-        <el-divider content-position="left">发票信息</el-divider>
         <el-row>
-          <el-col :xs="24" :sm="12" :lg="6" :span="6">
-            <el-form-item label="开票项目:" prop="makeItem" label-width="140px" class="postInfo-container-item">
-              <el-input v-model.trim="invoice.makeItem" class="filter-item" />
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="申请日期:" prop="created" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.created" class="filter-item" readonly disabled/>
             </el-form-item>
           </el-col>
-          <el-col :xs="24" :sm="12" :lg="6" :span="6">
-            <el-form-item label="项目数量:" prop="itemQuantity" label-width="140px" class="postInfo-container-item">
-              <el-input v-model.trim="invoice.itemQuantity" class="filter-item" />
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="实开日期:" prop="realMakeDate" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.realMakeDate" class="filter-item" readonly disabled/>
             </el-form-item>
           </el-col>
-          <el-col :xs="24" :sm="12" :lg="6" :span="6">
-            <el-form-item label="计量单位:" prop="itemUnit" label-width="140px" class="postInfo-container-item">
-              <el-input v-model.trim="invoice.itemUnit" class="filter-item" placeholder="个/套/箱/次/斤/公斤/..." />
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="订单类型:" prop="businessType" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.businessType" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="开票人:" prop="applyName" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.applyName" class="filter-item" readonly disabled/>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="订单编号:" prop="orderId" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.orderId" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="产品号:" prop="productionNo" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.productionNo" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+        </el-row> -->
+       
+        <!-- <el-row>
           <el-col :xs="24" :sm="12" :lg="6" :span="6">
             <el-form-item label="税点:" prop="taxRate" label-width="140px" class="postInfo-container-item">
               <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="invoice.taxRate" type="number"
@@ -259,14 +331,8 @@
                 type="number" style="width:206px" class="filter-item" />
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row>
-          <el-col :xs="24" :sm="12" :lg="18" :span="6">
-            <el-form-item label="备注:" prop="remark" label-width="140px" class="postInfo-container-item">
-              <el-input v-model.trim="invoice.remark" type="textarea" class="filter-item" />
-            </el-form-item>
-          </el-col>
-        </el-row>
+        </el-row> -->
+       
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button @click="newInvoiceDialog = false">取 消</el-button>
@@ -615,7 +681,10 @@ export default {
         itemUnit: null,
         taxRate: null,
         taxAmount: null,
-        remark: null
+        remark: null,
+        realPayAmount:null,
+        realAmount:null,
+        realMakeDate:null
       },
       outWarehouse: {
         id: null,
@@ -805,7 +874,7 @@ export default {
         }
       })
     },
-    openFinanceInvoiceDialog(orderFundId) {
+    openFinanceInvoiceDialog(orderFundId,realAmount,clientName,clientSubName) {
       if (!orderFundId) {
         this.$notify({
           title: '提示',
@@ -818,6 +887,8 @@ export default {
       this.makeInvoiceListDialog = true;
       if (orderFundId) {
         this.invoice.orderFundId = orderFundId;
+        this.invoice.realPayAmount = realAmount;
+        this.invoice.title = clientName+clientSubName;
         this.getFinanceInvoiceList();
       }
     },

+ 517 - 3
src/views/personal/myOrder.vue

@@ -83,9 +83,11 @@
             {{ row.created }}
           </template>
         </el-table-column>
-        <el-table-column fixed="right" label="操作" width="130" align="center">
+        <el-table-column fixed="right" label="操作" width="200" align="center">
           <template slot-scope="{row}">
             <el-button type="text" size="small" @click="orderDetail(row)">详情</el-button>
+            <el-button type="text" size="small" @click="openShouldAmountDialog(row)">应收款</el-button>
+            <el-button type="text" size="small" @click="openFinanceInvoiceDialog(row.orderFundId,row.realAmount,row.clientName,row.clientSubName)">申请开票</el-button>
             <el-button type="text" size="small" @click="productionList(row.id)">产品包</el-button>
           </template>
         </el-table-column>
@@ -322,6 +324,250 @@
         <el-button type="primary" @click="doApplyOut()">确 定</el-button>
       </span>
     </el-dialog>
+    <el-dialog :visible.sync="shouldAmountDialog" width="35%" center top="35vh" custom-class="doWarehouseClass"
+      @closed="cleanData">
+      <el-form ref="fund" :model="fund" style="margin-left:40px">
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="24" :span="12">
+            <el-form-item label="应收款金额(元):" prop="shouldAmount" label-width="160px" class="postInfo-container-item"
+              :rules="{ required: true, message: '应收款金额不能为空', trigger: 'blur' }">
+              <el-input-number :precision="2" :min="null" :value-on-clear="0" v-model.number="fund.shouldAmount"
+                type="number" style="width:300px" class="filter-item" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="24" :span="12">
+            <el-form-item label="备注:" prop="remark" label-width="160px" class="postInfo-container-item">
+              <el-input style="width:300px" type="textarea" v-model="fund.remark"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="shouldAmountDialog = false">取 消</el-button>
+        <el-button type="primary" @click="saveShouldAmount()">确 定</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog :visible.sync="makeInvoiceListDialog" width="90%" center custom-class="doWarehouseClass">
+      <el-button type="danger" round @click="openNewInvoiceDialog">申请开票</el-button>
+      <div style="margin-top:30px;">
+        <el-table :data="invoiceData" stripe :header-row-style="{ color: '#333333', 'font-size': '14px' }" border
+        style="width: 100%; margin-top:20px;font-size: 14px;">
+          <el-table-column align="center" prop="title" label="发票抬头" width="180">
+          </el-table-column>
+          <el-table-column align="center" prop="taxNo" label="税号" width="180">
+          </el-table-column>
+          <el-table-column align="center" prop="type" label="发票类型">
+          </el-table-column>
+          <el-table-column align="center" prop="state" label="开票状态">
+            <template slot-scope="{row}">
+              <span :style="stateStyle(row.state)">{{ row.state }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="planAmount" label="计划开票金额">
+          </el-table-column>
+          <el-table-column align="center" prop="planMakeDate" label="计划开票日期">
+          </el-table-column>
+          <el-table-column align="center" prop="realAmount" label="实际开票金额">
+          </el-table-column>
+          <el-table-column align="center" prop="realMakeDate" label="实际开票日期">
+          </el-table-column>
+          <el-table-column align="center" prop="reason" label="驳回/作废原因">
+          </el-table-column>
+          <el-table-column align="center" prop="remark" label="备注">
+          </el-table-column>
+          <el-table-column fixed="right" label="操作" width="200" align="center">
+            <template slot-scope="{row}">
+              <el-button v-if="row.state !== '已开票'" @click="invoiceDetail(row.id)" type="text" size="small">修改</el-button>
+              <el-button @click="cancellation(row.id)" type="text" size="small">作废</el-button>
+              <el-button @click="copyInvoice(row)" type="text" size="small">复制</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </el-dialog>
+    <el-dialog :visible.sync="newInvoiceDialog" width="55%" top="10vh" center custom-class="doWarehouseClass"
+      @closed="cleanFinanceInvoiceForm">
+      <el-form ref="invoice" :model="invoice">
+        <el-divider content-position="left">开票信息</el-divider>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="发票抬头:" :rules="{ required: true, message: '发票抬头不能为空', trigger: 'blur' }" prop="title"
+              label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.title" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="发票类型:" :rules="{ required: true, message: '发票类型不能为空', trigger: 'blur' }" prop="type"
+              label-width="140px" class="postInfo-container-item">
+              <el-select v-model="invoice.type" style="width:100%">
+                <el-option label="普票" value="普票"></el-option>
+                <el-option label="专票" value="专票"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="税号:" :rules="{ required: true, message: '税号不能为空', trigger: 'blur' }" prop="taxNo"
+              label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.taxNo" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="计划开票日期:" prop="planMakeDate"
+              :rules="{ required: true, message: '计划开票日期不能为空', trigger: 'blur' }" label-width="140px"
+              class="postInfo-container-item">
+              <el-date-picker v-model="invoice.planMakeDate" type="date" placeholder="选择日期" value-format="yyyy-MM-dd" style="width:100%">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="待开金额(元):" prop="planAmount"
+              :rules="{ required: true, message: '使用权面积不能为空', trigger: 'blur' }" label-width="140px"
+              class="postInfo-container-item">
+              <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="invoice.planAmount"
+                type="number" style="width:100%" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="是否收款:" label-width="140px"
+              class="postInfo-container-item">
+              <el-radio-group :value="invoice.realPayAmount?'已收款':'未收款'">
+                <el-radio label="已收款"></el-radio>
+                <el-radio label="未收款"></el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="开票项目:" prop="makeItem" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.makeItem" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="项目数量:" prop="itemQuantity" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.itemQuantity" class="filter-item" />
+            </el-form-item>
+          </el-col>
+         
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="计量单位:" prop="itemUnit" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.itemUnit" class="filter-item" placeholder="个/套/箱/次/斤/公斤/..." />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="24" :span="6">
+            <el-form-item label="备注:" prop="remark" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.remark" type="textarea" :autosize="{ minRows: 5, maxRows: 8}"  class="filter-item" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <!-- <el-divider content-position="left">银行信息</el-divider>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="开户行:" prop="bankName" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.bankName" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6" :span="6">
+            <el-form-item label="银行账号:" prop="bankAccount" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.bankAccount" class="filter-item" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="地址:" prop="bankAddress" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.bankAddress" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6" :span="6">
+            <el-form-item label="电话:" prop="bankTel" label-width="140px" class="postInfo-container-item">
+              <el-input v-model.trim="invoice.bankTel" class="filter-item" />
+            </el-form-item>
+          </el-col>
+        </el-row> -->
+        <!-- <el-divider content-position="left">发票信息</el-divider>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="发票号码:" prop="ticketNo" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.ticketNo" class="filter-item"  readonly disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="实开金额(元):" prop="realAmount" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.realAmount" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+         
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="申请日期:" prop="created" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.created" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="实开日期:" prop="realMakeDate" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.realMakeDate" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="订单类型:" prop="businessType" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.businessType" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="开票人:" prop="applyName" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.applyName" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="订单编号:" prop="orderId" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.orderId" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="产品号:" prop="productionNo" label-width="140px" class="postInfo-container-item">
+              <el-input :value="invoice.productionNo" class="filter-item" readonly disabled/>
+            </el-form-item>
+          </el-col>
+        </el-row> -->
+       
+        <!-- <el-row>
+          <el-col :xs="24" :sm="12" :lg="6" :span="6">
+            <el-form-item label="税点:" prop="taxRate" label-width="140px" class="postInfo-container-item">
+              <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="invoice.taxRate" type="number"
+                style="width:206px" class="filter-item" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6" :span="6">
+            <el-form-item label="税额:" prop="taxAmount" label-width="140px" class="postInfo-container-item">
+              <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="invoice.taxAmount"
+                type="number" style="width:206px" class="filter-item" />
+            </el-form-item>
+          </el-col>
+        </el-row> -->
+       
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="newInvoiceDialog = false">取 消</el-button>
+        <el-button type="primary" @click="saveInvoice()">确 定</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -372,7 +618,47 @@ export default {
         remark:null,
         realAmount:null
       },
-      outApllyList:[]
+      fund: {
+        id: null,
+        businessType: null,
+        orderName: null,
+        orderId: null,
+        shouldAmount: null,
+        remark: null,
+        businessType: null,
+        businessId: null,
+        businessSubId: null,
+        productionFundId: null,
+        evaluateAmount: null
+      },
+      outApllyList:[],
+      shouldAmountDialog:false,
+      makeInvoiceListDialog:false,
+      invoice: {
+        id: null,
+        orderFundId: null,
+        productionFundId: null,
+        title: null,
+        type: null,
+        taxNo: null,
+        planAmount: null,
+        planMakeDate: null,
+        bankName: null,
+        bankAccount: null,
+        bankAddress: null,
+        bankTel: null,
+        makeItem: null,
+        itemQuantity: null,
+        itemUnit: null,
+        taxRate: null,
+        taxAmount: null,
+        remark: null,
+        realPayAmount:null,
+        realAmount:null,
+        realMakeDate:null
+      },
+      newInvoiceDialog:false,
+      invoiceData: [],
     }
   },
   created() {
@@ -481,7 +767,6 @@ export default {
           let taskRecordDTO = new Object();
           taskRecordDTO.recordId = this.taskId;
           taskRecordDTO.taskData = this.outWarehouse;
-          console.log(this.outWarehouse);
           this.$api.productionOutWarehouse.add(taskRecordDTO).then(res=>{
             if (res.code === 200 && res.data){
               this.$notify({
@@ -554,6 +839,235 @@ export default {
       this.outWarehouse.businessType = 'PERSONAL_BUSINESS';
       this.outWarehouse.businessId = businessId;
       this.outWarehouseDialog = true;
+    },
+    openFinanceInvoiceDialog(orderFundId,realAmount,clientName,clientSubName) {
+      if (!orderFundId) {
+        this.$notify({
+          title: '提示',
+          message: '请先完善应收款,再操作。',
+          type: 'info',
+          duration: 2000
+        });
+        return;
+      }
+      this.makeInvoiceListDialog = true;
+      if (orderFundId) {
+        this.invoice.orderFundId = orderFundId;
+        this.invoice.realPayAmount = realAmount;
+        this.invoice.title = clientName+clientSubName;
+        this.getFinanceInvoiceList();
+      }
+    },
+    openShouldAmountDialog(row) {
+      this.shouldAmountDialog = true;
+      this.fund.id = row.orderFundId;
+      this.fund.businessType = 'PERSONAL_BUSINESS';
+      this.fund.businessId = row.id;
+      this.fund.shouldAmount = row.shouldAmount;
+      this.fund.remark = row.remark;
+      this.fund.orderId = row.orderId;
+      this.fund.orderName = row.orderName;
+    },
+    cleanData() {
+      this.fund.shouldAmount = null;
+      this.fund.id = null;
+      this.fund.businessType = null;
+      this.fund.remark = null;
+      this.fund.businessType = null;
+      this.fund.businessId = null;
+      this.fund.businessSubId = null;
+      this.fund.productionFundId = null;
+      this.fund.remark = null;
+      this.fund.evaluateAmount = null
+    },
+    saveShouldAmount() {
+      this.$refs.fund.validate(valid => {
+        if (valid) {
+          if (this.fund.id) {
+            this.$api.orderFund.edit(this.fund).then(res => {
+              if (res.code === 200 && res.data) {
+                this.$notify({
+                  title: '成功',
+                  message: '订单应收款已完善',
+                  type: 'success',
+                  duration: 1000
+                });
+                this.getPage();
+                this.shouldAmountDialog = false;
+              } else {
+                this.$notify({
+                  title: '失败',
+                  message: '订单应收款保存错误',
+                  type: 'error',
+                  duration: 1000
+                });
+              }
+            })
+          } else {
+            this.$api.orderFund.add(this.fund).then(res => {
+              if (res.code === 200 && res.data) {
+                this.$notify({
+                  title: '成功',
+                  message: '订单应收款已完善',
+                  type: 'success',
+                  duration: 1000
+                });
+                this.getPage();
+                this.shouldAmountDialog = false;
+              } else {
+                this.$notify({
+                  title: '失败',
+                  message: '订单应收款保存错误',
+                  type: 'error',
+                  duration: 1000
+                });
+              }
+            })
+          }
+        }
+      })
+    },
+    openNewInvoiceDialog() {
+      if (!this.invoice.orderFundId) {
+        this.$notify({
+          title: '提示',
+          message: '申请开票前,请先完善应收款金额。',
+          type: 'info',
+          duration: 2000
+        });
+        return;
+      } else {
+        this.newInvoiceDialog = true;
+
+      }
+    },
+    getFinanceInvoiceList() {
+      this.$api.financeInvoice.getList(this.invoice.orderFundId,this.invoice.productionFundId).then(res => {
+        if (res.code === 200) {
+          this.invoiceData = res.data
+        }
+      })
+    },
+    cleanFinanceInvoiceForm() {
+      // this.$refs.invoice.resetFields();
+      this.invoice = {
+        id: null,
+        orderFundId: this.invoice.orderFundId,
+        productionFundId: this.invoice.productionFundId,
+        title: null,
+        type: null,
+        taxNo: null,
+        planAmount: null,
+        planMakeDate: null,
+        bankName: null,
+        bankAccount: null,
+        bankAddress: null,
+        bankTel: null,
+        makeItem: null,
+        itemQuantity: null,
+        itemUnit: null,
+        taxRate: null,
+        taxAmount: null,
+        remark: null
+      }
+    },
+    saveInvoice() {
+      this.$refs.invoice.validate(valid => {
+        if (valid) {
+          if (this.invoice.id) {
+            this.$api.financeInvoice.edit(this.invoice).then(res => {
+              if (res.code === 200 && res.data) {
+                this.$notify({
+                  title: '成功',
+                  message: '开票申请修改成功',
+                  type: 'success',
+                  duration: 2000
+                });
+                this.getFinanceInvoiceList();
+                this.newInvoiceDialog = false;
+              } else {
+                this.$notify({
+                  title: '失败',
+                  message: '开票申请修改失败',
+                  type: 'error',
+                  duration: 2000
+                });
+              }
+            })
+          } else {
+            this.$api.financeInvoice.add(this.invoice).then(res => {
+              if (res.code === 200 && res.data) {
+                this.$notify({
+                  title: '成功',
+                  message: '开票申请提交成功',
+                  type: 'success',
+                  duration: 2000
+                });
+                this.getFinanceInvoiceList();
+                this.newInvoiceDialog = false;
+              } else {
+                this.$notify({
+                  title: '失败',
+                  message: '开票申请提交失败',
+                  type: 'error',
+                  duration: 2000
+                });
+              }
+            })
+          }
+        }
+      })
+    },
+    stateStyle(state){
+        if (state==='已开票'){
+          return 'color:green'
+        }else{
+          return 'color:red'
+        }
+    },
+    invoiceDetail(id) {
+      this.$api.financeInvoice.detail(id).then(res => {
+        if (res.code === 200) {
+          this.invoice = res.data;
+        }
+      })
+      this.newInvoiceDialog = true;
+    },
+    cancellation(id) {
+      this.$confirm('请确认是否作废此开票?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+        center: true
+      }).then(() => {
+        this.$api.financeInvoice.cancellation(id).then(res => {
+          if (res.code === 200 && res.data) {
+            this.$notify({
+              title: '成功',
+              message: '开票已作废',
+              type: 'success',
+              duration: 2000
+            });
+            this.getFinanceInvoiceList();
+          } else {
+            this.$notify({
+              title: '失败',
+              message: '开票作废失败',
+              type: 'error',
+              duration: 2000
+            });
+          }
+        })
+      })
+    },
+    copyInvoice(row){
+        this.invoice = row;
+        this.invoice.id = null;
+        this.invoice.state = null;
+        this.invoice.reason = null;
+        this.invoice.created = null;
+        this.invoice.modified = null;
+        this.newInvoiceDialog = true;
     }
   },