Commit 20733794 by 谢明辉

s

1 parent 8a430ca7
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div> <div>
<!-- 合同基本信息开始~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- 合同基本信息开始~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<el-card class="box-card"> <el-card class="box-card" :name="1">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span style="font-size:24px" @click="contract_show =!contract_show">合同基本信息</span> <span style="font-size:24px" @click="contract_show =!contract_show">合同基本信息</span>
<el-button style="float: right; padding: 8px 0" type="text" @click="form_submit('form')">提交</el-button> <el-button style="float: right; padding: 8px 0" type="text" @click="form_submit('form')">提交</el-button>
...@@ -10,10 +10,10 @@ ...@@ -10,10 +10,10 @@
<transition name="el-fade-in-linear"> <transition name="el-fade-in-linear">
<el-form id="form" :inline="true" :model="form" class="demo-form-inline" label-width="100px" :rules="add_rules" v-show="contract_show"> <el-form id="form" :inline="true" :model="form" class="demo-form-inline" label-width="100px" :rules="add_rules" v-show="contract_show">
<el-row> <el-row style="text-align:left">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="合同编号"> <el-form-item label="合同编号">
<el-select class="width-220" v-model="form.contract_unid" filterable remote reserve-keyword placeholder="合同编号" :remote-method="contractIdRemoteMethod"> <el-select class="width-220" v-model="form.contract_unid" clearable filterable remote reserve-keyword placeholder="合同编号" :remote-method="contractIdRemoteMethod" @change="get_contract_info(form.contract_unid)">
<el-option v-for="(item,index) in contract_unid_selected_data" :key="index" :label="item" :value="item"> <el-option v-for="(item,index) in contract_unid_selected_data" :key="index" :label="item" :value="item">
</el-option> </el-option>
</el-select> </el-select>
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="销售员"> <el-form-item label="销售员">
<el-select class="width-220" v-model="form.salesperson_unid" filterable remote placeholder="销售人员" :remote-method="salespersonIdRemoteMethod"> <el-select class="width-220" v-model="form.salesperson_unid" clearable filterable remote placeholder="销售人员" :remote-method="salespersonIdRemoteMethod">
<el-option v-for="(item,index) in salesperson_unid_selected_data" :key="index" :label="item.name" :value="item.code_unid"> <el-option v-for="(item,index) in salesperson_unid_selected_data" :key="index" :label="item.name" :value="item.code_unid">
</el-option> </el-option>
</el-select> </el-select>
...@@ -29,33 +29,33 @@ ...@@ -29,33 +29,33 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目名称"> <el-form-item label="项目名称">
<el-select class="width-220" v-model="form.project_unid" filterable remote placeholder="项目名称" :remote-method="projectIdRemoteMethod"> <el-select class="width-220" v-model="form.project_unid" clearable filterable remote placeholder="项目名称" :remote-method="projectIdRemoteMethod">
<el-option v-for="(item,index) in project_unid_selected_data" :key="index" :label="item.project_name" :value="item.project_unid"> <el-option v-for="(item,index) in project_unid_selected_data" :key="index" :label="item.project_name" :value="item.project_unid">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row style="text-align:left">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="客户名称"> <el-form-item label="客户名称">
<el-select class="width-220" v-model="form.customer_unid" filterable remote placeholder="客户名称" :remote-method="customerIdRemoteMethod"> <el-select class="width-220" v-model="form.customer_unid" clearable filterable remote placeholder="客户名称" :remote-method="customerIdRemoteMethod">
<el-option v-for="(item,index) in customer_unid_selected_data" :key="index" :label="item.name" :value="index"> <el-option v-for="(item,index) in customer_unid_selected_data" :key="item.customer_unid" :label="item.customer_name" :value="item.customer_unid">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目所在地"> <el-form-item label="项目所在地">
<el-select style="width:100px" v-model="form.province" placeholder="省" @change="get_cities()"> <el-select style="width:100px" v-model="form.province" clearable placeholder="省" @change="get_cities()">
<el-option v-for="(item,index) in provinces" :key="index" :label="item.name" :value="item.province_unid"> <el-option v-for="(item,index) in provinces" :key="index" :label="item.name" :value="item.province_unid">
</el-option> </el-option>
</el-select> </el-select>
<el-select style="width:100px" v-model="form.city" placeholder="市" @change="get_counties()"> <el-select style="width:100px" v-model="form.city" clearable placeholder="市" @change="get_counties()">
<el-option v-for="(item,index) in cities" :key="index" :label="item.name" :value="item.city_unid"> <el-option v-for="(item,index) in cities" :key="index" :label="item.name" :value="item.city_unid">
</el-option> </el-option>
</el-select> </el-select>
<el-select style="width:100px" v-model="form.county" placeholder="区县"> <el-select style="width:100px" v-model="form.county" clearable placeholder="区县">
<el-option v-for="(item,index) in counties" :key="index" :label="item.name" :value="item.county_unid"> <el-option v-for="(item,index) in counties" :key="index" :label="item.name" :value="item.county_unid">
</el-option> </el-option>
</el-select> </el-select>
...@@ -67,28 +67,28 @@ ...@@ -67,28 +67,28 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row style="text-align:left">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="签订日期"> <el-form-item label="签订日期">
<el-date-picker style="width:300px" v-model="form.sign_date" type="date" placeholder="日期" value-format="yyyy-MM-dd" @change="signDataChanged"> <el-date-picker style="width:300px" v-model="form.sign_date" type="date" placeholder="日期" value-format="yyyy-MM-dd">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="所属年份"> <el-form-item label="所属年份">
<el-input class="width-220" v-model="form.year" :disabled="true"></el-input> <el-input class="width-220" v-model="get_year" :disabled="true"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="所属月份"> <el-form-item label="所属月份">
<el-input class="width-220" v-model="form.month" :disabled="true"></el-input> <el-input class="width-220" v-model="get_month" :disabled="true"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row style="text-align:left">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="产品线类型"> <el-form-item label="产品线类型">
<el-select class="width-220" v-model="form.product_line_type" placeholder="产品线类型"> <el-select class="width-220" v-model="form.product_line_type" clearable placeholder="产品线类型">
<el-option v-for="(value,index) in product_line_type_data" :key="index" :label="value" :value="index"> <el-option v-for="(value,index) in product_line_type_data" :key="index" :label="value" :value="index">
</el-option> </el-option>
</el-select> </el-select>
...@@ -96,7 +96,7 @@ ...@@ -96,7 +96,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="合同状态"> <el-form-item label="合同状态">
<el-select class="width-220" v-model="form.contract_state" placeholder="合同状态"> <el-select class="width-220" v-model="form.contract_state" clearable placeholder="合同状态">
<el-option v-for="(value,index) in contract_state_data" :key="index" :label="value" :value="index"> <el-option v-for="(value,index) in contract_state_data" :key="index" :label="value" :value="index">
</el-option> </el-option>
</el-select> </el-select>
...@@ -104,14 +104,14 @@ ...@@ -104,14 +104,14 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="合同性质"> <el-form-item label="合同性质">
<el-select class="width-220" v-model="form.contract_type" placeholder="合同性质"> <el-select class="width-220" v-model="form.contract_type" clearable placeholder="合同性质">
<el-option v-for="(value,index) in contract_type_data" :key="index" :label="value" :value="index"> <el-option v-for="(value,index) in contract_type_data" :key="index" :label="value" :value="index">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row style="text-align:left">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="合同金额" prop="contract_amount"> <el-form-item label="合同金额" prop="contract_amount">
<el-input class="width-220" v-model="form.contract_amount"></el-input> <el-input class="width-220" v-model="form.contract_amount"></el-input>
...@@ -128,7 +128,7 @@ ...@@ -128,7 +128,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row style="text-align:left">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="累计回款额"> <el-form-item label="累计回款额">
<el-input class="width-220" v-model="total_reback_amount" :disabled="true"></el-input> <el-input class="width-220" v-model="total_reback_amount" :disabled="true"></el-input>
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row style="text-align:left">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="合同余额"> <el-form-item label="合同余额">
<el-input class="width-220" v-model="contract_remaining" :disabled="true"></el-input> <el-input class="width-220" v-model="contract_remaining" :disabled="true"></el-input>
...@@ -162,10 +162,10 @@ ...@@ -162,10 +162,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row style="text-align:left">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="合同是否归档"> <el-form-item label="合同是否归档">
<el-select class="width-220" v-model="form.is_archive" placeholder="请选择"> <el-select class="width-220" v-model="form.is_archive" clearable placeholder="请选择">
<el-option label="是" :value="true"></el-option> <el-option label="是" :value="true"></el-option>
<el-option label="否" :value="false"></el-option> <el-option label="否" :value="false"></el-option>
</el-select> </el-select>
...@@ -182,7 +182,7 @@ ...@@ -182,7 +182,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row style="text-align:left">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="累计应收款"> <el-form-item label="累计应收款">
<el-input class="width-220" v-model="total_receive_amount" :disabled="true"></el-input> <el-input class="width-220" v-model="total_receive_amount" :disabled="true"></el-input>
...@@ -199,7 +199,7 @@ ...@@ -199,7 +199,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row style="text-align:left">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="确认收入金额" prop="confirm_income_amount"> <el-form-item label="确认收入金额" prop="confirm_income_amount">
<el-input class="width-220" v-model="form.confirm_income_amount"></el-input> <el-input class="width-220" v-model="form.confirm_income_amount"></el-input>
...@@ -207,23 +207,23 @@ ...@@ -207,23 +207,23 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="账款状态"> <el-form-item label="账款状态">
<el-select class="width-220" v-model="form.amount_state_unid" placeholder="账款状态"> <el-select class="width-220" v-model="form.amount_state_unid" clearable placeholder="账款状态">
<el-option v-for="(value,index) in amount_state_unid_data" :key="index" :label="value" :value="index"> <el-option v-for="(value,index) in amount_state_unid_data" :key="index" :label="value" :value="index">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row style="text-align:left">
<el-col :span="9"> <el-col :span="8">
<el-form-item label="维保服务期"> <el-form-item label="维保服务期">
<el-date-picker v-model="guarantee_date" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" :unlink-panels="true"> <el-date-picker style="width:300px" v-model="guarantee_date" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" :unlink-panels="true">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="15"> <el-col :span="15" style="text-align:left">
<el-form-item label="质保期"> <el-form-item label="质保期">
<el-select v-model="form.mainten_start_point" placeholder="开始节点"> <el-select v-model="form.mainten_start_point" clearable placeholder="开始节点">
<el-option v-for="(value,index) in mainten_start_point_data" :key="index" :label="value" :value="index"> <el-option v-for="(value,index) in mainten_start_point_data" :key="index" :label="value" :value="index">
</el-option> </el-option>
</el-select> </el-select>
...@@ -234,17 +234,19 @@ ...@@ -234,17 +234,19 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row style="text-align:left">
<el-col :span="12"> <el-col :span="8">
<el-form-item label="备注"> <el-form-item label="备注">
<el-input v-model="form.contract_note" type="textarea" :rows="8" style="width:500px"></el-input> <el-input v-model="form.contract_note" type="textarea" :rows="8" style="width:300px"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="9">
<el-upload class="upload-demo" action="" drag multiple :file-list="contract_appendix_list" :http-request="test"> <el-form-item label="上传文件">
<el-upload class="upload-demo" :action="upload_url" drag multiple :file-list="contract_appendix_list" :http-request="contract_upload" :on-remove="on_remove">
<i class="el-icon-upload"></i> <i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或点击上传</div> <div class="el-upload__text">将文件拖到此处,或点击上传</div>
</el-upload> </el-upload>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
...@@ -263,10 +265,10 @@ ...@@ -263,10 +265,10 @@
<transition name="el-fade-in-linear"> <transition name="el-fade-in-linear">
<div id="payments_data_table" v-show="payments_show"> <div id="payments_data_table" v-show="payments_show">
<el-table :data="payments_data" style="width: 100%"> <el-table :data="payments_data" style="width: 100%">
<el-table-column label="付款进度" min-width="100" align="center"> <el-table-column prop="payment_progress" label="付款进度" min-width="100" align="center">
<template slot-scope="scope"> <!-- <template slot-scope="scope">
{{scope.$index + 1}} {{scope.$index + 1}}
</template> </template> -->
</el-table-column> </el-table-column>
<el-table-column label="付款类型" min-width="100" align="center"> <el-table-column label="付款类型" min-width="100" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -275,7 +277,10 @@ ...@@ -275,7 +277,10 @@
</el-table-column> </el-table-column>
<el-table-column prop="days" label="天数" min-width="100" align="center"> <el-table-column prop="days" label="天数" min-width="100" align="center">
</el-table-column> </el-table-column>
<el-table-column prop="payment_propority" label="付款比例(%)" min-width="100" align="center"> <el-table-column label="付款比例(%)" min-width="100" align="center">
<template slot-scope="scope">
{{payments_data[scope.$index].payment_propority * 100}}
</template>
</el-table-column> </el-table-column>
<el-table-column label="本期应付款日期" min-width="200" align="center"> <el-table-column label="本期应付款日期" min-width="200" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -284,7 +289,7 @@ ...@@ -284,7 +289,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="amount" label="本期应付款金额" min-width="200" align="center"> <el-table-column prop="amount" label="本期应付款金额" min-width="200" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{get_pay_amount(scope.$index)}} {{get_pay_amount(scope.$index).toFixed(2)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="payment_requirement" label="本期付款条件" min-width="300" align="center"> <el-table-column prop="payment_requirement" label="本期付款条件" min-width="300" align="center">
...@@ -294,7 +299,7 @@ ...@@ -294,7 +299,7 @@
<el-button @click.native.prevent="payment_data_modify(scope.$index, payments_data)" type="primary" round> <el-button @click.native.prevent="payment_data_modify(scope.$index, payments_data)" type="primary" round>
修改 修改
</el-button> </el-button>
<el-button @click.native.prevent="data_delete(scope.$index, payments_data)" type="danger" round> <el-button @click.native.prevent="data_delete(scope.$index, payments_data,'payments')" type="danger" round>
移除 移除
</el-button> </el-button>
</template> </template>
...@@ -312,7 +317,7 @@ ...@@ -312,7 +317,7 @@
<el-dialog id="payments_dialog" title="付款约定" :visible.sync="payments_dialog_show" width="30%"> <el-dialog id="payments_dialog" title="付款约定" :visible.sync="payments_dialog_show" width="30%">
<el-form :model="payments_form" label-width="150px" label-position="left" :rules="add_rules" ref="payments_form"> <el-form :model="payments_form" label-width="150px" label-position="left" :rules="add_rules" ref="payments_form">
<el-form-item label="付款类型" prop="payment_type"> <el-form-item label="付款类型" prop="payment_type">
<el-select v-model="payments_form.payment_type" placeholder="付款类型" style="width:100%"> <el-select v-model="payments_form.payment_type" clearable placeholder="付款类型" style="width:100%">
<el-option v-for="(value,index) in payment_type_data" :key="index" :label="value" :value="index"> <el-option v-for="(value,index) in payment_type_data" :key="index" :label="value" :value="index">
</el-option> </el-option>
</el-select> </el-select>
...@@ -346,10 +351,10 @@ ...@@ -346,10 +351,10 @@
<transition name="el-fade-in-linear"> <transition name="el-fade-in-linear">
<div id="rebacks_data_table" v-show="rebacks_show"> <div id="rebacks_data_table" v-show="rebacks_show">
<el-table :data="rebacks_data" style="width:100%"> <el-table :data="rebacks_data" style="width:100%">
<el-table-column label="回款进度" min-width="100" align="center"> <el-table-column label="回款进度" prop="reback_progress" min-width="100" align="center">
<template slot-scope="scope"> <!-- <template slot-scope="scope">
{{scope.$index + 1}} {{scope.$index + 1}}
</template> </template> -->
</el-table-column> </el-table-column>
<el-table-column prop="actual_reback_amount" label="实际回款金额" min-width="200" align="center"> <el-table-column prop="actual_reback_amount" label="实际回款金额" min-width="200" align="center">
</el-table-column> </el-table-column>
...@@ -367,7 +372,7 @@ ...@@ -367,7 +372,7 @@
<el-button @click.native.prevent="reback_data_modify(scope.$index, rebacks_data)" type="primary" round> <el-button @click.native.prevent="reback_data_modify(scope.$index, rebacks_data)" type="primary" round>
修改 修改
</el-button> </el-button>
<el-button @click.native.prevent="data_delete(scope.$index, rebacks_data)" type="danger" round> <el-button @click.native.prevent="data_delete(scope.$index, rebacks_data,'rebacks')" type="danger" round>
移除 移除
</el-button> </el-button>
</template> </template>
...@@ -440,7 +445,7 @@ ...@@ -440,7 +445,7 @@
<el-button @click.native.prevent="receipt_data_modify(scope.$index, receipts_data)" type="primary" round> <el-button @click.native.prevent="receipt_data_modify(scope.$index, receipts_data)" type="primary" round>
修改 修改
</el-button> </el-button>
<el-button @click.native.prevent="data_delete(scope.$index, receipts_data)" type="danger" round> <el-button @click.native.prevent="data_delete(scope.$index, receipts_data,'receipts')" type="danger" round>
移除 移除
</el-button> </el-button>
</template> </template>
...@@ -493,7 +498,7 @@ ...@@ -493,7 +498,7 @@
<el-button @click.native.prevent="deliver_data_modify(scope.$index, delivers_data)" type="primary" round> <el-button @click.native.prevent="deliver_data_modify(scope.$index, delivers_data)" type="primary" round>
修改 修改
</el-button> </el-button>
<el-button @click.native.prevent="data_delete(scope.$index, delivers_data)" type="danger" round> <el-button @click.native.prevent="data_delete(scope.$index, delivers_data,'delivers')" type="danger" round>
移除 移除
</el-button> </el-button>
</template> </template>
...@@ -517,8 +522,10 @@ ...@@ -517,8 +522,10 @@
<el-date-picker style="width:100%" v-model="delivers_form.goods_acceptanc_date" type="date" value-format="yyyy-MM-dd"> <el-date-picker style="width:100%" v-model="delivers_form.goods_acceptanc_date" type="date" value-format="yyyy-MM-dd">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item label="上传文件">
此处需要上传附件 <el-upload class="upload-demo" :action="upload_url" multiple :file-list="delivers_form.delivers_appendix_list" :http-request="delivers_upload" :on-remove="on_remove">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -532,18 +539,18 @@ ...@@ -532,18 +539,18 @@
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span style="font-size:24px" @click="acceptance_show = !acceptance_show">工程验收信息(工程部)</span> <span style="font-size:24px" @click="acceptanc_show = !acceptanc_show">工程验收信息(工程部)</span>
<el-button style="float: right; padding: 8px 0" type="text" @click="form_submit('project')">提交</el-button> <el-button style="float: right; padding: 8px 0" type="text" @click="form_submit('project')">提交</el-button>
</div> </div>
<transition name="el-fade-in-linear"> <transition name="el-fade-in-linear">
<div id="acceptance_form" v-show="acceptance_show"> <div id="acceptanc_form" v-show="acceptanc_show">
<el-form :inline="true" :model="first_acceptances_form" class="demo-form-inline" label-width="100px" :rules="acceptance_form_rules" ref="first_acceptances_form"> <el-form :inline="true" :model="first_acceptancs_form" class="demo-form-inline" label-width="100px" :rules="acceptanc_form_rules" ref="first_acceptancs_form">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-tooltip class="item" effect="dark" content="填写初验必须填写终验" placement="top"> <el-tooltip class="item" effect="dark" content="填写初验必须填写终验" placement="top">
<el-form-item label="是否初验" prop="acceptance_type"> <el-form-item label="是否初验" prop="acceptanc_type">
<el-select class="width-220" v-model="first_acceptances_form.acceptance_type"> <el-select class="width-220" v-model="first_acceptancs_form.acceptanc_type" clearable>
<el-option label="是" value="1"> <el-option label="是" value="1">
</el-option> </el-option>
<el-option label="否" value=""> <el-option label="否" value="">
...@@ -553,27 +560,32 @@ ...@@ -553,27 +560,32 @@
</el-tooltip> </el-tooltip>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目验收日期" prop="acceptance_date"> <el-form-item label="项目验收日期" prop="acceptanc_date">
<el-date-picker class="width-220" v-model="first_acceptances_form.acceptance_date" type="date" value-format="yyyy-MM-dd"> <el-date-picker class="width-220" v-model="first_acceptancs_form.acceptanc_date" type="date" value-format="yyyy-MM-dd">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="备注"> <el-form-item label="备注">
<el-input class="width-220" v-model="first_acceptances_form.acceptance_note" placeholder="备注"></el-input> <el-input class="width-220" v-model="first_acceptancs_form.acceptanc_note" placeholder="备注"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
此处需要上传附件 <el-form-item lalel="上传附件">
<el-upload class="upload-demo" :action="upload_url" multiple :file-list="first_acceptancs_appendix_list" :http-request="first_acceptances_upload" :on-remove="on_remove">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
</el-row> </el-row>
</el-form> </el-form>
<el-form :inline="true" :model="final_acceptances_form" class="demo-form-inline" label-width="100px" :rules="acceptance_form_rules2" ref="final_acceptances_form"> </el-form>
<el-form :inline="true" :model="final_acceptancs_form" class="demo-form-inline" label-width="100px" :rules="acceptanc_form_rules2" ref="final_acceptancs_form">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-tooltip class="item" effect="dark" content="填写初验必须填写终验" placement="top"> <el-tooltip class="item" effect="dark" content="填写初验必须填写终验" placement="top">
<el-form-item label="是否终验" prop="acceptance_type"> <el-form-item label="是否终验" prop="acceptanc_type">
<el-select class="width-220" v-model="final_acceptances_form.acceptance_type"> <el-select class="width-220" v-model="final_acceptancs_form.acceptanc_type" clearable>
<el-option label="是" value="2"> <el-option label="是" value="2">
</el-option> </el-option>
<el-option label="否" value=""> <el-option label="否" value="">
...@@ -583,19 +595,23 @@ ...@@ -583,19 +595,23 @@
</el-tooltip> </el-tooltip>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目验收日期" prop="acceptance_date"> <el-form-item label="项目验收日期" prop="acceptanc_date">
<el-date-picker class="width-220" v-model="final_acceptances_form.acceptance_date" type="date" value-format="yyyy-MM-dd"> <el-date-picker class="width-220" v-model="final_acceptancs_form.acceptanc_date" type="date" value-format="yyyy-MM-dd">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="备注"> <el-form-item label="备注">
<el-input class="width-220" v-model="final_acceptances_form.acceptance_note" placeholder="备注"></el-input> <el-input class="width-220" v-model="final_acceptancs_form.acceptanc_note" placeholder="备注"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
此处需要上传附件 <el-form-item lalel="上传附件">
<el-upload class="upload-demo" :action="upload_url" multiple :file-list="acceptancs_appendix_list" :http-request="acceptances_upload" :on-remove="on_remove">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
</el-row> </el-row>
</el-form> </el-form>
</div> </div>
...@@ -615,6 +631,8 @@ export default { ...@@ -615,6 +631,8 @@ export default {
data() { data() {
return { return {
contract_appendix_list: [], contract_appendix_list: [],
acceptancs_appendix_list: [],
first_acceptancs_appendix_list: [],
operate_type: [0, 0, 0, 0, 0, 0], //整个页面的操作类型,一共6个表单,0表示新增,1表示修改 operate_type: [0, 0, 0, 0, 0, 0], //整个页面的操作类型,一共6个表单,0表示新增,1表示修改
code_base_url: disparch_data.code_base_url, code_base_url: disparch_data.code_base_url,
contract_base_url: disparch_data.contract_base_url, contract_base_url: disparch_data.contract_base_url,
...@@ -635,11 +653,11 @@ export default { ...@@ -635,11 +653,11 @@ export default {
"质保款(验收节点)" "质保款(验收节点)"
], ],
product_line_type_data: ["安防", "交通", "客流", "维保"], product_line_type_data: ["安防", "交通", "客流", "维保"],
contract_state_data: ["已完成", "发货", "施工中", "项目暂停"], contract_state_data: ["已完成", "发货", "施工中", "项目暂停"],
contract_type_data: ["供货", "施工", "集成", "维保"], contract_type_data: ["供货", "施工", "集成", "维保"],
amount_state_unid_data: ["正常验收款", "正常维保"], amount_state_unid_data: ["正常验收款", "正常维保"],
mainten_start_point_data: ["签订时间", "到货验收时间", "项目终验时间"], mainten_start_point_data: ["签订时间", "到货验收时间", "项目终验时间"],
guarantee_date: [], //维保服务期,数组形式的日期,0开始,1结束。 guarantee_date: [,], //维保服务期,数组形式的日期,0开始,1结束。
// show and display~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // show and display~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
payments_dialog_show: false, payments_dialog_show: false,
receipts_dialog_show: false, receipts_dialog_show: false,
...@@ -650,7 +668,7 @@ export default { ...@@ -650,7 +668,7 @@ export default {
rebacks_show: true, rebacks_show: true,
receipts_show: true, receipts_show: true,
delivers_show: true, delivers_show: true,
acceptance_show: true, acceptanc_show: true,
// show and display~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // show and display~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
form: { form: {
// 合同编号 // 合同编号
...@@ -671,10 +689,6 @@ export default { ...@@ -671,10 +689,6 @@ export default {
guarantee_period: 6, guarantee_period: 6,
// 签订时间 // 签订时间
sign_date: "", sign_date: "",
// 所属年份
year: "",
// 所属月份
month: "",
// 产品线类型 // 产品线类型
product_line_type: null, product_line_type: null,
// 合同状态 // 合同状态
...@@ -710,35 +724,40 @@ export default { ...@@ -710,35 +724,40 @@ export default {
// 合同备注 // 合同备注
contract_note: "", contract_note: "",
// 合同附件 // 合同附件
appendix_unids: {}, appendix_unids: [],
start_guarantee_date: "", start_guarantee_date: "",
end_guarantee_date: "" end_guarantee_date: ""
}, },
// 工程验收表单 // 工程验收表单
first_acceptances_form: { first_acceptancs_form: {
acceptance_type: null, acceptanc_unid: null,
acceptance_date: null, acceptanc_type: null,
acceptance_note: null, acceptanc_date: null,
acceptanc_note: null,
appendix_unids: [] appendix_unids: []
}, },
final_acceptances_form: { final_acceptancs_form: {
acceptance_type: null, acceptanc_unid: null,
acceptance_date: null, acceptanc_type: null,
acceptance_note: null, acceptanc_date: null,
acceptanc_note: null,
appendix_unids: [] appendix_unids: []
}, },
// 发货信息表单和数据,提交时提交data里的数据 // 发货信息表单和数据,提交时提交data里的数据
delivers_data: [], delivers_data: [],
delivers_form: { delivers_form: {
deliver_unid: null,
deliver_goods_date: "", deliver_goods_date: "",
goods_acceptanc_date: "", goods_acceptanc_date: "",
appendix_unids: [] appendix_unids: [],
delivers_appendix_list: []
}, },
// 付款约定表单和数据,提交时提交data里的数据 // 付款约定表单和数据,提交时提交data里的数据
payments_data: [], payments_data: [],
payments_form: { payments_form: {
payment_unid: null,
payment_type: "", payment_type: "",
days: "", days: "",
payment_propority: "", payment_propority: "",
...@@ -747,6 +766,7 @@ export default { ...@@ -747,6 +766,7 @@ export default {
// 回款信息表单和数据,提交时提交data里的数据 // 回款信息表单和数据,提交时提交data里的数据
rebacks_data: [], rebacks_data: [],
rebacks_form: { rebacks_form: {
reback_unid: null,
actual_reback_amount: 0, actual_reback_amount: 0,
reback_date: "", reback_date: "",
reback_note: "" reback_note: ""
...@@ -754,6 +774,7 @@ export default { ...@@ -754,6 +774,7 @@ export default {
// 开票信息表单和数据,提交时提交data里的数据 // 开票信息表单和数据,提交时提交data里的数据
receipts_data: [], receipts_data: [],
receipts_form: { receipts_form: {
receipt_unid: null,
receipt_amount: 0, receipt_amount: 0,
oa_flow_id: "", oa_flow_id: "",
receipt_note: "" receipt_note: ""
...@@ -836,11 +857,11 @@ export default { ...@@ -836,11 +857,11 @@ export default {
trigger: "blur" trigger: "blur"
} }
}, },
acceptance_form_rules: { acceptanc_form_rules: {
acceptance_date: { acceptanc_date: {
validator: (rule, value, callback) => { validator: (rule, value, callback) => {
if ( if (
this.first_acceptances_form.acceptance_type == "1" && this.first_acceptancs_form.acceptanc_type == "1" &&
value == null value == null
) { ) {
callback(new Error("请填写时间")); callback(new Error("请填写时间"));
...@@ -849,10 +870,10 @@ export default { ...@@ -849,10 +870,10 @@ export default {
trigger: "blur" trigger: "blur"
} }
}, },
acceptance_form_rules2: { acceptanc_form_rules2: {
acceptance_date: { acceptanc_date: {
validator: (rule, value, callback) => { validator: (rule, value, callback) => {
var a = this.final_acceptances_form.acceptance_type; var a = this.final_acceptancs_form.acceptanc_type;
if (a == "2" && value == null) { if (a == "2" && value == null) {
callback(new Error("请填写时间")); callback(new Error("请填写时间"));
} else callback(); } else callback();
...@@ -860,10 +881,10 @@ export default { ...@@ -860,10 +881,10 @@ export default {
trigger: "blur" trigger: "blur"
}, },
//callback必须返回 //callback必须返回
acceptance_type: { acceptanc_type: {
validator: (rule, value, callback) => { validator: (rule, value, callback) => {
if ( if (
this.first_acceptances_form.acceptance_type == "1" && this.first_acceptancs_form.acceptanc_type == "1" &&
value != "2" value != "2"
) { ) {
callback(new Error("初验必须终验")); callback(new Error("初验必须终验"));
...@@ -877,6 +898,18 @@ export default { ...@@ -877,6 +898,18 @@ export default {
}; };
}, },
computed: { computed: {
get_year() {
if (this.form.sign_date) {
var date = this.form.sign_date;
return date.slice(0, 4);
}
},
get_month() {
if (this.form.sign_date) {
var date = this.form.sign_date;
return date.slice(5, 7);
}
},
// 上传附件地址 // 上传附件地址
upload_url: function() { upload_url: function() {
return ( return (
...@@ -885,14 +918,17 @@ export default { ...@@ -885,14 +918,17 @@ export default {
}, },
// 合同余额 // 合同余额
contract_remaining: function() { contract_remaining: function() {
return ( var a = this.form.contract_amount -
this.form.contract_amount -
this.form.deduct_amount - this.form.deduct_amount -
this.total_reback_amount - this.total_reback_amount -
this.form.stop_amount - this.form.stop_amount -
this.form.exemptions_amount - this.form.exemptions_amount -
this.form.bad_amount this.form.bad_amount;
).toFixed(2); if (isNaN(a)) {
return null;
}else {
return a.toFixed(2)
}
}, },
// 累计回款额 // 累计回款额
total_reback_amount: function() { total_reback_amount: function() {
...@@ -919,14 +955,17 @@ export default { ...@@ -919,14 +955,17 @@ export default {
}, },
// 应收账款余额 // 应收账款余额
total_leave_amount: function() { total_leave_amount: function() {
return ( var a = this.total_receive_amount -
this.total_receive_amount -
this.total_reback_amount - this.total_reback_amount -
this.form.deduct_amount - this.form.deduct_amount -
this.form.stop_amount - this.form.stop_amount -
this.form.exemptions_amount - this.form.exemptions_amount -
this.form.bad_amount this.form.bad_amount;
).toFixed(2); if (isNaN(a)) {
return null
}else {
return a.toFixed(2);
}
}, },
// 逾期天数 // 逾期天数
over_days_unid: function() { over_days_unid: function() {
...@@ -949,13 +988,13 @@ export default { ...@@ -949,13 +988,13 @@ export default {
}, },
// 维保服务期开始时间 // 维保服务期开始时间
start_guarantee_date: function() { start_guarantee_date: function() {
if (this.guarantee_date[0]) { if (this.guarantee_date && this.guarantee_date[0]) {
return this.guarantee_date[0]; return this.guarantee_date[0];
} }
}, },
// 维保服务期结束时间 // 维保服务期结束时间
end_guarantee_date: function() { end_guarantee_date: function() {
if (this.guarantee_date[1]) { if (this.guarantee_date && this.guarantee_date[1]) {
return this.guarantee_date[1]; return this.guarantee_date[1];
} }
}, },
...@@ -971,10 +1010,10 @@ export default { ...@@ -971,10 +1010,10 @@ export default {
return this.delivers_data[index].goods_acceptanc_date; return this.delivers_data[index].goods_acceptanc_date;
} else if ( } else if (
this.form.mainten_start_point == 2 && this.form.mainten_start_point == 2 &&
this.final_acceptances_form.acceptance_type == "2" && this.final_acceptancs_form.acceptanc_type == "2" &&
this.final_acceptances_form.acceptance_date != "" this.final_acceptancs_form.acceptanc_date != ""
) { ) {
return this.final_acceptances_form.acceptance_date; return this.final_acceptancs_form.acceptanc_date;
} }
}, },
mainten_end_date: function() { mainten_end_date: function() {
...@@ -995,32 +1034,156 @@ export default { ...@@ -995,32 +1034,156 @@ export default {
); );
} else if ( } else if (
this.form.mainten_start_point == 2 && this.form.mainten_start_point == 2 &&
this.final_acceptances_form.acceptance_type == "2" && this.final_acceptancs_form.acceptanc_type == "2" &&
this.final_acceptances_form.acceptance_date != "" this.final_acceptancs_form.acceptanc_date != ""
) { ) {
return this.date_add_month( return this.date_add_month(
this.final_acceptances_form.acceptance_date, this.final_acceptancs_form.acceptanc_date,
this.form.guarantee_period this.form.guarantee_period
); );
} }
} }
}, },
// methods++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// methods++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// methods++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// methods++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// methods++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// methods++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// methods++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
methods: { methods: {
test(file) { // upload+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
this.$Axios({ contract_upload(f) {
method: "post", let param = new FormData(); //创建form对象
url: this.upload_url, param.append("appendix_files", f.file); //通过append向form对象添加数据
data: { param.append("business_table", "contracts"); //添加form表单中其他数据
business_table: "contracts", var xhr = new XMLHttpRequest();
appendix_files: [file.file], xhr.open("post", f.action, true);
headers: { "Content-Type": "multipart/form-data" } var _this = this;
xhr.onerror = function() {
_this.$message.err("上传失败");
};
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200 && !xhr.response.encode) {
var a = JSON.parse(xhr.response);
var b = {};
b.name = a[0].appendix_name;
b.url = a[0].appendix_url;
b.appendix_unid = a[0].appendix_unid;
_this.contract_appendix_list.push(b);
_this.form.appendix_unids.push(b.appendix_unid);
_this.$message({
message: "成功",
type: "success"
});
} else {
_this.$message({
message: "失败",
type: "error"
});
}
};
xhr.send(param);
},
delivers_upload(f) {
let param = new FormData(); //创建form对象
param.append("appendix_files", f.file); //通过append向form对象添加数据
param.append("business_table", "delivers"); //添加form表单中其他数据
var xhr = new XMLHttpRequest();
xhr.open("post", f.action, true);
var _this = this;
xhr.onerror = function() {
_this.$message.err("上传失败");
};
xhr.onreadystatechange = function() {
debugger;
if (xhr.readyState == 4 && xhr.status == 200 && !xhr.response.encode) {
var a = JSON.parse(xhr.response);
var b = {};
b.name = a[0].appendix_name;
b.url = a[0].appendix_url;
b.appendix_unid = a[0].appendix_unid;
_this.delivers_form.appendix_unids.push(b.appendix_unid);
_this.delivers_form.delivers_appendix_list.push(b);
_this.$message({
message: "成功",
type: "success"
});
} else {
_this.$message({
message: "失败",
type: "error"
});
}
};
xhr.send(param);
},
acceptances_upload(f) {
let param = new FormData(); //创建form对象
param.append("appendix_files", f.file); //通过append向form对象添加数据
param.append("business_table", "acceptance"); //添加form表单中其他数据
var xhr = new XMLHttpRequest();
xhr.open("post", f.action, true);
var _this = this;
xhr.onerror = function() {
_this.$message.err("上传失败");
};
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200 && !xhr.response.encode) {
var a = JSON.parse(xhr.response);
var b = {};
b.name = a[0].appendix_name;
b.url = a[0].appendix_url;
b.appendix_unid = a[0].appendix_unid;
_this.final_acceptancs_form.appendix_unids.push(b.appendix_unid);
_this.acceptancs_appendix_list.push(b);
_this.$message({
message: "成功",
type: "success"
});
} else {
_this.$message({
message: "失败",
type: "error"
});
} }
}).then(res => { };
console.log(res.data.appendix_unid); xhr.send(param);
this.form.appendix_unids.push(res.data.appendix_unid); },
first_acceptances_upload(f) {
let param = new FormData(); //创建form对象
param.append("appendix_files", f.file); //通过append向form对象添加数据
param.append("business_table", "acceptance"); //添加form表单中其他数据
var xhr = new XMLHttpRequest();
xhr.open("post", f.action, true);
var _this = this;
xhr.onerror = function() {
_this.$message.err("上传失败");
};
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200 && !xhr.response.encode) {
var a = JSON.parse(xhr.response);
var b = {};
b.name = a[0].appendix_name;
b.url = a[0].appendix_url;
b.appendix_unid = a[0].appendix_unid;
_this.first_acceptancs_form.appendix_unids.push(b.appendix_unid);
_this.first_acceptancs_appendix_list.push(b);
_this.$message({
message: "成功",
type: "success"
}); });
return false; } else {
_this.$message({
message: "失败",
type: "error"
});
}
};
xhr.send(param);
}, },
on_remove(file, fileList) {},
// upload+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
total_receipt_amount_cal(index) { total_receipt_amount_cal(index) {
var total_receipt_amount = 0; var total_receipt_amount = 0;
for (let i = index; i >= 0; i--) { for (let i = index; i >= 0; i--) {
...@@ -1068,22 +1231,22 @@ export default { ...@@ -1068,22 +1231,22 @@ export default {
// dialog_cancel~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // dialog_cancel~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
payments_dialog_cancel() { payments_dialog_cancel() {
this.modify_data = false; this.modify_data = false;
this.$refs["payments_form"].resetFields(); this.payments_form = {};
this.payments_dialog_show = false; this.payments_dialog_show = false;
}, },
rebacks_dialog_cancel() { rebacks_dialog_cancel() {
this.modify_data = false; this.modify_data = false;
this.$refs["rebacks_form"].resetFields(); this.rebacks_form = {};
this.rebacks_dialog_show = false; this.rebacks_dialog_show = false;
}, },
receipts_dialog_cancel() { receipts_dialog_cancel() {
this.modify_data = false; this.modify_data = false;
this.$refs["receipts_form"].resetFields(); this.receipts_form = {};
this.receipts_dialog_show = false; this.receipts_dialog_show = false;
}, },
delivers_dialog_cancel() { delivers_dialog_cancel() {
this.modify_data = false; this.modify_data = false;
this.$refs["delivers_form"].resetFields(); this.delivers_form = { appendix_unids: [], delivers_appendix_list: [] };
this.delivers_dialog_show = false; this.delivers_dialog_show = false;
}, },
...@@ -1121,23 +1284,11 @@ export default { ...@@ -1121,23 +1284,11 @@ export default {
}, },
// date_methods~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // date_methods~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
add_axios(m, u, arr) {
this.$Axios({
method: m,
url: u,
headers: { "Content-Type": "application/json" }
}).then(response => {
arr = response.data.list_data;
});
},
// remoteMethod~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // remoteMethod~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
contractIdRemoteMethod(query) { contractIdRemoteMethod(query) {
this.$Axios({ this.$Axios({
method: "get", method: "get",
url: this.contract_base_url + "codes" url: this.contract_base_url + "codes"
// params:{
// wd:this.form.contract_unid
// }
}) })
.then(response => { .then(response => {
this.contract_unid_selected_data = response.data; this.contract_unid_selected_data = response.data;
...@@ -1164,10 +1315,10 @@ export default { ...@@ -1164,10 +1315,10 @@ export default {
projectIdRemoteMethod(query) { projectIdRemoteMethod(query) {
this.$Axios({ this.$Axios({
method: "get", method: "get",
url: this.code_base_url + "simple/cates/09BB973F92/codes" url: this.contract_base_url + "projects"
}) })
.then(response => { .then(response => {
this.project_unid_selected_data = response.data.list_data; this.project_unid_selected_data = response.data;
}) })
.catch(err => { .catch(err => {
console.log(err.message); console.log(err.message);
...@@ -1180,7 +1331,7 @@ export default { ...@@ -1180,7 +1331,7 @@ export default {
headers: { "Content-Type": "application/json" } headers: { "Content-Type": "application/json" }
}) })
.then(response => { .then(response => {
this.customer_unid_selected_data = response.data.customer_list; this.customer_unid_selected_data = response.data;
}) })
.catch(err => { .catch(err => {
console.log(err.message); console.log(err.message);
...@@ -1189,35 +1340,42 @@ export default { ...@@ -1189,35 +1340,42 @@ export default {
// remoteMethod~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // remoteMethod~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
signDataChanged() {
var date = this.form.sign_date;
this.form.year = date.slice(0, 4);
this.form.month = date.slice(5, 7);
},
// dialog_confirm_start~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // dialog_confirm_start~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
payments_dialog_confirm() { payments_dialog_confirm() {
this.$refs["payments_form"].validate(valid => { this.$refs["payments_form"].validate(valid => {
if (valid) { if (valid) {
var payment_unid = this.payments_form.payment_unid;
var type_value = this.payments_form.payment_type; var type_value = this.payments_form.payment_type;
var days = this.payments_form.days; var days = this.payments_form.days;
var propority = this.payments_form.payment_propority; var propority =
parseFloat(this.payments_form.payment_propority) / 100;
var requirement = this.payments_form.payment_requirement; var requirement = this.payments_form.payment_requirement;
var a = { var a = {
payment_unid: payment_unid,
payment_type: type_value, payment_type: type_value,
days: days, days: days,
payment_propority: propority, payment_propority: propority,
payment_requirement: requirement payment_requirement: requirement
}; };
if (!this.modify_data) { if (!this.modify_data) {
if (this.payments_data.length > 0) {
a.payment_progress =
this.payments_data[this.payments_data.length - 1]
.payment_progress + 1;
} else {
a.payment_progress = 1;
}
this.payments_data.push(a); this.payments_data.push(a);
} else { } else {
a.payment_progress = this.payments_data[
this.modify_index
].payment_progress;
this.$set(this.payments_data, this.modify_index, a); this.$set(this.payments_data, this.modify_index, a);
} }
this.payments_form = {};
this.modify_data = false; this.modify_data = false;
this.$refs["payments_form"].resetFields();
this.payments_dialog_show = false; this.payments_dialog_show = false;
} }
}); });
...@@ -1225,25 +1383,33 @@ export default { ...@@ -1225,25 +1383,33 @@ export default {
receipts_dialog_confirm() { receipts_dialog_confirm() {
this.$refs["receipts_form"].validate(valid => { this.$refs["receipts_form"].validate(valid => {
if (valid) { if (valid) {
var receipt_progress = this.receipts_data.length + 1; var receipt_unid = this.receipts_form.receipt_unid;
var receipt_amount = parseFloat(this.receipts_form.receipt_amount); var receipt_amount = parseFloat(this.receipts_form.receipt_amount);
var oa_flow_id = this.receipts_form.oa_flow_id; var oa_flow_id = this.receipts_form.oa_flow_id;
var receipt_note = this.receipts_form.receipt_note; var receipt_note = this.receipts_form.receipt_note;
var a = { var a = {
receipt_progress: receipt_progress, receipt_unid: receipt_unid,
receipt_amount: parseFloat(receipt_amount).toFixed(2), receipt_amount: parseFloat(receipt_amount).toFixed(2),
oa_flow_id: oa_flow_id, oa_flow_id: oa_flow_id,
receipt_note: receipt_note receipt_note: receipt_note
}; };
if (!this.modify_data) { if (!this.modify_data) {
if (this.receipts_data.length > 0) {
a.receipt_progress =
this.receipts_data[this.receipts_data.length - 1]
.receipt_progress + 1;
} else {
a.receipt_progress = 1;
}
this.receipts_data.push(a); this.receipts_data.push(a);
} else { } else {
a.receipt_progress = this.receipts_data[
this.modify_index
].receipt_progress;
this.$set(this.receipts_data, this.modify_index, a); this.$set(this.receipts_data, this.modify_index, a);
} }
this.modify_data = false; this.modify_data = false;
this.$refs["receipts_form"].resetFields(); this.receipts_form = {};
this.receipts_dialog_show = false; this.receipts_dialog_show = false;
} }
}); });
...@@ -1252,24 +1418,35 @@ export default { ...@@ -1252,24 +1418,35 @@ export default {
this.$refs["rebacks_form"].validate(valid => { this.$refs["rebacks_form"].validate(valid => {
if (valid) { if (valid) {
var actual_reback_amount = this.rebacks_form.actual_reback_amount; var actual_reback_amount = this.rebacks_form.actual_reback_amount;
var reback_unid = this.rebacks_form.reback_unid;
var reback_date = this.rebacks_form.reback_date; var reback_date = this.rebacks_form.reback_date;
var reback_note = this.rebacks_form.reback_note; var reback_note = this.rebacks_form.reback_note;
var a = { var a = {
reback_unid: reback_unid,
actual_reback_amount: actual_reback_amount, actual_reback_amount: actual_reback_amount,
reback_date: reback_date, reback_date: reback_date,
reback_note: reback_note reback_note: reback_note
}; };
if (!this.modify_data) { if (!this.modify_data) {
if (this.rebacks_data.length > 0) {
a.reback_progress =
this.rebacks_data[this.rebacks_data.length - 1]
.reback_progress + 1;
} else {
a.reback_progress = 1;
}
this.rebacks_data.push(a); this.rebacks_data.push(a);
} else { } else {
a.reback_progress = this.rebacks_data[
this.modify_index
].reback_progress;
this.$set(this.rebacks_data, this.modify_index, a); this.$set(this.rebacks_data, this.modify_index, a);
} }
this.modify_data = false; this.modify_data = false;
this.$refs["rebacks_form"].resetFields(); this.rebacks_form = {};
this.rebacks_dialog_show = false; this.rebacks_dialog_show = false;
} }
}); });
...@@ -1277,10 +1454,12 @@ export default { ...@@ -1277,10 +1454,12 @@ export default {
delivers_dialog_confirm() { delivers_dialog_confirm() {
this.$refs["delivers_form"].validate(valid => { this.$refs["delivers_form"].validate(valid => {
if (valid) { if (valid) {
var deliver_unid = this.delivers_form.deliver_unid;
var deliver_goods_date = this.delivers_form.deliver_goods_date; var deliver_goods_date = this.delivers_form.deliver_goods_date;
var goods_acceptanc_date = this.delivers_form.goods_acceptanc_date; var goods_acceptanc_date = this.delivers_form.goods_acceptanc_date;
var appendix_unids = this.delivers_form.appendix_unids; var appendix_unids = this.delivers_form.appendix_unids;
var a = { var a = {
deliver_unid: deliver_unid,
deliver_goods_date: deliver_goods_date, deliver_goods_date: deliver_goods_date,
goods_acceptanc_date: goods_acceptanc_date, goods_acceptanc_date: goods_acceptanc_date,
appendix_unids: appendix_unids appendix_unids: appendix_unids
...@@ -1291,19 +1470,46 @@ export default { ...@@ -1291,19 +1470,46 @@ export default {
this.$set(this.delivers_data, this.modify_index, a); this.$set(this.delivers_data, this.modify_index, a);
} }
this.modify_data = false; this.modify_data = false;
this.$refs["delivers_form"].resetFields(); this.delivers_form = {};
this.delivers_dialog_show = false; this.delivers_dialog_show = false;
} }
}); });
}, },
// dialog_confirm_end~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // dialog_confirm_end~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data_delete(index, data) { data_delete(index, data, appendUrl) {
var a;
var id;
if (appendUrl == "payments") {
a = { payment_unids: [data[index].payment_unid] };
id = data[index].payment_unid;
} else if (appendUrl == "rebacks") {
a = { reback_unids: [data[index].reback_unid] };
id = data[index].reback_unid;
} else if (appendUrl == "receipts") {
a = { receipt_unids: [data[index].receipt_unid] };
id = data[index].receipt_unid;
} else if (appendUrl == "delivers") {
a = { deliver_unids: [data[index].deliver_unid] };
id = data[index].deliver_unid;
}
this.$confirm("确认删除数据?", "确认信息", { this.$confirm("确认删除数据?", "确认信息", {
confirmButtonText: "确认", confirmButtonText: "确认",
cancelButtonText: "取消" cancelButtonText: "取消"
}) })
.then(() => { .then(() => {
if (id != null) {
this.$Axios({
method: "delete",
url:
this.contract_base_url +
this.form.contract_unid +
"/" +
appendUrl,
data: a
});
}
data.splice(index, 1); data.splice(index, 1);
this.$message({ this.$message({
duration: 1000, duration: 1000,
...@@ -1322,15 +1528,18 @@ export default { ...@@ -1322,15 +1528,18 @@ export default {
// modifystart~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // modifystart~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
payment_data_modify(index, data) { payment_data_modify(index, data) {
this.payments_form.payment_unid = data[index].payment_unid;
this.payments_form.payment_type = data[index].payment_type; this.payments_form.payment_type = data[index].payment_type;
this.payments_form.days = data[index].days; this.payments_form.days = data[index].days;
this.payments_form.payment_propority = data[index].payment_propority; this.payments_form.payment_propority =
data[index].payment_propority * 100;
this.payments_form.payment_requirement = data[index].payment_requirement; this.payments_form.payment_requirement = data[index].payment_requirement;
this.modify_data = true; this.modify_data = true;
this.modify_index = index; this.modify_index = index;
this.payments_dialog_show = true; this.payments_dialog_show = true;
}, },
reback_data_modify(index, data) { reback_data_modify(index, data) {
this.rebacks_form.reback_unid = data[index].reback_unid;
this.rebacks_form.actual_reback_amount = data[index].actual_reback_amount; this.rebacks_form.actual_reback_amount = data[index].actual_reback_amount;
this.rebacks_form.reback_date = data[index].reback_date; this.rebacks_form.reback_date = data[index].reback_date;
this.rebacks_form.reback_note = data[index].reback_note; this.rebacks_form.reback_note = data[index].reback_note;
...@@ -1339,6 +1548,7 @@ export default { ...@@ -1339,6 +1548,7 @@ export default {
this.rebacks_dialog_show = true; this.rebacks_dialog_show = true;
}, },
receipt_data_modify(index, data) { receipt_data_modify(index, data) {
this.receipts_form.receipt_unid = data[index].receipt_unid;
this.receipts_form.receipt_amount = data[index].receipt_amount; this.receipts_form.receipt_amount = data[index].receipt_amount;
this.receipts_form.oa_flow_id = data[index].oa_flow_id; this.receipts_form.oa_flow_id = data[index].oa_flow_id;
this.receipts_form.receipt_note = data[index].receipt_note; this.receipts_form.receipt_note = data[index].receipt_note;
...@@ -1347,9 +1557,13 @@ export default { ...@@ -1347,9 +1557,13 @@ export default {
this.receipts_dialog_show = true; this.receipts_dialog_show = true;
}, },
deliver_data_modify(index, data) { deliver_data_modify(index, data) {
this.delivers_form.deliver_unid = data[index].deliver_unid;
this.delivers_form.deliver_goods_date = data[index].deliver_goods_date; this.delivers_form.deliver_goods_date = data[index].deliver_goods_date;
this.delivers_form.goods_acceptanc_date = this.delivers_form.goods_acceptanc_date =
data[index].goods_acceptanc_date; data[index].goods_acceptanc_date;
this.delivers_form.delivers_appendix_list =
data[index].delivers_appendix_list;
this.delivers_form.appendix_unids = data[index].appendix_unids;
this.modify_data = true; this.modify_data = true;
this.modify_index = index; this.modify_index = index;
this.delivers_dialog_show = true; this.delivers_dialog_show = true;
...@@ -1424,10 +1638,10 @@ export default { ...@@ -1424,10 +1638,10 @@ export default {
); );
} else if ( } else if (
(type == "2" || type == "4") && (type == "2" || type == "4") &&
this.final_acceptances_form.acceptance_date != null this.final_acceptancs_form.acceptanc_date != null
) { ) {
date = this.date_add_days( date = this.date_add_days(
this.final_acceptances_form.acceptance_date, this.final_acceptancs_form.acceptanc_date,
days days
); );
} }
...@@ -1438,8 +1652,7 @@ export default { ...@@ -1438,8 +1652,7 @@ export default {
if (this.form.contract_amount > 0) { if (this.form.contract_amount > 0) {
amount = amount =
this.form.contract_amount * this.form.contract_amount *
this.payments_data[index].payment_propority / this.payments_data[index].payment_propority;
100;
} }
return amount; return amount;
}, },
...@@ -1450,239 +1663,88 @@ export default { ...@@ -1450,239 +1663,88 @@ export default {
headers: { "Content-Type": "application/json" } headers: { "Content-Type": "application/json" }
}) })
.then(response => { .then(response => {
// this.customer_unid_selected_data = response.data this.customer_unid_selected_data = response.data;
console.log(response.data);
}) })
.catch(err => { .catch(err => {
console.log(err.message); console.log(err.message);
}); });
}, },
get_projects() { get_salers() {
this.$Axios({ this.$Axios({
method: "get", method: "get",
url: this.contract_base_url + "projects", url: this.code_base_url + "customers",
headers: { "Content-Type": "application/json" } headers: { "Content-Type": "application/json" }
}) })
.then(response => { .then(response => {
this.project_unid_selected_data = response.data; this.customer_unid_selected_data = response.data;
// console.log(response.data);
}) })
.catch(err => { .catch(err => {
console.log(err.message); console.log(err.message);
}); });
}, },
// getlocation end~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ get_projects() {
// !!!!!!~~~~~~~~~~~~~submit~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
form_submit(name) {
switch (name) {
case "form":
var method;
this.form.start_guarantee_date = this.start_guarantee_date;
this.form.end_guarantee_date = this.end_guarantee_date;
if (this.operate_type[0] == 0) {
method = "post";
} else if (this.operate_type[0] == 1) {
method = "put";
}
this.$Axios({
method: method,
url: this.contract_base_url,
data: this.form,
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (response.data.encode == 200) {
this.$alert("提交成功");
this.operate_type[0] = 1;
}
})
.catch(err => {
console.log(err.message);
});
break;
case "payment":
var method;
if (this.operate_type[1] == 0) {
method = "post";
} else if (this.operate_type[1] == 1) {
method = "put";
}
this.$Axios({
method: method,
url: this.contract_base_url + this.contract_unid + "/payments",
data: this.payments_data
})
.then(response => {
if (response.data.encode == 200) {
this.$alert("提交成功");
this.operate_type[1] = 1;
}
})
.catch(err => {
console.log(err.message);
});
break;
case "reback":
var method;
if (this.operate_type[2] == 0) {
method = "post";
} else if (this.operate_type[2] == 1) {
method = "put";
}
this.$Axios({
method: method,
url: this.contract_base_url + this.contract_unid + "/rebacks",
data: this.rebacks_data,
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (response.data.encode == 200) {
this.$alert("提交成功");
this.operate_type[2] = 1;
}
})
.catch(err => {
console.log(err.message);
});
break;
case "receipt":
var method;
if (this.operate_type[3] == 0) {
method = "post";
} else if (this.operate_type[3] == 1) {
method = "put";
}
this.$Axios({
method: method,
url: this.contract_base_url + this.contract_unid + "/receipts",
data: this.receipts_data,
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (response.data.encode == 200) {
this.$alert("提交成功");
this.operate_type[3] = 1;
}
})
.catch(err => {
console.log(err.message);
});
break;
case "deliver":
var method;
if (this.operate_type[4] == 0) {
method = "post";
} else if (this.operate_type[4] == 1) {
method = "put";
}
this.$Axios({ this.$Axios({
method: method, method: "get",
url: this.contract_base_url + this.contract_unid + "/delivers", url: this.contract_base_url + "projects",
data: this.delivers_data,
headers: { "Content-Type": "application/json" } headers: { "Content-Type": "application/json" }
}) })
.then(response => { .then(response => {
if (response.data.encode == 200) { this.project_unid_selected_data = response.data;
this.$alert("提交成功");
this.operate_type[4] = 1;
}
}) })
.catch(err => { .catch(err => {
console.log(err.message); console.log(err.message);
}); });
break;
case "project":
var method;
if (this.operate_type[5] == 0) {
method = "post";
} else if (this.operate_type[5] == 1) {
method = "put";
}
var _this = this;
var p1 = new Promise(function(resolve, reject) {
_this.$refs.first_acceptances_form.validate(valid => {
if (valid) {
resolve();
}
});
});
var p2 = new Promise(function(resolve, reject) {
_this.$refs.final_acceptances_form.validate(valid2 => {
if (valid2) {
resolve();
}
});
});
Promise.all([p1, p2]).then(function() {
_this
.$Axios({
method: method,
url:
_this.contract_base_url +
_this.contract_unid +
"/project/acceptancs",
data: {
list_data: [
_this.first_acceptances_form,
_this.final_acceptances_form
]
},
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (response.data.encode == 200) {
_this.$alert("提交成功");
_this.operate_type[5] = 1;
}
});
});
break;
default:
break;
}
}
}, },
created() {
this.get_provinces();
var id = this.$route.params.contract_unid; get_contract_info(id) {
if (id == "") {
id = 0;
this.$router.push({ path: "/nav/contract/0" });
}
if (id != "0") { if (id != "0") {
this.operate_type = [1, 1, 1, 1, 1, 1]; this.$router.push({ path: "/nav/contract/" + id });
this.form.contract_unid = id;
this.$Axios({ this.$Axios({
method: "get", method: "get",
url: this.contract_base_url + id, url: this.contract_base_url + id,
headers: { "Content-Type": "application/json" } headers: { "Content-Type": "application/json" }
}) })
.then(response => { .then(response => {
this.$set(this.form, "contract_unid", response.data.contract_unid); if (response.data.ecode == "100") {
// this.$set(this.form, "province", response.data.province); this.$alert("合同已删除");
// this.$set(this.form, "city", response.data.city); this.$router.push({path:'0'})
// this.$set(this.form, "county", response.data.county); } else {
this.$set(this.form, "province", "06FB2BFD29"); this.$set(
this.form,
"contract_unid",
response.data.contract_unid
);
this.$set(this.form, "province", response.data.province);
this.get_cities(); this.get_cities();
this.$set(this.form, "city", "4B4BD6A81w"); this.$set(this.form, "city", response.data.city);
this.get_counties(); this.get_counties();
this.$set(this.form, "county", "865A12C46C"); this.$set(this.form, "county", response.data.county);
if (response.data.contract_state) {
this.$set( this.$set(
this.form, this.form,
"contract_state", "contract_state",
parseInt(response.data.contract_state) parseInt(response.data.contract_state)-1
); );
}
if (response.data.contract_type) {
this.$set( this.$set(
this.form, this.form,
"contract_type", "contract_type",
parseInt(response.data.contract_type) parseInt(response.data.contract_type)-1
); );
}
this.$set(this.form, "is_archive", response.data.is_archive); this.$set(this.form, "is_archive", response.data.is_archive);
// this.$set( if (response.data.amount_state_unid) {
// this.form, this.$set(
// "amount_state_unid", this.form,
// parseInt(response.data.amount_state_unid) "amount_state_unid",
// ); parseInt(response.data.amount_state_unid)-1
this.$set(this.form, "amount_state_unid", 1); );
}
this.$set( this.$set(
this.form, this.form,
"salesperson_unid", "salesperson_unid",
...@@ -1691,8 +1753,16 @@ export default { ...@@ -1691,8 +1753,16 @@ export default {
this.get_projects(); this.get_projects();
this.$set(this.form, "project_unid", response.data.project_unid); this.$set(this.form, "project_unid", response.data.project_unid);
this.get_customers(); this.get_customers();
this.$set(this.form, "customer_unid", response.data.customer_unid); this.$set(
this.$set(this.form, "deduct_amount", response.data.deduct_amount); this.form,
"customer_unid",
response.data.customer_unid
);
this.$set(
this.form,
"deduct_amount",
response.data.deduct_amount
);
this.$set( this.$set(
this.form, this.form,
"contract_amount_note", "contract_amount_note",
...@@ -1715,12 +1785,18 @@ export default { ...@@ -1715,12 +1785,18 @@ export default {
"bad_amount_note", "bad_amount_note",
response.data.bad_amount_note response.data.bad_amount_note
); );
if (response.data.mainten_start_point) {
this.$set( this.$set(
this.form, this.form,
"mainten_start_point", "mainten_start_point",
parseInt(response.data.mainten_start_point) parseInt(response.data.mainten_start_point)-1
);
}
this.$set(
this.form,
"contract_note",
response.data.contract_note
); );
this.$set(this.form, "contract_note", response.data.contract_note);
this.$set( this.$set(
this.form, this.form,
"contract_amount", "contract_amount",
...@@ -1731,25 +1807,38 @@ export default { ...@@ -1731,25 +1807,38 @@ export default {
"guarantee_period", "guarantee_period",
response.data.guarantee_period response.data.guarantee_period
); );
if (response.data.product_line_type) {
this.$set( this.$set(
this.form, this.form,
"product_line_type", "product_line_type",
parseInt(response.data.product_line_type) parseInt(response.data.product_line_type)-1
); );
}
this.$set( this.$set(
this.form, this.form,
"confirm_income_amount", "confirm_income_amount",
response.data.confirm_income_amount response.data.confirm_income_amount
); );
this.$set(this.form, "sign_date", response.data.sign_date);
this.$set(this.form, "bad_amount", response.data.bad_amount); this.$set(this.form, "bad_amount", response.data.bad_amount);
// if (this.form.start_guarantee_date) { for (let i = 0; i < response.data.appendix_list.length; i++) {
// this.$delete(this.form, "start_guarantee_date"); const e = response.data.appendix_list[i];
// } var b = {};
// if (this.form.end_guarantee_date) { b.name = e.appendix_name;
// this.$delete(this.form, "end_guarantee_date"); b.url = e.appendix_url;
// } b.id = e.appendix_unid;
// this.guarantee_date.push(response.data.start_guarantee_date); this.contract_appendix_list.push(b);
// this.guarantee_date.push(response.data.end_guarantee_date); }
if (this.form.start_guarantee_date) {
this.$delete(this.form, "start_guarantee_date");
}
if (this.form.end_guarantee_date) {
this.$delete(this.form, "end_guarantee_date");
}
this.guarantee_date = [];
this.guarantee_date.push(response.data.start_guarantee_date);
this.guarantee_date.push(response.data.end_guarantee_date);
}
}) })
.catch(err => { .catch(err => {
console.log(err.message); console.log(err.message);
...@@ -1760,16 +1849,21 @@ export default { ...@@ -1760,16 +1849,21 @@ export default {
headers: { "Content-Type": "application/json" } headers: { "Content-Type": "application/json" }
}) })
.then(response => { .then(response => {
if (!response.data.ecode || response.data != []) {
for (let i = 0; i < response.data.length; i++) { for (let i = 0; i < response.data.length; i++) {
var item = {}; var item = {};
const e = response.data[i]; const e = response.data[i];
item.payment_type = parseInt(e.payment_type); item.payment_unid = e.payment_unid;
item.payment_type = parseInt(e.payment_type)-1;
item.payment_progress = e.payment_progress;
item.days = e.days; item.days = e.days;
item.payment_propority = e.payment_propority * 100; item.payment_propority = e.payment_propority;
item.payment_requirement = e.payment_requirement; item.payment_requirement = e.payment_requirement;
item.amount = this.form.contract_amount * item.payment_propority; item.amount =
this.form.contract_amount * item.payment_propority;
this.payments_data.push(item); this.payments_data.push(item);
} }
}
}) })
.catch(err => { .catch(err => {
console.log(err.message); console.log(err.message);
...@@ -1780,7 +1874,18 @@ export default { ...@@ -1780,7 +1874,18 @@ export default {
headers: { "Content-Type": "application/json" } headers: { "Content-Type": "application/json" }
}) })
.then(response => { .then(response => {
console.log(response.data); if (!response.data.ecode || response.data != []) {
for (let i = 0; i < response.data.length; i++) {
var e = response.data[i];
var item = {};
item.reback_unid = e.reback_unid;
item.reback_progress = e.reback_progress;
item.reback_date = e.reback_date;
item.actual_reback_amount = e.actual_reback_amount;
item.reback_note = e.reback_note;
this.rebacks_data.push(item);
}
}
}) })
.catch(err => { .catch(err => {
console.log(err.message); console.log(err.message);
...@@ -1791,15 +1896,18 @@ export default { ...@@ -1791,15 +1896,18 @@ export default {
headers: { "Content-Type": "application/json" } headers: { "Content-Type": "application/json" }
}) })
.then(response => { .then(response => {
if (!response.data.ecode || response.data != []) {
for (let i = 0; i < response.data.length; i++) { for (let i = 0; i < response.data.length; i++) {
var e = response.data[i]; var e = response.data[i];
var item = {}; var item = {};
item.receipt_unid = e.receipt_unid;
item.oa_flow_id = e.oa_flow_id; item.oa_flow_id = e.oa_flow_id;
item.receipt_amount = e.receipt_amount; item.receipt_amount = e.receipt_amount;
item.receipt_note = e.receipt_note; item.receipt_note = e.receipt_note;
item.receipt_progress = e.receipt_progress; item.receipt_progress = e.receipt_progress;
this.receipts_data.push(item); this.receipts_data.push(item);
} }
}
}) })
.catch(err => { .catch(err => {
console.log(err.message); console.log(err.message);
...@@ -1810,70 +1918,367 @@ export default { ...@@ -1810,70 +1918,367 @@ export default {
headers: { "Content-Type": "application/json" } headers: { "Content-Type": "application/json" }
}) })
.then(response => { .then(response => {
if (!response.data.ecode || response.data != []) {
for (let i = 0; i < response.data.list_deliver_data.length; i++) { for (let i = 0; i < response.data.list_deliver_data.length; i++) {
var e = response.data.list_deliver_data[i]; var e = response.data.list_deliver_data[i];
var item = {}; var item = {};
item.deliver_unid = e.deliver_unid;
item.deliver_goods_date = e.deliver_goods_date; item.deliver_goods_date = e.deliver_goods_date;
item.goods_acceptanc_date = e.goods_acceptanc_date; item.goods_acceptanc_date = e.goods_acceptanc_date;
item.delivers_appendix_list = [];
for (let i = 0; i < e.list_deliver_data.length; i++) {
const b = e.list_deliver_data[i];
var a = {};
a.name = b.appendix_name;
a.url = b.appendix_url;
a.id = b.appendix_unid;
item.delivers_appendix_list.push(a);
}
this.delivers_data.push(item); this.delivers_data.push(item);
} }
}
}) })
.catch(err => { .catch(err => {
console.log(err.message); console.log(err.message);
}); });
this.$Axios({ this.$Axios({
method: "get", method: "get",
url: this.contract_base_url + id + "/acceptancs", url: this.contract_base_url + id + "/project/acceptancs",
headers: { "Content-Type": "application/json" } headers: { "Content-Type": "application/json" }
}) })
.then(response => { .then(response => {
if (!response.data.ecode || response.data != []) {
for (let i = 0; i < response.data.list_check_data.length; i++) { for (let i = 0; i < response.data.list_check_data.length; i++) {
var e = response.data.list_check_data[i]; var e = response.data.list_check_data[i];
if (e.acceptanc_type == "1") { if (e.acceptanc_type == "1") {
this.$set(this.first_acceptances_form, "acceptance_type", "1");
this.$set( this.$set(
this.first_acceptances_form, this.first_acceptancs_form,
"acceptance_date", "acceptanc_unid",
e.acceptanc_unid
);
this.$set(this.first_acceptancs_form, "acceptanc_type", "1");
this.$set(
this.first_acceptancs_form,
"acceptanc_date",
e.acceptanc_date e.acceptanc_date
); );
this.$set( this.$set(
this.first_acceptances_form, this.first_acceptancs_form,
"acceptance_note", "acceptanc_note",
e.acceptanc_note e.acceptanc_note
); );
for (let i = 0; i < e.appendix_list.length; i++) {
const b = e.appendix_list[i];
var a = {};
a.name = b.appendix_name;
a.url = b.appendix_url;
this.first_acceptancs_appendix_list.push(a);
}
} else if (e.acceptanc_type == "2") { } else if (e.acceptanc_type == "2") {
this.$set(this.final_acceptances_form, "acceptance_type", "2");
this.$set( this.$set(
this.final_acceptances_form, this.final_acceptancs_form,
"acceptance_date", "acceptanc_unid",
e.acceptanc_unid
);
this.$set(this.final_acceptancs_form, "acceptanc_type", "2");
this.$set(
this.final_acceptancs_form,
"acceptanc_date",
e.acceptanc_date e.acceptanc_date
); );
this.$set( this.$set(
this.final_acceptances_form, this.final_acceptancs_form,
"acceptance_note", "acceptanc_note",
e.acceptanc_note e.acceptanc_note
); );
for (let i = 0; i < e.appendix_list.length; i++) {
const b = e.appendix_list[i];
var a = {};
a.name = b.appendix_name;
a.url = b.appendix_url;
this.acceptancs_appendix_list.push(a);
}
}
}
}
})
.catch(err => {
console.log(err.message);
});
}
},
// getlocation end~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// !!!!!!~~~~~~~~~~~~~submit~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
form_submit(name) {
switch (name) {
case "form":
this.form.start_guarantee_date = this.start_guarantee_date;
this.form.end_guarantee_date = this.end_guarantee_date;
this.$Axios({
method: "put",
url: this.contract_base_url + this.form.contract_unid,
data: this.form,
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (response.data.ecode == 200) {
this.$alert("提交成功");
} else {
this.$alert("提交失败:" + response.data.enote);
}
})
.catch(err => {
this.$alert("提交失败");
});
break;
// ---------
case "payment":
var a = 0;
for (let i = 0; i < this.payments_data.length; i++) {
const e = this.payments_data[i];
if (e.payment_unid != null) {
this.$Axios({
method: "put",
url:
this.contract_base_url +
this.form.contract_unid +
"/payments",
data: {
list_payment_data: [e]
}
})
.then()
.catch(err => {
console.log(err.message);
a++;
});
} else {
this.$Axios({
method: "post",
url:
this.contract_base_url +
this.form.contract_unid +
"/payments",
data: {
list_payment_data: [e]
}
})
.then()
.catch(err => {
console.log(err.message);
a++;
});
}
}
a == 0 ? this.$alert("提交成功") : this.$alert("提交失败");
break;
// -------
case "reback":
var a = 0;
for (let i = 0; i < this.rebacks_data.length; i++) {
const e = this.rebacks_data[i];
if (e.reback_unid != null) {
this.$Axios({
method: "put",
url:
this.contract_base_url + this.form.contract_unid + "/rebacks",
data: { list_reback_data: [e] },
headers: { "Content-Type": "application/json" }
})
.then()
.catch(err => {
console.log(err.message);
a++;
});
} else {
this.$Axios({
method: "post",
url:
this.contract_base_url + this.form.contract_unid + "/rebacks",
data: { list_reback_data: [e] },
headers: { "Content-Type": "application/json" }
})
.then()
.catch(err => {
console.log(err.message);
a++;
});
} }
} }
a == 0 ? this.$alert("提交成功") : this.$alert("提交失败");
break;
case "receipt":
var a = 0;
for (let i = 0; i < this.receipts_data.length; i++) {
const e = this.receipts_data[i];
if (e.receipt_unid != null) {
this.$Axios({
method: "put",
url:
this.contract_base_url +
this.form.contract_unid +
"/receipts",
data: {
list_receipt_data: [e]
},
headers: { "Content-Type": "application/json" }
}) })
.then()
.catch(err => { .catch(err => {
console.log(err.message); console.log(err.message);
a++;
});
} else {
this.$Axios({
method: "post",
url:
this.contract_base_url +
this.form.contract_unid +
"/receipts",
data: {
list_receipt_data: [e]
},
headers: { "Content-Type": "application/json" }
})
.then()
.catch(err => {
console.log(err.message);
a++;
}); });
} }
}
a == 0 ? this.$alert("提交成功") : this.$alert("提交失败");
break;
case "deliver":
var a = 0;
for (let i = 0; i < this.delivers_data.length; i++) {
const e = this.delivers_data[i];
if (e.deliver_unid) {
this.$Axios({
method: "put",
url:
this.contract_base_url +
this.form.contract_unid +
"/delivers",
data: {
list_deliver_data: [e]
},
headers: { "Content-Type": "application/json" }
})
.then()
.catch(err => {
a++;
});
} else {
this.$Axios({
method: "post",
url:
this.contract_base_url +
this.form.contract_unid +
"/delivers",
data: {
list_deliver_data: [e]
}, },
beforeCreate() { headers: { "Content-Type": "application/json" }
var time = 1000; })
if (this.$route.params.contract_unid != 0) { .then()
time = 3000; .catch(err => {
console.log(err.message);
a++;
});
}
}
a == 0 ? this.$alert("提交成功") : this.$alert("提交失败");
break;
case "project":
var _this = this;
var p1 = new Promise(function(resolve, reject) {
_this.$refs.first_acceptancs_form.validate(valid => {
if (valid) {
resolve();
} }
const loading = this.$loading({
lock: true,
text: "加载中,请稍等",
background: "rgba(0, 0, 0, 1)"
}); });
setTimeout(() => { });
loading.close(); var p2 = new Promise(function(resolve, reject) {
}, time); _this.$refs.final_acceptancs_form.validate(valid2 => {
if (valid2) {
resolve();
}
});
});
Promise.all([p1, p2]).then(function() {
if (_this.first_acceptancs_form.acceptanc_unid != null) {
_this.$Axios({
method: "put",
url:
_this.contract_base_url +
_this.form.contract_unid +
"/project/acceptancs",
data: {
list_check_data: [_this.first_acceptancs_form]
},
headers: { "Content-Type": "application/json" }
});
} else {
_this.$Axios({
method: "post",
url:
_this.contract_base_url +
_this.form.contract_unid +
"/project/acceptancs",
data: {
list_check_data: [_this.first_acceptancs_form]
},
headers: { "Content-Type": "application/json" }
});
}
if (_this.final_acceptancs_form.acceptanc_unid != null) {
_this.$Axios({
method: "put",
url:
_this.contract_base_url +
_this.form.contract_unid +
"/project/acceptancs",
data: {
list_check_data: [_this.final_acceptancs_form]
},
headers: { "Content-Type": "application/json" }
});
} else {
_this.$Axios({
method: "post",
url:
_this.contract_base_url +
_this.form.contract_unid +
"/project/acceptancs",
data: {
list_check_data: [_this.final_acceptancs_form]
},
headers: { "Content-Type": "application/json" }
});
}
});
break;
default:
break;
}
this.$router.go(0);
}
},
created() {
this.get_provinces();
var id = this.$route.params.contract_unid;
this.get_contract_info(id);
},
watch: {
$route(to, from) {
this.$router.go(0);
}
} }
}; };
</script> </script>
...@@ -1887,9 +2292,6 @@ export default { ...@@ -1887,9 +2292,6 @@ export default {
color: black; color: black;
} }
#payments_dialog {
text-align: left;
}
.width-220 { .width-220 {
width: 300px; width: 300px;
} }
......
<template> <template>
<div> <el-card class="box-card">
后台管理 <div slot="header" class="clearfix">
<span style="font-size:24px">后台管理</span>
</div> </div>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<el-row type="flex" justify="start" style="text-align :left">
<el-col :span="6">
<el-input class="input" v-model="contract_unid" placeholder="合同编号"></el-input>
<el-button type="primary" @click="contract_unid_add">添加</el-button>
</el-col>
</el-row>
</el-card>
</template> </template>
<script>
export default {
name: "manage",
data() {
return {
code_base_url: disparch_data.code_base_url,
contract_base_url: disparch_data.contract_base_url,
contract_unid: null
};
},
methods: {
contract_unid_add() {
this.$Axios({
method: "post",
data: { contract_unid: this.contract_unid },
url: this.contract_base_url
}).then(response => {
this.contract_unid = null;
if (response.data.encode = '200') {
this.show_message("添加成功",'success')
}else {
this.show_message('添加失败','error')
}
});
},
show_message(message,type){
this.$message({
message:message,
type:type,
center:true,
showClose:true,
duration:1500
})
}
}
};
</script>
<style scoped>
.input {
width: 200px;
}
</style>
<template> <template>
<el-container> <el-container>
<el-aside width="15%"> <el-aside width="10%">
<el-menu :default-active="$route.path" class="el-menu-vertical-demo" router :collapse="false "> <el-menu :default-active="$route.path" class="el-menu-vertical-demo" router :collapse="false ">
<div style="height:20%" @mousemove="collapse = false" @mouseout="collapse = true"> <div style="height:20%" @mousemove="collapse = false" @mouseout="collapse = true">
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</el-menu-item> </el-menu-item>
<el-menu-item index="/nav/contract/0"> <el-menu-item index="/nav/contract/0">
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
<span slot="title">添加合同</span> <span slot="title">合同信息</span>
</el-menu-item> </el-menu-item>
<el-menu-item index="/nav/manage"> <el-menu-item index="/nav/manage">
<i class="el-icon-setting"></i> <i class="el-icon-setting"></i>
...@@ -25,7 +25,10 @@ ...@@ -25,7 +25,10 @@
</el-menu> </el-menu>
</el-aside> </el-aside>
<el-main> <el-main>
<keep-alive include="search">
<router-view></router-view> <router-view></router-view>
</keep-alive>
</el-main> </el-main>
</el-container> </el-container>
</template> </template>
...@@ -78,6 +81,6 @@ export default { ...@@ -78,6 +81,6 @@ export default {
height: 100%; height: 100%;
} }
.el-menu { .el-menu {
height: 80%; height: 100%;
} }
</style> </style>
<template> <template>
<div> <div>
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix ">
<span style="font-size:24px">检索条件</span> <span style="font-size:24px;padding-right:0px">检索条件</span>
</div> </div>
<el-form id="form" :inline="true" :model="search_form" class="demo-form-inline" label-width="100px" ref="search_form"> <el-form id="form" :inline="true" :model="search_form" class="demo-form-inline" label-width="100px" ref="search_form" :rules="search_form_rules">
<el-row> <el-row style="text-align:left">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="销售员" prop="salesperson_unid"> <el-form-item label="销售员" prop="salesperson_name__like">
<el-select v-model="search_form.salesperson_unid" filterable remote placeholder="销售人员" :remote-method="salespersonIdRemoteMethod"> <el-input style="width:217px" v-model="search_form.salesperson_name__like"></el-input>
<el-option v-for="(item,index) in salesperson_unid_selected_data" :key="index" :label="item.name" :value="item.code_unid">
</el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="项目名称" prop="project_unid"> <el-form-item label="项目名称" prop="project_name__like">
<el-select v-model="search_form.project_unid" filterable remote placeholder="项目名称" :remote-method="projectIdRemoteMethod"> <el-input style="width:217px" v-model="search_form.project_name__like"></el-input>
<el-option v-for="(item,index) in project_unid_selected_data" :key="index" :label="item.name" :value="index">
</el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="客户名称" prop="customer_unid"> <el-form-item label="客户名称" prop="customer_name__like">
<el-select v-model="search_form.customer_unid" filterable remote placeholder="客户名称" :remote-method="customerIdRemoteMethod"> <el-input style="width:217px" v-model="search_form.customer_name__like"></el-input>
<el-option v-for="(item,index) in customer_unid_selected_data" :key="index" :label="item.name" :value="index">
</el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="质保周期(月)" prop="guarantee_period"> <el-form-item label="质保周期(月)" prop="guarantee_period">
<el-input-number v-model="search_form.guarantee_period" :step="6" :min="6" :max="60" size="medium"></el-input-number> <el-select v-model="search_form.guarantee_period" clearable>
<el-option v-for="n in guarantee_period_list" :key="n" :label="n" :value="n"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row style="text-align:left">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="所属年份" prop="year"> <el-form-item label="所属年份" prop="year">
<el-select v-model="search_form.year"> <el-select v-model="search_form.year" clearable>
<el-option v-for="n in year_list" :key="n" :label="n" :value="n"> <el-option v-for="n in year_list" :key="n" :label="n" :value="n">
</el-option> </el-option>
</el-select> </el-select>
...@@ -47,41 +40,41 @@ ...@@ -47,41 +40,41 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="所属月份" prop="month"> <el-form-item label="所属月份" prop="month">
<el-select v-model="search_form.month"> <el-select v-model="search_form.month" clearable>
<el-option v-for="n in 12" :key="n" :label="n" :value="n"> <el-option v-for="n in month_list" :key="n" :label="n" :value="n">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="合同状态" prop="contract_state"> <el-form-item label="合同状态" prop="contract_state">
<el-select v-model="search_form.contract_state"> <el-select v-model="search_form.contract_state" clearable>
<el-option v-for="(value,index) in contract_state_data" :key="index" :label="value" :value="index"> <el-option v-for="(value,index) in contract_state_data" :key="index" :label="value" :value="index+1">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="合同性质" prop="contract_type"> <el-form-item label="合同性质" prop="contract_type">
<el-select v-model="search_form.contract_type"> <el-select v-model="search_form.contract_type" clearable>
<el-option v-for="(value,index) in contract_type_data" :key="index" :label="value" :value="index"> <el-option v-for="(value,index) in contract_type_data" :key="index" :label="value" :value="index+1">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row style="text-align:left">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="产品线类型" prop="product_line_type"> <el-form-item label="产品线类型" prop="product_line_type">
<el-select v-model="search_form.product_line_type"> <el-select v-model="search_form.product_line_type" clearable>
<el-option v-for="(value,index) in product_line_type_data" :key="index" :label="value" :value="index"> <el-option v-for="(value,index) in product_line_type_data" :key="index" :label="value" :value="index+1">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否终验" prop="acceptance_type"> <el-form-item label="是否终验" prop="acceptance_type">
<el-select v-model="search_form.acceptance_type"> <el-select v-model="search_form.acceptance_type" clearable>
<el-option label="是" :value="1"> <el-option label="是" :value="1">
</el-option> </el-option>
<el-option label="否" :value="0"> <el-option label="否" :value="0">
...@@ -91,7 +84,7 @@ ...@@ -91,7 +84,7 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否归档" prop="is_archive"> <el-form-item label="是否归档" prop="is_archive">
<el-select v-model="search_form.is_archive"> <el-select v-model="search_form.is_archive" clearable>
<el-option label="是" value=true></el-option> <el-option label="是" value=true></el-option>
<el-option label="否" value=false></el-option> <el-option label="否" value=false></el-option>
</el-select> </el-select>
...@@ -99,17 +92,72 @@ ...@@ -99,17 +92,72 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="账款状态" prop="amount_state_unid"> <el-form-item label="账款状态" prop="amount_state_unid">
<el-select v-model="search_form.amount_state_unid"> <el-select v-model="search_form.amount_state_unid" clearable>
<el-option v-for="(value,index) in amount_state_unid_data" :key="index" :label="value" :value="index"> <el-option v-for="(value,index) in amount_state_unid_data" :key="index" :label="value" :value="index+1">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row style="text-align:left">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="确认收入金额" prop="confirm_income_amount"> <el-form-item label="确认收入金额" prop="confirm_income_amount">
<el-input v-model="search_form.confirm_income_amount"></el-input> <el-input style="width:217px" v-model="search_form.confirm_income_amount"></el-input>
</el-form-item>
</el-col>
<el-col :span="12" style="text-align:left">
<el-form-item label="项目所在地">
<el-select style="width:100px" v-model="search_form.province" clearable placeholder="省" @change="get_cities()">
<el-option v-for="(item,index) in provinces" :key="index" :label="item.name" :value="item.province_unid">
</el-option>
</el-select>
<el-select style="width:100px" v-model="search_form.city" clearable placeholder="市" @change="get_counties()">
<el-option v-for="(item,index) in cities" :key="index" :label="item.name" :value="item.city_unid">
</el-option>
</el-select>
<el-select style="width:100px" v-model="search_form.county" clearable placeholder="区县">
<el-option v-for="(item,index) in counties" :key="index" :label="item.name" :value="item.county_unid">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row style="text-align:left">
<el-col :span="12">
<el-form-item label="签订日期" prop="start_date">
<el-date-picker style="width:217px" v-model="search_form.start_date" type="date" placeholder="开始日期" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<el-form-item prop="end_date">
<el-date-picker style="width:217px" v-model="search_form.end_date" type="date" placeholder="结束日期" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="逾期天数" prop="overdays_start_point">
<el-input style="width:217px" v-model="search_form.overdays_start_point" placeholder="不填默认为0"></el-input>
</el-form-item>
<el-form-item prop="overdays_end_point">
<el-input style="width:217px" v-model="search_form.overdays_end_point" placeholder="不填则无上限"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row style="text-align:left">
<el-col :span="12">
<el-form-item label="合同金额" prop="amount_start_point">
<el-input style="width:217px" v-model="search_form.amount_start_point" placeholder="不填默认为0"></el-input>
</el-form-item>
<el-form-item prop="amount_end_point">
<el-input style="width:217px" v-model="search_form.amount_end_point" placeholder="不填则无上限"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="应收账款余额" prop="leave_amount_start_point">
<el-input style="width:217px" v-model="search_form.leave_amount_start_point" placeholder="不填默认为0"></el-input>
</el-form-item>
<el-form-item prop="leave_amount_end_point">
<el-input style="width:217px" v-model="search_form.leave_amount_end_point" placeholder="不填则无上限"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -124,18 +172,136 @@ ...@@ -124,18 +172,136 @@
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span style="font-size:24px">检索结果</span> <span style="font-size:24px;padding-right:0px">检索结果</span>
</div> </div>
<!-- test------------------------------------------------------------------------------------------------ -->
<el-table :data="list_data" style="width: 100%">
<el-table-column type="expand">
<template slot-scope="scope">
<el-row type="flex" justify="space-around" style="text-align:left;padding-bottom:5px">
<el-col :span="4">
<span>暂停金额:</span>{{scope.row.stop_amount}}
</el-col>
<el-col :span="4">
<span>坏账金额:</span>{{scope.row.bad_amount}}
</el-col>
<el-col :span="4">
<span>豁免金额:</span>{{scope.row.exemptions_amount}}
</el-col>
<el-col :span="4">
<span>抵扣金额:</span>{{scope.row.deduct_amount}}
</el-col>
<el-col :span="4">
<span>累计已收款:</span>{{scope.row.total_reback_amount}}
</el-col>
</el-row>
<el-row type="flex" justify="space-around" style="text-align:left;padding-bottom:5px">
<el-col :span="4">
<span>合同余额:</span>{{scope.row.contract_remain}}
</el-col>
<el-col :span="4">
<span>合同状态:</span>{{scope.row.contract_state_name}}
</el-col>
<el-col :span="4">
<span>累计应收:</span>{{scope.row.total_receive_amount}}
</el-col>
<el-col :span="4">
<span>应收账款余额:</span>{{scope.row.total_amount_remain}}
</el-col>
<el-col :span="4">
<span>逾期天数:</span>{{scope.row.over_days}}
</el-col>
</el-row>
<el-row type="flex" justify="space-around" style="text-align:left;padding-bottom:5px">
<el-col :span="4">
<span>预付款金额:</span>{{scope.row.advance_pay}}
</el-col>
<el-col :span="4">
<span>预付款到期日:</span>{{scope.row.advance_pay_date}}
</el-col>
<el-col :span="4">
<span>到货款金额:</span>{{scope.row.arrive_pay}}
</el-col>
<el-col :span="4">
<span>发货日期:</span>{{scope.row.deliver_date}}
</el-col>
<el-col :span="4">
<span>到货款到期日:</span>{{scope.row.arrive_pay_date}}
</el-col>
</el-row>
<el-row type="flex" justify="space-around" style="text-align:left;padding-bottom:5px">
<el-col :span="4">
<span>验收款金额:</span>{{scope.row.acceptanc_pay}}
</el-col>
<el-col :span="4">
<span>验收款日期:</span>{{scope.row.acceptanc_date}}
</el-col>
<el-col :span="4">
<span>验收款到期日:</span>{{scope.row.acceptanc_pay_date}}
</el-col>
<el-col :span="4">
<span>质保金额:</span>{{scope.row.mainten_pay_deliver}}
</el-col>
<el-col :span="4">
<span>质保到期日:</span>{{scope.row.mainten_pay_deliver_date}}
</el-col>
</el-row>
<el-row> <el-row>
<span>备注:</span>{{scope.row.contract_note}}
</el-row>
</template>
</el-table-column>
<el-table-column label="合同编号" prop="contract_unid" min-width="120" align="center">
</el-table-column>
<el-table-column label="项目名称" prop="project_name" min-width="150" align="center">
</el-table-column>
<el-table-column label="客户名称" prop="customer_name" min-width="150" align="center">
</el-table-column>
<el-table-column label="合同金额" prop="contract_amount" min-width="120" align="center">
</el-table-column>
<el-table-column label="签订时间" prop="sign_date" min-width="100" align="center">
</el-table-column>
<el-table-column label="所属年份" min-width="80" align="center">
<template slot-scope="scope">
{{get_year(scope.row.sign_date)}}
</template>
</el-table-column>
<el-table-column label="所属月份" min-width="80" align="center">
<template slot-scope="scope">
{{get_month(scope.row.sign_date)}}
</template>
</el-table-column>
<el-table-column label="产品线类型" prop="product_line_type_name" min-width="120" align="center">
</el-table-column>
<el-table-column label="销售员" prop="salesperson_unid" min-width="100" align="center">
</el-table-column>
<el-table-column label="省" prop="province_name" min-width="80" align="center">
</el-table-column>
<el-table-column label="市" prop="city_name" min-width="80" align="center">
</el-table-column>
<el-table-column label="县" prop="county_name" min-width="80" align="center">
</el-table-column>
<el-table-column label="操作" min-width="50" align="center" fixed="right">
<template slot-scope="scope">
<el-button type="text" @click="go_to(scope.row.contract_unid)">
详情
</el-button>
</template>
</el-table-column>
</el-table>
<!-- test------------------------------------------------------------------------------------------------ -->
<el-row style="padding-top:50px">
<el-col :span="20"> <el-col :span="20">
<el-pagination style="float:left" background layout="prev, pager, next" :total="total_data" :page-size="10" prev-text="上一页" next-text="下一页" :current-page="current_page" @current-change="current_change"> <el-pagination style="float:left" background layout="prev, pager, next" :total="total_data" :page-size="limit" prev-text="上一页" next-text="下一页" :current-page="current_page" @current-change="page_change">
</el-pagination> </el-pagination>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-button-group style="float:right"> <el-button-group style="float:right">
<el-button type="primary" size="small">导出</el-button> <el-button type="primary" size="small" @click="export_contract">导出</el-button>
<el-button type="primary" size="small">导入</el-button> <el-button type="primary" size="small">导入</el-button>
</el-button-group> </el-button-group>
</el-col> </el-col>
...@@ -146,23 +312,43 @@ ...@@ -146,23 +312,43 @@
</template> </template>
<script> <script>
const twodecimalrule = {
pattern: /((^[1-9]\d*)|^0)(\.\d{2})$/,
message: "请输入数字并保留两位小数",
trigger: "blur"
};
export default { export default {
name:'search',
data() { data() {
return { return {
provinces: [],
cities: [],
counties: [],
code_base_url: disparch_data.code_base_url, code_base_url: disparch_data.code_base_url,
contract_base_url: disparch_data.contract_base_url, contract_base_url: disparch_data.contract_base_url,
project_unid_selected_data: [], //项目名称数据数组 month_list: [
customer_unid_selected_data: [], //客户名称数据数组 "01",
salesperson_unid_selected_data: [], "02",
contract_state_data: ["已完成", "代发货", "施工中", "项目暂停"], "03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12"
],
contract_state_data: ["已完成", "待发货", "施工中", "项目暂停"],
contract_type_data: ["供货", "施工", "集成", "维保"], contract_type_data: ["供货", "施工", "集成", "维保"],
product_line_type_data: ["安防", "交通", "客流", "维保"], product_line_type_data: ["安防", "交通", "客流", "维保"],
amount_state_unid_data: ["正常验收款", "正常维保"], amount_state_unid_data: ["正常验收款", "正常维保"],
search_form: { search_form: {
salesperson_unid: null, salesperson_name__like: null,
project_unid: null, project_name__like: null,
customer_unid: null, customer_name__like: null,
guarantee_period: 6, guarantee_period: null,
year: null, year: null,
month: null, month: null,
contract_state: null, contract_state: null,
...@@ -171,11 +357,28 @@ export default { ...@@ -171,11 +357,28 @@ export default {
acceptance_type: null, acceptance_type: null,
is_archive: null, is_archive: null,
amount_state_unid: null, amount_state_unid: null,
confirm_income_amount: null confirm_income_amount: null,
province_name: null,
city_name: null,
county_name: null,
start_data: null,
end_date: null,
overdays_start_point: null,
overdays_end_point: null,
amount_start_point: null,
amount_end_point: null,
leave_amount_start_point: null,
leave_amount_end_point: null,
}, },
total_data: 1,
list_data: [],
limit: 10,
total_data: 0,
current_page: 1, current_page: 1,
result_data: []
search_form_rules: {
confirm_income_amount: twodecimalrule
}
}; };
}, },
computed: { computed: {
...@@ -185,67 +388,187 @@ export default { ...@@ -185,67 +388,187 @@ export default {
arr.push(i); arr.push(i);
} }
return arr; return arr;
},
offset() {
return (this.current_page - 1) * this.limit;
},
guarantee_period_list(){
var arr = [];
var a = 6;
for (let i = 0; i < 10; i ++) {
const element = 10[i];
arr.push(a);
a += 6;
}
return arr
} }
}, },
methods: { methods: {
// remote--------------------------------------------------------------------------------- // remote---------------------------------------------------------------------------------
salespersonIdRemoteMethod(query) { // salespersonIdRemoteMethod(query) {
// this.$Axios({
// method: "get",
// url: this.code_base_url + "simple/cates/09BB973F92/codes"
// })
// .then(response => {
// this.salesperson_unid_selected_data = response.data.list_data;
// })
// .catch(err => {
// console.log(err.message);
// });
// },
// projectIdRemoteMethod(query) {
// this.$Axios({
// method: "get",
// url: this.contract_base_url + "projects"
// })
// .then(response => {
// this.project_unid_selected_data = response.data;
// })
// .catch(err => {
// console.log(err.message);
// });
// },
// customerIdRemoteMethod(query) {
// this.$Axios({
// method: "get",
// url: this.contract_base_url + "customers"
// })
// .then(response => {
// this.customer_unid_selected_data = response.data.list_data;
// })
// .catch(err => {
// console.log(err.message);
// });
// },
// remote---------------------------------------------------------------------------------
// get start~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
get_provinces() {
this.$Axios({ this.$Axios({
method: "get", method: "get",
url: this.code_base_url + "simple/cates/09BB973F92/codes" url: this.code_base_url + "countries/0E229CD043/provinces"
}) })
.then(response => { .then(response => {
this.salesperson_unid_selected_data = response.data.list_data; this.provinces = response.data.list_data;
}) })
.catch(err => { .catch(err => {
console.log(err.message); console.log(err.message);
}); });
}, },
projectIdRemoteMethod(query) { get_cities() {
this.search_form.city = "";
this.search_form.county = "";
if (this.search_form.province) {
this.$Axios({ this.$Axios({
method: "get", method: "get",
url: this.code_base_url + "simple/cates/09BB973F92/codes" url:
this.code_base_url +
"countries/0E229CD043/provinces/" +
this.search_form.province +
"/cities"
}) })
.then(response => { .then(response => {
this.project_unid_selected_data = response.data.list_data; this.cities = response.data.list_data;
}) })
.catch(err => { .catch(err => {
console.log(err.message); console.log(err.message);
}); });
}
}, },
customerIdRemoteMethod(query) { get_counties() {
this.search_form.county = "";
if (this.search_form.province && this.search_form.city) {
this.$Axios({ this.$Axios({
method: "get", method: "get",
url: this.code_base_url + "simple/cates/09BB973F92/codes" url:
this.code_base_url +
"countries/0E229CD043/provinces/" +
this.search_form.province +
"/cities/" +
this.search_form.city +
"/counties"
}) })
.then(response => { .then(response => {
this.customer_unid_selected_data = response.data.list_data; this.counties = response.data.list_data;
}) })
.catch(err => { .catch(err => {
console.log(err.message); console.log(err.message);
}); });
}
}, },
// remote--------------------------------------------------------------------------------- get_list_data() {
var a = this.search_form;
a.offset = this.offset;
a.limit = this.limit;
this.$Axios({
methods: "get",
url: this.contract_base_url,
params: a,
headers: { "Content-Type": "application/json" }
})
.then(response => {
this.total_data = response.data.total_number;
this.list_data = response.data.list_data;
})
.catch(err => {
console.log(err.message);
});
},
get_year(date) {
if (date) {
return date.slice(0, 4);
}
},
get_month(date) {
if (date) {
return date.slice(5, 7);
}
},
// get end---------------------------------------------------------------------------------------------
reset() { reset() {
this.$confirm("清空检索条件?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.$refs["search_form"].resetFields(); this.$refs["search_form"].resetFields();
});
}, },
commit() { commit() {
this.current_page = 1;
sessionStorage.setItem("search_form", JSON.stringify(this.search_form)); sessionStorage.setItem("search_form", JSON.stringify(this.search_form));
console.log(JSON.parse(sessionStorage.getItem("search_form"))); this.get_list_data();
}, },
current_change(val) { page_change(val) {
this.search_form = JSON.parse(sessionStorage.getItem("search_form"));
this.current_page = val; this.current_page = val;
console.log(this.current_page); console.log(this.current_page);
this.list_data = this.get_list_data().data;
},
export_contract() {
this.$Axios({
method:"get",
url:this.contract_base_url + "export",
params:this.search_form,
responseType:"blob"
}).then( res => {
let blob = new Blob([res.data],{type:"application/vnd.ms-excel;charset=UTF-8"});
let ourl = URL.createObjectURL(blob);
window.location.href = ourl;
}).catch(err => {
console.log(err.message);
})
},
go_to(id){
this.$router.push('/nav/contract/'+id);
} }
},
created() {
this.get_provinces();
} }
}; };
</script> </script>
<style scoped> <style scoped>
span {
padding-right: 10px;
}
</style> </style>
...@@ -18,13 +18,67 @@ Vue.prototype.$Axios = Axios ...@@ -18,13 +18,67 @@ Vue.prototype.$Axios = Axios
/* eslint-disable no-new */ /* eslint-disable no-new */
Vue.use(ElementUI) Vue.use(ElementUI)
Vue.filter('twoDecimal',function(value){ Vue.filter('twoDecimal', function (value) {
value=Number(value); value = Number(value);
return value.toFixed(2); return value.toFixed(2);
}); });
let loading;
function startLoading() {
loading = Vue.prototype.$loading({
lock: true,
text: "加载中,请稍等",
background: "rgba(0, 0, 0, 1)"
})
}
function finishLoading() {
loading.close();
}
let requestCount = 0;
function showLoading() {
if (requestCount === 0) {
startLoading();
}
requestCount++;
};
function hideLoading() {
if (requestCount <= 0) return;
requestCount--;
if (requestCount === 0) {
finishLoading();
}
};
Axios.interceptors.request.use(
(config) => {
showLoading();
return config;
},
function (err) {
return Promise.reject(err);
}
);
Axios.interceptors.response.use((response) => {
hideLoading();
return response;
}, function (err) {
hideLoading()
return Promise.reject(err);
});
new Vue({ new Vue({
el: '#app', el: '#app',
router, router,
components: { App }, components: {
App
},
template: '<App/>' template: '<App/>'
}) })
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>finance_serv</title><link href=./static/css/app.2750079f5a21b2dc8369150cee2e9eec.css rel=stylesheet></head><body style="height: 100%"><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.9b1c2d2ef553539ff67b.js></script><script type=text/javascript src=./static/js/app.605580535f201415c104.js></script></body></html>
\ No newline at end of file \ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>finance_serv</title><link href=./static/css/app.2daec94ec9c6ff64322d10b5951c28f8.css rel=stylesheet></head><body style="height: 100%"><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.9b1c2d2ef553539ff67b.js></script><script type=text/javascript src=./static/js/app.6e80f9771ed029876223.js></script></body></html>
\ No newline at end of file \ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
{"version":3,"sources":["webpack:///webpack/bootstrap f0065d4e9c493dad37ba"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","result","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","__webpack_require__","s","installedModules","2","exports","module","l","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","p","oe","err","console","error"],"mappings":"aACA,IAAAA,EAAAC,OAAA,aACAA,OAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,EAAAC,KACQD,EAAAN,EAAAQ,OAAoBF,IAC5BF,EAAAJ,EAAAM,GACAG,EAAAL,IACAG,EAAAG,KAAAD,EAAAL,GAAA,IAEAK,EAAAL,GAAA,EAEA,IAAAD,KAAAF,EACAU,OAAAC,UAAAC,eAAAC,KAAAb,EAAAE,KACAY,EAAAZ,GAAAF,EAAAE,IAIA,IADAL,KAAAE,EAAAC,EAAAC,GACAK,EAAAC,QACAD,EAAAS,OAAAT,GAEA,GAAAL,EACA,IAAAI,EAAA,EAAYA,EAAAJ,EAAAM,OAA2BF,IACvCD,EAAAY,IAAAC,EAAAhB,EAAAI,IAGA,OAAAD,GAIA,IAAAc,KAGAV,GACAW,EAAA,GAIA,SAAAH,EAAAd,GAGA,GAAAgB,EAAAhB,GACA,OAAAgB,EAAAhB,GAAAkB,QAGA,IAAAC,EAAAH,EAAAhB,IACAG,EAAAH,EACAoB,GAAA,EACAF,YAUA,OANAN,EAAAZ,GAAAW,KAAAQ,EAAAD,QAAAC,IAAAD,QAAAJ,GAGAK,EAAAC,GAAA,EAGAD,EAAAD,QAKAJ,EAAAO,EAAAT,EAGAE,EAAAQ,EAAAN,EAGAF,EAAAS,EAAA,SAAAL,EAAAM,EAAAC,GACAX,EAAAY,EAAAR,EAAAM,IACAhB,OAAAmB,eAAAT,EAAAM,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMAX,EAAAiB,EAAA,SAAAZ,GACA,IAAAM,EAAAN,KAAAa,WACA,WAA2B,OAAAb,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAL,EAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAO,EAAAC,GAAsD,OAAA1B,OAAAC,UAAAC,eAAAC,KAAAsB,EAAAC,IAGtDpB,EAAAqB,EAAA,KAGArB,EAAAsB,GAAA,SAAAC,GAA8D,MAApBC,QAAAC,MAAAF,GAAoBA","file":"static/js/manifest.3ad1d5771e9b13dbdad2.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f0065d4e9c493dad37ba"],"sourceRoot":""}
\ No newline at end of file \ No newline at end of file
{"version":3,"sources":["webpack:///webpack/bootstrap c3f26df8049062b84ab9"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","result","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","__webpack_require__","s","installedModules","2","exports","module","l","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","p","oe","err","console","error"],"mappings":"aACA,IAAAA,EAAAC,OAAA,aACAA,OAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,EAAAC,KACQD,EAAAN,EAAAQ,OAAoBF,IAC5BF,EAAAJ,EAAAM,GACAG,EAAAL,IACAG,EAAAG,KAAAD,EAAAL,GAAA,IAEAK,EAAAL,GAAA,EAEA,IAAAD,KAAAF,EACAU,OAAAC,UAAAC,eAAAC,KAAAb,EAAAE,KACAY,EAAAZ,GAAAF,EAAAE,IAIA,IADAL,KAAAE,EAAAC,EAAAC,GACAK,EAAAC,QACAD,EAAAS,OAAAT,GAEA,GAAAL,EACA,IAAAI,EAAA,EAAYA,EAAAJ,EAAAM,OAA2BF,IACvCD,EAAAY,IAAAC,EAAAhB,EAAAI,IAGA,OAAAD,GAIA,IAAAc,KAGAV,GACAW,EAAA,GAIA,SAAAH,EAAAd,GAGA,GAAAgB,EAAAhB,GACA,OAAAgB,EAAAhB,GAAAkB,QAGA,IAAAC,EAAAH,EAAAhB,IACAG,EAAAH,EACAoB,GAAA,EACAF,YAUA,OANAN,EAAAZ,GAAAW,KAAAQ,EAAAD,QAAAC,IAAAD,QAAAJ,GAGAK,EAAAC,GAAA,EAGAD,EAAAD,QAKAJ,EAAAO,EAAAT,EAGAE,EAAAQ,EAAAN,EAGAF,EAAAS,EAAA,SAAAL,EAAAM,EAAAC,GACAX,EAAAY,EAAAR,EAAAM,IACAhB,OAAAmB,eAAAT,EAAAM,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMAX,EAAAiB,EAAA,SAAAZ,GACA,IAAAM,EAAAN,KAAAa,WACA,WAA2B,OAAAb,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAL,EAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAO,EAAAC,GAAsD,OAAA1B,OAAAC,UAAAC,eAAAC,KAAAsB,EAAAC,IAGtDpB,EAAAqB,EAAA,KAGArB,EAAAsB,GAAA,SAAAC,GAA8D,MAApBC,QAAAC,MAAAF,GAAoBA","file":"static/js/manifest.3ad1d5771e9b13dbdad2.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap c3f26df8049062b84ab9"],"sourceRoot":""}
\ No newline at end of file \ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!