|
@@ -12,74 +12,75 @@
|
|
:visible.sync="visible">
|
|
:visible.sync="visible">
|
|
<el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-col :span="24">
|
|
-
|
|
|
|
- <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''" :disabled="method === 'view'"
|
|
|
|
|
|
+ <el-tabs v-model="activeNameTop" type="border-card" @tab-click="tabHandleClickTop">
|
|
|
|
+ <el-tab-pane label="项目信息" name="project">
|
|
|
|
+ <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''" :disabled="method === 'view'"
|
|
label-width="135px" @submit.native.prevent>
|
|
label-width="135px" @submit.native.prevent>
|
|
- <el-divider v-if="commonJS.isNotEmpty(inputForm.contractId) && method === 'view'" content-position="left">
|
|
|
|
- <el-link type="primary" :underline="false" icon="el-icon-document" @click="viewContract(inputForm.contractId)"><b>查看合同详情</b></el-link>
|
|
|
|
- </el-divider>
|
|
|
|
- <el-divider v-else content-position="left"><i class="el-icon-document"></i> 选择合同</el-divider>
|
|
|
|
- <el-row :gutter="15">
|
|
|
|
- <el-col :span="24">
|
|
|
|
- <el-form-item label="合同名称" prop="contractName"
|
|
|
|
- :rules="[
|
|
|
|
|
|
+ <el-divider v-if="commonJS.isNotEmpty(inputForm.contractId) && method === 'view'" content-position="left">
|
|
|
|
+ <el-link type="primary" :underline="false" icon="el-icon-document" @click="viewContract(inputForm.contractId)"><b>查看合同详情</b></el-link>
|
|
|
|
+ </el-divider>
|
|
|
|
+ <el-divider v-else content-position="left"><i class="el-icon-document"></i> 选择合同</el-divider>
|
|
|
|
+ <el-row :gutter="15">
|
|
|
|
+ <el-col :span="24">
|
|
|
|
+ <el-form-item label="合同名称" prop="contractName"
|
|
|
|
+ :rules="[
|
|
]">
|
|
]">
|
|
- <el-input size="medium" :readonly="true" @focus="openContract()" v-model="inputForm.contractName" placeholder="请选择合同">
|
|
|
|
- <el-button slot="append" icon="el-icon-search" @click="openContract()"></el-button>
|
|
|
|
- </el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="12">
|
|
|
|
- <el-form-item label="合同金额(元)" prop="contractAmount"
|
|
|
|
- :rules="[
|
|
|
|
|
|
+ <el-input size="medium" :readonly="true" @focus="openContract()" v-model="inputForm.contractName" placeholder="请选择合同">
|
|
|
|
+ <el-button slot="append" icon="el-icon-search" @click="openContract()"></el-button>
|
|
|
|
+ </el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <el-form-item label="合同金额(元)" prop="contractAmount"
|
|
|
|
+ :rules="[
|
|
]">
|
|
]">
|
|
- <el-input :disabled="true" v-model="inputForm.contractAmount" placeholder="请填写合同金额"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
-<!-- <el-col :span="12">-->
|
|
|
|
-<!-- <el-form-item label="合同份数" prop="contractNum"-->
|
|
|
|
-<!-- :rules="[-->
|
|
|
|
-<!-- ]">-->
|
|
|
|
-<!-- <el-input :disabled="true" v-model="inputForm.contractNum" placeholder="请填写合同份数"></el-input>-->
|
|
|
|
-<!-- </el-form-item>-->
|
|
|
|
-<!-- </el-col>-->
|
|
|
|
- <el-col :span="12">
|
|
|
|
- <el-form-item label="委托人" prop="clientContactsName"
|
|
|
|
- :rules="[
|
|
|
|
|
|
+ <el-input :disabled="true" v-model="inputForm.contractAmount" placeholder="请填写合同金额"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <!-- <el-col :span="12">-->
|
|
|
|
+ <!-- <el-form-item label="合同份数" prop="contractNum"-->
|
|
|
|
+ <!-- :rules="[-->
|
|
|
|
+ <!-- ]">-->
|
|
|
|
+ <!-- <el-input :disabled="true" v-model="inputForm.contractNum" placeholder="请填写合同份数"></el-input>-->
|
|
|
|
+ <!-- </el-form-item>-->
|
|
|
|
+ <!-- </el-col>-->
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <el-form-item label="委托人" prop="clientContactsName"
|
|
|
|
+ :rules="[
|
|
]">
|
|
]">
|
|
- <el-input :disabled="true" v-model="inputForm.clientContactsName" placeholder="请填写委托人"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="12">
|
|
|
|
- <el-form-item label="付款主体" prop="payerSubject"
|
|
|
|
- :rules="[
|
|
|
|
|
|
+ <el-input :disabled="true" v-model="inputForm.clientContactsName" placeholder="请填写委托人"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <el-form-item label="付款主体" prop="payerSubject"
|
|
|
|
+ :rules="[
|
|
]">
|
|
]">
|
|
- <el-select :disabled="true" v-model="inputForm.payerSubject" placeholder="请选择付款主体" style="width:100%;">
|
|
|
|
- <el-option
|
|
|
|
- v-for="item in $dictUtils.getDictList('cw_payment_subject')"
|
|
|
|
- :key="item.value"
|
|
|
|
- :label="item.label"
|
|
|
|
- :value="item.value">
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="12">
|
|
|
|
- <el-form-item label="付款方式" prop="paymentMethod"
|
|
|
|
- :rules="[
|
|
|
|
|
|
+ <el-select :disabled="true" v-model="inputForm.payerSubject" placeholder="请选择付款主体" style="width:100%;">
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in $dictUtils.getDictList('cw_payment_subject')"
|
|
|
|
+ :key="item.value"
|
|
|
|
+ :label="item.label"
|
|
|
|
+ :value="item.value">
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <el-form-item label="付款方式" prop="paymentMethod"
|
|
|
|
+ :rules="[
|
|
]">
|
|
]">
|
|
- <el-select :disabled="true" v-model="inputForm.paymentMethod" placeholder="请选择付款方式" style="width:100%;">
|
|
|
|
- <el-option
|
|
|
|
- v-for="item in $dictUtils.getDictList('cw_payment_method')"
|
|
|
|
- :key="item.value"
|
|
|
|
- :label="item.label"
|
|
|
|
- :value="item.value">
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- </el-row>
|
|
|
|
- <el-divider content-position="left"><i class="el-icon-document"></i> 项目信息</el-divider>
|
|
|
|
|
|
+ <el-select :disabled="true" v-model="inputForm.paymentMethod" placeholder="请选择付款方式" style="width:100%;">
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in $dictUtils.getDictList('cw_payment_method')"
|
|
|
|
+ :key="item.value"
|
|
|
|
+ :label="item.label"
|
|
|
|
+ :value="item.value">
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-divider content-position="left"><i class="el-icon-document"></i> 项目信息</el-divider>
|
|
<el-row :gutter="15">
|
|
<el-row :gutter="15">
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
<el-form-item label="项目名称" prop="projectName"
|
|
<el-form-item label="项目名称" prop="projectName"
|
|
@@ -150,7 +151,7 @@
|
|
:min="0"
|
|
:min="0"
|
|
placeholder="请填写项目金额"
|
|
placeholder="请填写项目金额"
|
|
:controls="false"
|
|
:controls="false"
|
|
- >
|
|
|
|
|
|
+ >
|
|
</el-input-number>
|
|
</el-input-number>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
@@ -165,42 +166,42 @@
|
|
placeholder="选择评审计期间"
|
|
placeholder="选择评审计期间"
|
|
style="width:100%"
|
|
style="width:100%"
|
|
placement="bottom-start"
|
|
placement="bottom-start"
|
|
- >
|
|
|
|
|
|
+ >
|
|
</el-date-picker>
|
|
</el-date-picker>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
-<!-- <el-col :span="12">-->
|
|
|
|
-<!-- <el-form-item label="项目预计开始时间" prop="planStartDate"-->
|
|
|
|
-<!-- :rules="[-->
|
|
|
|
-<!-- {required: true, message:'项目预计开始时间不能为空', trigger:'blur'}-->
|
|
|
|
-<!-- ]">-->
|
|
|
|
-<!-- <el-date-picker-->
|
|
|
|
-<!-- v-model="inputForm.planStartDate"-->
|
|
|
|
-<!-- type="date"-->
|
|
|
|
-<!-- value-format="yyyy-MM-dd"-->
|
|
|
|
-<!-- placeholder="选择项目预计开始时间"-->
|
|
|
|
-<!-- style="width:100%"-->
|
|
|
|
-<!-- placement="bottom-start"-->
|
|
|
|
-<!-- >-->
|
|
|
|
-<!-- </el-date-picker>-->
|
|
|
|
-<!-- </el-form-item>-->
|
|
|
|
-<!-- </el-col>-->
|
|
|
|
-<!-- <el-col :span="12">-->
|
|
|
|
-<!-- <el-form-item label="项目预计结束时间" prop="planEndDate"-->
|
|
|
|
-<!-- :rules="[-->
|
|
|
|
-<!-- {required: true, message:'项目预计结束时间不能为空', trigger:'blur'}-->
|
|
|
|
-<!-- ]">-->
|
|
|
|
-<!-- <el-date-picker-->
|
|
|
|
-<!-- v-model="inputForm.planEndDate"-->
|
|
|
|
-<!-- type="date"-->
|
|
|
|
-<!-- value-format="yyyy-MM-dd"-->
|
|
|
|
-<!-- placeholder="选择项目预计结束时间"-->
|
|
|
|
-<!-- style="width:100%"-->
|
|
|
|
-<!-- placement="bottom-start"-->
|
|
|
|
-<!-- >-->
|
|
|
|
-<!-- </el-date-picker>-->
|
|
|
|
-<!-- </el-form-item>-->
|
|
|
|
-<!-- </el-col>-->
|
|
|
|
|
|
+ <!-- <el-col :span="12">-->
|
|
|
|
+ <!-- <el-form-item label="项目预计开始时间" prop="planStartDate"-->
|
|
|
|
+ <!-- :rules="[-->
|
|
|
|
+ <!-- {required: true, message:'项目预计开始时间不能为空', trigger:'blur'}-->
|
|
|
|
+ <!-- ]">-->
|
|
|
|
+ <!-- <el-date-picker-->
|
|
|
|
+ <!-- v-model="inputForm.planStartDate"-->
|
|
|
|
+ <!-- type="date"-->
|
|
|
|
+ <!-- value-format="yyyy-MM-dd"-->
|
|
|
|
+ <!-- placeholder="选择项目预计开始时间"-->
|
|
|
|
+ <!-- style="width:100%"-->
|
|
|
|
+ <!-- placement="bottom-start"-->
|
|
|
|
+ <!-- >-->
|
|
|
|
+ <!-- </el-date-picker>-->
|
|
|
|
+ <!-- </el-form-item>-->
|
|
|
|
+ <!-- </el-col>-->
|
|
|
|
+ <!-- <el-col :span="12">-->
|
|
|
|
+ <!-- <el-form-item label="项目预计结束时间" prop="planEndDate"-->
|
|
|
|
+ <!-- :rules="[-->
|
|
|
|
+ <!-- {required: true, message:'项目预计结束时间不能为空', trigger:'blur'}-->
|
|
|
|
+ <!-- ]">-->
|
|
|
|
+ <!-- <el-date-picker-->
|
|
|
|
+ <!-- v-model="inputForm.planEndDate"-->
|
|
|
|
+ <!-- type="date"-->
|
|
|
|
+ <!-- value-format="yyyy-MM-dd"-->
|
|
|
|
+ <!-- placeholder="选择项目预计结束时间"-->
|
|
|
|
+ <!-- style="width:100%"-->
|
|
|
|
+ <!-- placement="bottom-start"-->
|
|
|
|
+ <!-- >-->
|
|
|
|
+ <!-- </el-date-picker>-->
|
|
|
|
+ <!-- </el-form-item>-->
|
|
|
|
+ <!-- </el-col>-->
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
<el-form-item label="项目预计时间" prop="planDate"
|
|
<el-form-item label="项目预计时间" prop="planDate"
|
|
:rules="[
|
|
:rules="[
|
|
@@ -259,59 +260,112 @@
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
</el-form>
|
|
</el-form>
|
|
- <el-tabs v-model="activeName" type="border-card" @tab-click="tabHandleClick">
|
|
|
|
- <el-tab-pane label="被服务单位" name="client">
|
|
|
|
- <el-row :gutter="15">
|
|
|
|
- <el-button type="info" style="margin-bottom: 15px" size="mini" :disabled="method === 'view'" @click="openWorkClient">
|
|
|
|
- 新增被服务单位
|
|
|
|
- </el-button>
|
|
|
|
- </el-row>
|
|
|
|
- <el-row :gutter="15">
|
|
|
|
- <el-form :disabled="method === 'view'">
|
|
|
|
- <vxe-table
|
|
|
|
- border
|
|
|
|
- show-overflow
|
|
|
|
- show-footer
|
|
|
|
- :column-config="{resizable: true}"
|
|
|
|
- ref="clientTable"
|
|
|
|
- :key="tableKeyClient"
|
|
|
|
- class="vxe-table-element"
|
|
|
|
- :data="inputForm.cwProjectClientInfoDTOList"
|
|
|
|
- style=""
|
|
|
|
- @cell-click=""
|
|
|
|
- @edit-closed=""
|
|
|
|
- highlight-current-row
|
|
|
|
- :edit-config="{trigger: 'click', mode: 'row', showStatus: false, autoClear: false}"
|
|
|
|
- >
|
|
|
|
- <vxe-table-column align="center" field="no" title="客户编号" :edit-render="{}">
|
|
|
|
- <template v-slot:edit="scope">
|
|
|
|
- <el-input :readonly="true" v-model="scope.row.no" placeholder="客户编号" clearable></el-input>
|
|
|
|
- </template>
|
|
|
|
- </vxe-table-column>
|
|
|
|
- <vxe-table-column align="center" field="name" title="客户名称" :edit-render="{}">
|
|
|
|
- <template v-slot:edit="scope">
|
|
|
|
- <el-input :readonly="true" v-model="scope.row.name" placeholder="客户名称" clearable></el-input>
|
|
|
|
- </template>
|
|
|
|
- </vxe-table-column>
|
|
|
|
-<!-- <vxe-table-column align="center" field="companyLevel" title="层级" :edit-render="{}">-->
|
|
|
|
-<!-- <template v-slot:edit="scope">-->
|
|
|
|
-<!-- <el-input :readonly="true" v-model="scope.row.companyLevel" placeholder="层级" clearable></el-input>-->
|
|
|
|
-<!-- </template>-->
|
|
|
|
-<!-- </vxe-table-column>-->
|
|
|
|
- <vxe-table-column align="center" title="操作" width="100">
|
|
|
|
- <template v-slot="scope">
|
|
|
|
- <el-button size="mini" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'client')">删除</el-button>
|
|
|
|
- </template>
|
|
|
|
- </vxe-table-column>
|
|
|
|
- </vxe-table>
|
|
|
|
- </el-form>
|
|
|
|
- </el-row>
|
|
|
|
- </el-tab-pane>
|
|
|
|
- <el-tab-pane label="附件" name="files">
|
|
|
|
- <!-- 附件-->
|
|
|
|
- <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
|
|
|
|
|
|
+ <el-tabs v-model="activeName" type="border-card" @tab-click="tabHandleClick">
|
|
|
|
+ <el-tab-pane label="被服务单位" name="client">
|
|
|
|
+ <el-row :gutter="15">
|
|
|
|
+ <el-button type="info" style="margin-bottom: 15px" size="mini" :disabled="method === 'view'" @click="openWorkClient">
|
|
|
|
+ 新增被服务单位
|
|
|
|
+ </el-button>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row :gutter="15">
|
|
|
|
+ <el-form :disabled="method === 'view'">
|
|
|
|
+ <vxe-table
|
|
|
|
+ border
|
|
|
|
+ show-overflow
|
|
|
|
+ show-footer
|
|
|
|
+ :column-config="{resizable: true}"
|
|
|
|
+ ref="clientTable"
|
|
|
|
+ :key="tableKeyClient"
|
|
|
|
+ class="vxe-table-element"
|
|
|
|
+ :data="inputForm.cwProjectClientInfoDTOList"
|
|
|
|
+ style=""
|
|
|
|
+ @cell-click=""
|
|
|
|
+ @edit-closed=""
|
|
|
|
+ highlight-current-row
|
|
|
|
+ :edit-config="{trigger: 'click', mode: 'row', showStatus: false, autoClear: false}"
|
|
|
|
+ >
|
|
|
|
+ <vxe-table-column align="center" field="no" title="客户编号" :edit-render="{}">
|
|
|
|
+ <template v-slot:edit="scope">
|
|
|
|
+ <el-input :readonly="true" v-model="scope.row.no" placeholder="客户编号" clearable></el-input>
|
|
|
|
+ </template>
|
|
|
|
+ </vxe-table-column>
|
|
|
|
+ <vxe-table-column align="center" field="name" title="客户名称" :edit-render="{}">
|
|
|
|
+ <template v-slot:edit="scope">
|
|
|
|
+ <el-input :readonly="true" v-model="scope.row.name" placeholder="客户名称" clearable></el-input>
|
|
|
|
+ </template>
|
|
|
|
+ </vxe-table-column>
|
|
|
|
+ <!-- <vxe-table-column align="center" field="companyLevel" title="层级" :edit-render="{}">-->
|
|
|
|
+ <!-- <template v-slot:edit="scope">-->
|
|
|
|
+ <!-- <el-input :readonly="true" v-model="scope.row.companyLevel" placeholder="层级" clearable></el-input>-->
|
|
|
|
+ <!-- </template>-->
|
|
|
|
+ <!-- </vxe-table-column>-->
|
|
|
|
+ <vxe-table-column align="center" title="操作" width="100">
|
|
|
|
+ <template v-slot="scope">
|
|
|
|
+ <el-button size="mini" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'client')">删除</el-button>
|
|
|
|
+ </template>
|
|
|
|
+ </vxe-table-column>
|
|
|
|
+ </vxe-table>
|
|
|
|
+ </el-form>
|
|
|
|
+ </el-row>
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ <el-tab-pane label="附件" name="files">
|
|
|
|
+ <!-- 附件-->
|
|
|
|
+ <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+
|
|
|
|
+ </el-tabs>
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
|
+ <el-tab-pane label="关联发票" name="invoice">
|
|
|
|
+ <el-form size="small" :inline="true" class="query-form" style="margin-bottom: 0;padding-top: 2px;padding-left: 0" ref="invoiceForm" :model="invoiceForm" @keyup.enter.native="searchInvoice()" @submit.native.prevent>
|
|
|
|
+ <!-- 搜索框-->
|
|
|
|
+ <el-form-item label="发票申请编号" prop="no">
|
|
|
|
+ <el-input size="small" v-model="invoiceForm.no" placeholder="请输入发票申请编号" clearable></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <el-button type="primary" @click="searchInvoice()" size="small" icon="el-icon-search">查询</el-button>
|
|
|
|
+ <el-button @click="refreshInvoiceForm()" size="small" icon="el-icon-refresh-right">重置</el-button>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <vxe-table
|
|
|
|
+ max-height="500"
|
|
|
|
+ border="inner"
|
|
|
|
+ auto-resize
|
|
|
|
+ resizable
|
|
|
|
+ height="auto"
|
|
|
|
+ :loading="loading"
|
|
|
|
+ size="medium"
|
|
|
|
+ ref="invoiceTable"
|
|
|
|
+ show-header-overflow
|
|
|
|
+ show-overflow
|
|
|
|
+ highlight-hover-row
|
|
|
|
+ :menu-config="{}"
|
|
|
|
+ @sort-change=""
|
|
|
|
+ :sort-config="{remote:true}"
|
|
|
|
+ :data="invoiceList"
|
|
|
|
+ :checkbox-config="{}">
|
|
|
|
+ <vxe-column type="seq" width="60" title="序号"></vxe-column>
|
|
|
|
+ <vxe-column min-width="150" title="发票申请编号"align="center" field="no">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <el-link type="primary" :underline="false" @click="viewInvoice(false, scope.row.id)">{{scope.row.no}}</el-link>
|
|
|
|
+ </template>
|
|
|
|
+ </vxe-column>
|
|
|
|
+ <vxe-column min-width="150" title="发票号"align="center" field="number"></vxe-column>
|
|
|
|
+ <vxe-column min-width="150" title="实际开票单位"align="center" field="billingWorkplaceReal"></vxe-column>
|
|
|
|
+ <vxe-column min-width="150" title="开票金额(元)"align="center" field="accountDetail"></vxe-column>
|
|
|
|
+ <vxe-column min-width="150" title="开票总金额(元)"align="center" field="account"></vxe-column>
|
|
|
|
+ <vxe-column min-width="120" title="开票内容"align="center" field="billingContent">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ {{$dictUtils.getDictLabel('invoice_billing_content', scope.row.billingContent, '-')}}
|
|
|
|
+ </template>
|
|
|
|
+ </vxe-column>
|
|
|
|
+ <vxe-column min-width="110" fixed="right"align="center" title="是否收款" field="receivablesStatus">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ {{scope.row.receivablesStatus === '1'?'已收款':'未收款'}}
|
|
|
|
+ </template>
|
|
|
|
+ </vxe-column>
|
|
|
|
+ </vxe-table>
|
|
|
|
+ </el-tab-pane>
|
|
</el-tabs>
|
|
</el-tabs>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
@@ -320,9 +374,10 @@
|
|
<el-button size="small" v-if="method === 'edit'" type="primary" icon="el-icon-circle-check" @click="doSubmit('save')">确定</el-button>
|
|
<el-button size="small" v-if="method === 'edit'" type="primary" icon="el-icon-circle-check" @click="doSubmit('save')">确定</el-button>
|
|
</span>
|
|
</span>
|
|
<WorkContractChooseCom ref="workContractChooseCom" @getContract="getContract"></WorkContractChooseCom>
|
|
<WorkContractChooseCom ref="workContractChooseCom" @getContract="getContract"></WorkContractChooseCom>
|
|
- <WorkClientChooseForm ref="workClientChooseForm" @getWorkClientChoose="getWorkClientChoose"></WorkClientChooseForm>
|
|
|
|
|
|
+ <WorkClientChooseForm ref="workClientChooseForm" @getWorkClientChoose="getWorkClientChoose"></WorkClientChooseForm>
|
|
<CwProjectBusinessTypeListForm ref="cwProjectBusinessTypeListForm" @getBusinessType="getBusinessType"></CwProjectBusinessTypeListForm>
|
|
<CwProjectBusinessTypeListForm ref="cwProjectBusinessTypeListForm" @getBusinessType="getBusinessType"></CwProjectBusinessTypeListForm>
|
|
<ContractNameForm ref="contractNameForm"></ContractNameForm>
|
|
<ContractNameForm ref="contractNameForm"></ContractNameForm>
|
|
|
|
+ <InvoiceForm ref="invoiceFormDialog"></InvoiceForm>
|
|
|
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
</div>
|
|
</div>
|
|
@@ -341,6 +396,7 @@
|
|
import ContractNameForm from '../workContract/ContractNameForm'
|
|
import ContractNameForm from '../workContract/ContractNameForm'
|
|
import WorkClientService from '@/api/cw/workClientInfo/WorkClientService'
|
|
import WorkClientService from '@/api/cw/workClientInfo/WorkClientService'
|
|
import ContractInfoService from '@/api/cw/workContract/ContractInfoService'
|
|
import ContractInfoService from '@/api/cw/workContract/ContractInfoService'
|
|
|
|
+ import CwFinanceInvoiceService from '@/api/cw/invoice/CwFinanceInvoiceService'
|
|
export default {
|
|
export default {
|
|
props: {
|
|
props: {
|
|
businessId: {
|
|
businessId: {
|
|
@@ -398,20 +454,27 @@
|
|
},
|
|
},
|
|
keyWatch: '',
|
|
keyWatch: '',
|
|
activeName: 'client',
|
|
activeName: 'client',
|
|
|
|
+ activeNameTop: 'project',
|
|
tableKey: '',
|
|
tableKey: '',
|
|
tableKeyClient: '1',
|
|
tableKeyClient: '1',
|
|
- visible: false
|
|
|
|
|
|
+ visible: false,
|
|
|
|
+ invoiceList: [],
|
|
|
|
+ invoiceForm: {
|
|
|
|
+ no: ''
|
|
|
|
+ }
|
|
}
|
|
}
|
|
},
|
|
},
|
|
projectRecordsService: null,
|
|
projectRecordsService: null,
|
|
enterpriseSearchService: null,
|
|
enterpriseSearchService: null,
|
|
workClientService: null,
|
|
workClientService: null,
|
|
contractInfoService: null,
|
|
contractInfoService: null,
|
|
|
|
+ cwFinanceInvoiceService: null,
|
|
created () {
|
|
created () {
|
|
this.enterpriseSearchService = new EnterpriseSearchService()
|
|
this.enterpriseSearchService = new EnterpriseSearchService()
|
|
this.projectRecordsService = new ProjectRecordsService()
|
|
this.projectRecordsService = new ProjectRecordsService()
|
|
this.workClientService = new WorkClientService()
|
|
this.workClientService = new WorkClientService()
|
|
this.contractInfoService = new ContractInfoService()
|
|
this.contractInfoService = new ContractInfoService()
|
|
|
|
+ this.cwFinanceInvoiceService = new CwFinanceInvoiceService()
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
bus: {
|
|
bus: {
|
|
@@ -445,7 +508,8 @@
|
|
WorkClientChooseForm,
|
|
WorkClientChooseForm,
|
|
WorkContractChooseCom,
|
|
WorkContractChooseCom,
|
|
CwProjectBusinessTypeListForm,
|
|
CwProjectBusinessTypeListForm,
|
|
- ContractNameForm
|
|
|
|
|
|
+ ContractNameForm,
|
|
|
|
+ InvoiceForm: () => import('../invoice/InvoiceForm')
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
getKeyWatch (keyWatch) {
|
|
getKeyWatch (keyWatch) {
|
|
@@ -464,6 +528,7 @@
|
|
this.method = 'view'
|
|
this.method = 'view'
|
|
}
|
|
}
|
|
this.activeName = 'client'
|
|
this.activeName = 'client'
|
|
|
|
+ this.activeNameTop = 'project'
|
|
this.projectRecordsService = new ProjectRecordsService()
|
|
this.projectRecordsService = new ProjectRecordsService()
|
|
this.inputForm = {
|
|
this.inputForm = {
|
|
id: '',
|
|
id: '',
|
|
@@ -537,6 +602,39 @@
|
|
if (this.commonJS.isEmpty(this.inputForm.projectMoney)) {
|
|
if (this.commonJS.isEmpty(this.inputForm.projectMoney)) {
|
|
this.inputForm.projectMoney = 0
|
|
this.inputForm.projectMoney = 0
|
|
}
|
|
}
|
|
|
|
+ this.cwFinanceInvoiceService.getByIds(this.inputForm.id, this.invoiceForm).then(({data}) => {
|
|
|
|
+ let _this = this
|
|
|
|
+ let _data = data
|
|
|
|
+ const wait = function () {
|
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
|
+ _this.invoiceList = _data
|
|
|
|
+ resolve()
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ wait().then(() => {
|
|
|
|
+ this.invoiceList.forEach(item => {
|
|
|
|
+ item.account = parseFloat(item.account).toFixed(2)
|
|
|
|
+ if (!this.commonJS.isEmpty(item.financeInvoiceDetailDTOList)) {
|
|
|
|
+ item.accountDetail = 0
|
|
|
|
+ let num = ''
|
|
|
|
+ item.financeInvoiceDetailDTOList.forEach((detail, index) => {
|
|
|
|
+ if (!this.commonJS.isEmpty(detail.account)) {
|
|
|
|
+ item.accountDetail = parseFloat(parseFloat(item.accountDetail) + parseFloat(detail.account)).toFixed(2)
|
|
|
|
+ }
|
|
|
|
+ if ((index + 1) !== item.financeInvoiceDetailDTOList.length) {
|
|
|
|
+ num = num + detail.number + ','
|
|
|
|
+ } else {
|
|
|
|
+ num = num + detail.number
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ item.number = num
|
|
|
|
+ } else {
|
|
|
|
+ item.number = ''
|
|
|
|
+ item.accountDetail = ''
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ })
|
|
this.loading = false
|
|
this.loading = false
|
|
})
|
|
})
|
|
})
|
|
})
|
|
@@ -681,6 +779,9 @@
|
|
tabHandleClick (event) {
|
|
tabHandleClick (event) {
|
|
// console.log(event)
|
|
// console.log(event)
|
|
},
|
|
},
|
|
|
|
+ tabHandleClickTop (event) {
|
|
|
|
+ // console.log(event)
|
|
|
|
+ },
|
|
// 新增
|
|
// 新增
|
|
// eslint-disable-next-line no-dupe-keys
|
|
// eslint-disable-next-line no-dupe-keys
|
|
insertEvent (type) {
|
|
insertEvent (type) {
|
|
@@ -811,6 +912,52 @@
|
|
// 查看合同详情
|
|
// 查看合同详情
|
|
viewContract (id) {
|
|
viewContract (id) {
|
|
this.$refs.contractNameForm.init('view', id)
|
|
this.$refs.contractNameForm.init('view', id)
|
|
|
|
+ },
|
|
|
|
+ searchInvoice () {
|
|
|
|
+ this.loading = true
|
|
|
|
+ this.cwFinanceInvoiceService.getByIds(this.inputForm.id, this.invoiceForm).then(({data}) => {
|
|
|
|
+ let _this = this
|
|
|
|
+ let _data = data
|
|
|
|
+ const wait = function () {
|
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
|
+ _this.invoiceList = _data
|
|
|
|
+ resolve()
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ wait().then(() => {
|
|
|
|
+ this.invoiceList.forEach(item => {
|
|
|
|
+ item.account = parseFloat(item.account).toFixed(2)
|
|
|
|
+ if (!this.commonJS.isEmpty(item.financeInvoiceDetailDTOList)) {
|
|
|
|
+ item.accountDetail = 0
|
|
|
|
+ let num = ''
|
|
|
|
+ item.financeInvoiceDetailDTOList.forEach((detail, index) => {
|
|
|
|
+ if (!this.commonJS.isEmpty(detail.account)) {
|
|
|
|
+ item.accountDetail = parseFloat(parseFloat(item.accountDetail) + parseFloat(detail.account)).toFixed(2)
|
|
|
|
+ }
|
|
|
|
+ if ((index + 1) !== item.financeInvoiceDetailDTOList.length) {
|
|
|
|
+ num = num + detail.number + ','
|
|
|
|
+ } else {
|
|
|
|
+ num = num + detail.number
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ item.number = num
|
|
|
|
+ } else {
|
|
|
|
+ item.number = ''
|
|
|
|
+ item.accountDetail = ''
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ this.loading = false
|
|
|
|
+ }).catch(() => {
|
|
|
|
+ this.loading = false
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ refreshInvoiceForm () {
|
|
|
|
+ this.$refs.invoiceForm.resetFields()
|
|
|
|
+ this.searchInvoice()
|
|
|
|
+ },
|
|
|
|
+ viewInvoice (flag, id) {
|
|
|
|
+ this.$refs.invoiceFormDialog.init(flag, id)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|