Commit 20733794 by 谢明辉

s

1 parent 8a430ca7
......@@ -20,7 +20,7 @@ module.exports = {
notifyOnErrors: true,
poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
/**
* Source Maps
*/
......
......@@ -2,7 +2,7 @@
<div>
<!-- 合同基本信息开始~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<el-card class="box-card">
<el-card class="box-card" :name="1">
<div slot="header" class="clearfix">
<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>
......@@ -10,10 +10,10 @@
<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-row>
<el-row style="text-align:left">
<el-col :span="8">
<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>
</el-select>
......@@ -21,7 +21,7 @@
</el-col>
<el-col :span="8">
<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>
</el-select>
......@@ -29,33 +29,33 @@
</el-col>
<el-col :span="8">
<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>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row style="text-align:left">
<el-col :span="8">
<el-form-item label="客户名称">
<el-select class="width-220" v-model="form.customer_unid" 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-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="item.customer_unid" :label="item.customer_name" :value="item.customer_unid">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<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>
</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>
</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>
</el-select>
......@@ -67,28 +67,28 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row style="text-align:left">
<el-col :span="8">
<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-form-item>
</el-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
<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-col>
</el-row>
<el-row>
<el-row style="text-align:left">
<el-col :span="8">
<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>
</el-select>
......@@ -96,7 +96,7 @@
</el-col>
<el-col :span="8">
<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>
</el-select>
......@@ -104,14 +104,14 @@
</el-col>
<el-col :span="8">
<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>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row style="text-align:left">
<el-col :span="8">
<el-form-item label="合同金额" prop="contract_amount">
<el-input class="width-220" v-model="form.contract_amount"></el-input>
......@@ -128,7 +128,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row style="text-align:left">
<el-col :span="8">
<el-form-item label="累计回款额">
<el-input class="width-220" v-model="total_reback_amount" :disabled="true"></el-input>
......@@ -145,7 +145,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row style="text-align:left">
<el-col :span="8">
<el-form-item label="合同余额">
<el-input class="width-220" v-model="contract_remaining" :disabled="true"></el-input>
......@@ -162,10 +162,10 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row style="text-align:left">
<el-col :span="8">
<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="false"></el-option>
</el-select>
......@@ -182,7 +182,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row style="text-align:left">
<el-col :span="8">
<el-form-item label="累计应收款">
<el-input class="width-220" v-model="total_receive_amount" :disabled="true"></el-input>
......@@ -199,7 +199,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row style="text-align:left">
<el-col :span="8">
<el-form-item label="确认收入金额" prop="confirm_income_amount">
<el-input class="width-220" v-model="form.confirm_income_amount"></el-input>
......@@ -207,23 +207,23 @@
</el-col>
<el-col :span="8">
<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>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="9">
<el-row style="text-align:left">
<el-col :span="8">
<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-form-item>
</el-col>
<el-col :span="15">
<el-col :span="15" style="text-align:left">
<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>
</el-select>
......@@ -234,17 +234,19 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-row style="text-align:left">
<el-col :span="8">
<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-col>
<el-col :span="12">
<el-upload class="upload-demo" action="" drag multiple :file-list="contract_appendix_list" :http-request="test">
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或点击上传</div>
</el-upload>
<el-col :span="9">
<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>
<div class="el-upload__text">将文件拖到此处,或点击上传</div>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
......@@ -263,10 +265,10 @@
<transition name="el-fade-in-linear">
<div id="payments_data_table" v-show="payments_show">
<el-table :data="payments_data" style="width: 100%">
<el-table-column label="付款进度" min-width="100" align="center">
<template slot-scope="scope">
<el-table-column prop="payment_progress" label="付款进度" min-width="100" align="center">
<!-- <template slot-scope="scope">
{{scope.$index + 1}}
</template>
</template> -->
</el-table-column>
<el-table-column label="付款类型" min-width="100" align="center">
<template slot-scope="scope">
......@@ -275,7 +277,10 @@
</el-table-column>
<el-table-column prop="days" label="天数" min-width="100" align="center">
</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 label="本期应付款日期" min-width="200" align="center">
<template slot-scope="scope">
......@@ -284,7 +289,7 @@
</el-table-column>
<el-table-column prop="amount" label="本期应付款金额" min-width="200" align="center">
<template slot-scope="scope">
{{get_pay_amount(scope.$index)}}
{{get_pay_amount(scope.$index).toFixed(2)}}
</template>
</el-table-column>
<el-table-column prop="payment_requirement" label="本期付款条件" min-width="300" align="center">
......@@ -294,7 +299,7 @@
<el-button @click.native.prevent="payment_data_modify(scope.$index, payments_data)" type="primary" round>
修改
</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>
</template>
......@@ -312,7 +317,7 @@
<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-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>
</el-select>
......@@ -346,10 +351,10 @@
<transition name="el-fade-in-linear">
<div id="rebacks_data_table" v-show="rebacks_show">
<el-table :data="rebacks_data" style="width:100%">
<el-table-column label="回款进度" min-width="100" align="center">
<template slot-scope="scope">
<el-table-column label="回款进度" prop="reback_progress" min-width="100" align="center">
<!-- <template slot-scope="scope">
{{scope.$index + 1}}
</template>
</template> -->
</el-table-column>
<el-table-column prop="actual_reback_amount" label="实际回款金额" min-width="200" align="center">
</el-table-column>
......@@ -367,7 +372,7 @@
<el-button @click.native.prevent="reback_data_modify(scope.$index, rebacks_data)" type="primary" round>
修改
</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>
</template>
......@@ -440,7 +445,7 @@
<el-button @click.native.prevent="receipt_data_modify(scope.$index, receipts_data)" type="primary" round>
修改
</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>
</template>
......@@ -493,7 +498,7 @@
<el-button @click.native.prevent="deliver_data_modify(scope.$index, delivers_data)" type="primary" round>
修改
</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>
</template>
......@@ -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>
</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>
<div slot="footer" class="dialog-footer">
......@@ -532,18 +539,18 @@
<el-card class="box-card">
<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>
</div>
<transition name="el-fade-in-linear">
<div id="acceptance_form" v-show="acceptance_show">
<el-form :inline="true" :model="first_acceptances_form" class="demo-form-inline" label-width="100px" :rules="acceptance_form_rules" ref="first_acceptances_form">
<div id="acceptanc_form" v-show="acceptanc_show">
<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-col :span="8">
<el-tooltip class="item" effect="dark" content="填写初验必须填写终验" placement="top">
<el-form-item label="是否初验" prop="acceptance_type">
<el-select class="width-220" v-model="first_acceptances_form.acceptance_type">
<el-form-item label="是否初验" prop="acceptanc_type">
<el-select class="width-220" v-model="first_acceptancs_form.acceptanc_type" clearable>
<el-option label="是" value="1">
</el-option>
<el-option label="否" value="">
......@@ -553,27 +560,32 @@
</el-tooltip>
</el-col>
<el-col :span="8">
<el-form-item label="项目验收日期" prop="acceptance_date">
<el-date-picker class="width-220" v-model="first_acceptances_form.acceptance_date" type="date" value-format="yyyy-MM-dd">
<el-form-item label="项目验收日期" prop="acceptanc_date">
<el-date-picker class="width-220" v-model="first_acceptancs_form.acceptanc_date" type="date" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<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-col>
</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-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-col :span="8">
<el-tooltip class="item" effect="dark" content="填写初验必须填写终验" placement="top">
<el-form-item label="是否终验" prop="acceptance_type">
<el-select class="width-220" v-model="final_acceptances_form.acceptance_type">
<el-form-item label="是否终验" prop="acceptanc_type">
<el-select class="width-220" v-model="final_acceptancs_form.acceptanc_type" clearable>
<el-option label="是" value="2">
</el-option>
<el-option label="否" value="">
......@@ -583,19 +595,23 @@
</el-tooltip>
</el-col>
<el-col :span="8">
<el-form-item label="项目验收日期" prop="acceptance_date">
<el-date-picker class="width-220" v-model="final_acceptances_form.acceptance_date" type="date" value-format="yyyy-MM-dd">
<el-form-item label="项目验收日期" prop="acceptanc_date">
<el-date-picker class="width-220" v-model="final_acceptancs_form.acceptanc_date" type="date" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<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-col>
</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-form>
</div>
......@@ -615,6 +631,8 @@ export default {
data() {
return {
contract_appendix_list: [],
acceptancs_appendix_list: [],
first_acceptancs_appendix_list: [],
operate_type: [0, 0, 0, 0, 0, 0], //整个页面的操作类型,一共6个表单,0表示新增,1表示修改
code_base_url: disparch_data.code_base_url,
contract_base_url: disparch_data.contract_base_url,
......@@ -635,11 +653,11 @@ export default {
"质保款(验收节点)"
],
product_line_type_data: ["安防", "交通", "客流", "维保"],
contract_state_data: ["已完成", "发货", "施工中", "项目暂停"],
contract_state_data: ["已完成", "发货", "施工中", "项目暂停"],
contract_type_data: ["供货", "施工", "集成", "维保"],
amount_state_unid_data: ["正常验收款", "正常维保"],
mainten_start_point_data: ["签订时间", "到货验收时间", "项目终验时间"],
guarantee_date: [], //维保服务期,数组形式的日期,0开始,1结束。
guarantee_date: [,], //维保服务期,数组形式的日期,0开始,1结束。
// show and display~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
payments_dialog_show: false,
receipts_dialog_show: false,
......@@ -650,7 +668,7 @@ export default {
rebacks_show: true,
receipts_show: true,
delivers_show: true,
acceptance_show: true,
acceptanc_show: true,
// show and display~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
form: {
// 合同编号
......@@ -671,10 +689,6 @@ export default {
guarantee_period: 6,
// 签订时间
sign_date: "",
// 所属年份
year: "",
// 所属月份
month: "",
// 产品线类型
product_line_type: null,
// 合同状态
......@@ -710,35 +724,40 @@ export default {
// 合同备注
contract_note: "",
// 合同附件
appendix_unids: {},
appendix_unids: [],
start_guarantee_date: "",
end_guarantee_date: ""
},
// 工程验收表单
first_acceptances_form: {
acceptance_type: null,
acceptance_date: null,
acceptance_note: null,
first_acceptancs_form: {
acceptanc_unid: null,
acceptanc_type: null,
acceptanc_date: null,
acceptanc_note: null,
appendix_unids: []
},
final_acceptances_form: {
acceptance_type: null,
acceptance_date: null,
acceptance_note: null,
final_acceptancs_form: {
acceptanc_unid: null,
acceptanc_type: null,
acceptanc_date: null,
acceptanc_note: null,
appendix_unids: []
},
// 发货信息表单和数据,提交时提交data里的数据
delivers_data: [],
delivers_form: {
deliver_unid: null,
deliver_goods_date: "",
goods_acceptanc_date: "",
appendix_unids: []
appendix_unids: [],
delivers_appendix_list: []
},
// 付款约定表单和数据,提交时提交data里的数据
payments_data: [],
payments_form: {
payment_unid: null,
payment_type: "",
days: "",
payment_propority: "",
......@@ -747,6 +766,7 @@ export default {
// 回款信息表单和数据,提交时提交data里的数据
rebacks_data: [],
rebacks_form: {
reback_unid: null,
actual_reback_amount: 0,
reback_date: "",
reback_note: ""
......@@ -754,6 +774,7 @@ export default {
// 开票信息表单和数据,提交时提交data里的数据
receipts_data: [],
receipts_form: {
receipt_unid: null,
receipt_amount: 0,
oa_flow_id: "",
receipt_note: ""
......@@ -836,11 +857,11 @@ export default {
trigger: "blur"
}
},
acceptance_form_rules: {
acceptance_date: {
acceptanc_form_rules: {
acceptanc_date: {
validator: (rule, value, callback) => {
if (
this.first_acceptances_form.acceptance_type == "1" &&
this.first_acceptancs_form.acceptanc_type == "1" &&
value == null
) {
callback(new Error("请填写时间"));
......@@ -849,10 +870,10 @@ export default {
trigger: "blur"
}
},
acceptance_form_rules2: {
acceptance_date: {
acceptanc_form_rules2: {
acceptanc_date: {
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) {
callback(new Error("请填写时间"));
} else callback();
......@@ -860,10 +881,10 @@ export default {
trigger: "blur"
},
//callback必须返回
acceptance_type: {
acceptanc_type: {
validator: (rule, value, callback) => {
if (
this.first_acceptances_form.acceptance_type == "1" &&
this.first_acceptancs_form.acceptanc_type == "1" &&
value != "2"
) {
callback(new Error("初验必须终验"));
......@@ -877,6 +898,18 @@ export default {
};
},
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() {
return (
......@@ -885,14 +918,17 @@ export default {
},
// 合同余额
contract_remaining: function() {
return (
this.form.contract_amount -
var a = this.form.contract_amount -
this.form.deduct_amount -
this.total_reback_amount -
this.form.stop_amount -
this.form.exemptions_amount -
this.form.bad_amount
).toFixed(2);
this.form.bad_amount;
if (isNaN(a)) {
return null;
}else {
return a.toFixed(2)
}
},
// 累计回款额
total_reback_amount: function() {
......@@ -919,14 +955,17 @@ export default {
},
// 应收账款余额
total_leave_amount: function() {
return (
this.total_receive_amount -
var a = this.total_receive_amount -
this.total_reback_amount -
this.form.deduct_amount -
this.form.stop_amount -
this.form.exemptions_amount -
this.form.bad_amount
).toFixed(2);
this.form.bad_amount;
if (isNaN(a)) {
return null
}else {
return a.toFixed(2);
}
},
// 逾期天数
over_days_unid: function() {
......@@ -949,13 +988,13 @@ export default {
},
// 维保服务期开始时间
start_guarantee_date: function() {
if (this.guarantee_date[0]) {
if (this.guarantee_date && this.guarantee_date[0]) {
return this.guarantee_date[0];
}
},
// 维保服务期结束时间
end_guarantee_date: function() {
if (this.guarantee_date[1]) {
if (this.guarantee_date && this.guarantee_date[1]) {
return this.guarantee_date[1];
}
},
......@@ -971,10 +1010,10 @@ export default {
return this.delivers_data[index].goods_acceptanc_date;
} else if (
this.form.mainten_start_point == 2 &&
this.final_acceptances_form.acceptance_type == "2" &&
this.final_acceptances_form.acceptance_date != ""
this.final_acceptancs_form.acceptanc_type == "2" &&
this.final_acceptancs_form.acceptanc_date != ""
) {
return this.final_acceptances_form.acceptance_date;
return this.final_acceptancs_form.acceptanc_date;
}
},
mainten_end_date: function() {
......@@ -995,32 +1034,156 @@ export default {
);
} else if (
this.form.mainten_start_point == 2 &&
this.final_acceptances_form.acceptance_type == "2" &&
this.final_acceptances_form.acceptance_date != ""
this.final_acceptancs_form.acceptanc_type == "2" &&
this.final_acceptancs_form.acceptanc_date != ""
) {
return this.date_add_month(
this.final_acceptances_form.acceptance_date,
this.final_acceptancs_form.acceptanc_date,
this.form.guarantee_period
);
}
}
},
// methods++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// methods++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// methods++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// methods++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// methods++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// methods++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// methods++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
methods: {
test(file) {
this.$Axios({
method: "post",
url: this.upload_url,
data: {
business_table: "contracts",
appendix_files: [file.file],
headers: { "Content-Type": "multipart/form-data" }
// upload+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
contract_upload(f) {
let param = new FormData(); //创建form对象
param.append("appendix_files", f.file); //通过append向form对象添加数据
param.append("business_table", "contracts"); //添加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.contract_appendix_list.push(b);
_this.form.appendix_unids.push(b.appendix_unid);
_this.$message({
message: "成功",
type: "success"
});
} else {
_this.$message({
message: "失败",
type: "error"
});
}
}).then(res => {
console.log(res.data.appendix_unid);
this.form.appendix_unids.push(res.data.appendix_unid);
});
return false;
};
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"
});
}
};
xhr.send(param);
},
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"
});
} else {
_this.$message({
message: "失败",
type: "error"
});
}
};
xhr.send(param);
},
on_remove(file, fileList) {},
// upload+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
total_receipt_amount_cal(index) {
var total_receipt_amount = 0;
for (let i = index; i >= 0; i--) {
......@@ -1068,22 +1231,22 @@ export default {
// dialog_cancel~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
payments_dialog_cancel() {
this.modify_data = false;
this.$refs["payments_form"].resetFields();
this.payments_form = {};
this.payments_dialog_show = false;
},
rebacks_dialog_cancel() {
this.modify_data = false;
this.$refs["rebacks_form"].resetFields();
this.rebacks_form = {};
this.rebacks_dialog_show = false;
},
receipts_dialog_cancel() {
this.modify_data = false;
this.$refs["receipts_form"].resetFields();
this.receipts_form = {};
this.receipts_dialog_show = false;
},
delivers_dialog_cancel() {
this.modify_data = false;
this.$refs["delivers_form"].resetFields();
this.delivers_form = { appendix_unids: [], delivers_appendix_list: [] };
this.delivers_dialog_show = false;
},
......@@ -1121,23 +1284,11 @@ export default {
},
// 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~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
contractIdRemoteMethod(query) {
this.$Axios({
method: "get",
url: this.contract_base_url + "codes"
// params:{
// wd:this.form.contract_unid
// }
})
.then(response => {
this.contract_unid_selected_data = response.data;
......@@ -1164,10 +1315,10 @@ export default {
projectIdRemoteMethod(query) {
this.$Axios({
method: "get",
url: this.code_base_url + "simple/cates/09BB973F92/codes"
url: this.contract_base_url + "projects"
})
.then(response => {
this.project_unid_selected_data = response.data.list_data;
this.project_unid_selected_data = response.data;
})
.catch(err => {
console.log(err.message);
......@@ -1180,7 +1331,7 @@ export default {
headers: { "Content-Type": "application/json" }
})
.then(response => {
this.customer_unid_selected_data = response.data.customer_list;
this.customer_unid_selected_data = response.data;
})
.catch(err => {
console.log(err.message);
......@@ -1189,35 +1340,42 @@ export default {
// 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~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
payments_dialog_confirm() {
this.$refs["payments_form"].validate(valid => {
if (valid) {
var payment_unid = this.payments_form.payment_unid;
var type_value = this.payments_form.payment_type;
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 a = {
payment_unid: payment_unid,
payment_type: type_value,
days: days,
payment_propority: propority,
payment_requirement: requirement
};
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);
} else {
a.payment_progress = this.payments_data[
this.modify_index
].payment_progress;
this.$set(this.payments_data, this.modify_index, a);
}
this.payments_form = {};
this.modify_data = false;
this.$refs["payments_form"].resetFields();
this.payments_dialog_show = false;
}
});
......@@ -1225,25 +1383,33 @@ export default {
receipts_dialog_confirm() {
this.$refs["receipts_form"].validate(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 oa_flow_id = this.receipts_form.oa_flow_id;
var receipt_note = this.receipts_form.receipt_note;
var a = {
receipt_progress: receipt_progress,
receipt_unid: receipt_unid,
receipt_amount: parseFloat(receipt_amount).toFixed(2),
oa_flow_id: oa_flow_id,
receipt_note: receipt_note
};
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);
} else {
a.receipt_progress = this.receipts_data[
this.modify_index
].receipt_progress;
this.$set(this.receipts_data, this.modify_index, a);
}
this.modify_data = false;
this.$refs["receipts_form"].resetFields();
this.receipts_form = {};
this.receipts_dialog_show = false;
}
});
......@@ -1252,24 +1418,35 @@ export default {
this.$refs["rebacks_form"].validate(valid => {
if (valid) {
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_note = this.rebacks_form.reback_note;
var a = {
reback_unid: reback_unid,
actual_reback_amount: actual_reback_amount,
reback_date: reback_date,
reback_note: reback_note
};
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);
} else {
a.reback_progress = this.rebacks_data[
this.modify_index
].reback_progress;
this.$set(this.rebacks_data, this.modify_index, a);
}
this.modify_data = false;
this.$refs["rebacks_form"].resetFields();
this.rebacks_form = {};
this.rebacks_dialog_show = false;
}
});
......@@ -1277,10 +1454,12 @@ export default {
delivers_dialog_confirm() {
this.$refs["delivers_form"].validate(valid => {
if (valid) {
var deliver_unid = this.delivers_form.deliver_unid;
var deliver_goods_date = this.delivers_form.deliver_goods_date;
var goods_acceptanc_date = this.delivers_form.goods_acceptanc_date;
var appendix_unids = this.delivers_form.appendix_unids;
var a = {
deliver_unid: deliver_unid,
deliver_goods_date: deliver_goods_date,
goods_acceptanc_date: goods_acceptanc_date,
appendix_unids: appendix_unids
......@@ -1291,19 +1470,46 @@ export default {
this.$set(this.delivers_data, this.modify_index, a);
}
this.modify_data = false;
this.$refs["delivers_form"].resetFields();
this.delivers_form = {};
this.delivers_dialog_show = false;
}
});
},
// 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("确认删除数据?", "确认信息", {
confirmButtonText: "确认",
cancelButtonText: "取消"
})
.then(() => {
if (id != null) {
this.$Axios({
method: "delete",
url:
this.contract_base_url +
this.form.contract_unid +
"/" +
appendUrl,
data: a
});
}
data.splice(index, 1);
this.$message({
duration: 1000,
......@@ -1322,15 +1528,18 @@ export default {
// modifystart~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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.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.modify_data = true;
this.modify_index = index;
this.payments_dialog_show = true;
},
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.reback_date = data[index].reback_date;
this.rebacks_form.reback_note = data[index].reback_note;
......@@ -1339,6 +1548,7 @@ export default {
this.rebacks_dialog_show = true;
},
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.oa_flow_id = data[index].oa_flow_id;
this.receipts_form.receipt_note = data[index].receipt_note;
......@@ -1347,9 +1557,13 @@ export default {
this.receipts_dialog_show = true;
},
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.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_index = index;
this.delivers_dialog_show = true;
......@@ -1424,10 +1638,10 @@ export default {
);
} else if (
(type == "2" || type == "4") &&
this.final_acceptances_form.acceptance_date != null
this.final_acceptancs_form.acceptanc_date != null
) {
date = this.date_add_days(
this.final_acceptances_form.acceptance_date,
this.final_acceptancs_form.acceptanc_date,
days
);
}
......@@ -1438,8 +1652,7 @@ export default {
if (this.form.contract_amount > 0) {
amount =
this.form.contract_amount *
this.payments_data[index].payment_propority /
100;
this.payments_data[index].payment_propority;
}
return amount;
},
......@@ -1450,8 +1663,20 @@ export default {
headers: { "Content-Type": "application/json" }
})
.then(response => {
// this.customer_unid_selected_data = response.data
console.log(response.data);
this.customer_unid_selected_data = response.data;
})
.catch(err => {
console.log(err.message);
});
},
get_salers() {
this.$Axios({
method: "get",
url: this.code_base_url + "customers",
headers: { "Content-Type": "application/json" }
})
.then(response => {
this.customer_unid_selected_data = response.data;
})
.catch(err => {
console.log(err.message);
......@@ -1465,415 +1690,595 @@ export default {
})
.then(response => {
this.project_unid_selected_data = response.data;
// console.log(response.data);
})
.catch(err => {
console.log(err.message);
});
},
get_contract_info(id) {
if (id == "") {
id = 0;
this.$router.push({ path: "/nav/contract/0" });
}
if (id != "0") {
this.$router.push({ path: "/nav/contract/" + id });
this.$Axios({
method: "get",
url: this.contract_base_url + id,
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (response.data.ecode == "100") {
this.$alert("合同已删除");
this.$router.push({path:'0'})
} else {
this.$set(
this.form,
"contract_unid",
response.data.contract_unid
);
this.$set(this.form, "province", response.data.province);
this.get_cities();
this.$set(this.form, "city", response.data.city);
this.get_counties();
this.$set(this.form, "county", response.data.county);
if (response.data.contract_state) {
this.$set(
this.form,
"contract_state",
parseInt(response.data.contract_state)-1
);
}
if (response.data.contract_type) {
this.$set(
this.form,
"contract_type",
parseInt(response.data.contract_type)-1
);
}
this.$set(this.form, "is_archive", response.data.is_archive);
if (response.data.amount_state_unid) {
this.$set(
this.form,
"amount_state_unid",
parseInt(response.data.amount_state_unid)-1
);
}
this.$set(
this.form,
"salesperson_unid",
response.data.salesperson_unid
);
this.get_projects();
this.$set(this.form, "project_unid", response.data.project_unid);
this.get_customers();
this.$set(
this.form,
"customer_unid",
response.data.customer_unid
);
this.$set(
this.form,
"deduct_amount",
response.data.deduct_amount
);
this.$set(
this.form,
"contract_amount_note",
response.data.deduct_amount
);
this.$set(this.form, "stop_amount", response.data.stop_amount);
this.$set(this.form, "reback_note", response.data.reback_note);
this.$set(
this.form,
"exemptions_amount",
response.data.exemptions_amount
);
this.$set(
this.form,
"contract_remain_note",
response.data.contract_remain_note
);
this.$set(
this.form,
"bad_amount_note",
response.data.bad_amount_note
);
if (response.data.mainten_start_point) {
this.$set(
this.form,
"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_amount",
response.data.contract_amount
);
this.$set(
this.form,
"guarantee_period",
response.data.guarantee_period
);
if (response.data.product_line_type) {
this.$set(
this.form,
"product_line_type",
parseInt(response.data.product_line_type)-1
);
}
this.$set(
this.form,
"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);
for (let i = 0; i < response.data.appendix_list.length; i++) {
const e = response.data.appendix_list[i];
var b = {};
b.name = e.appendix_name;
b.url = e.appendix_url;
b.id = e.appendix_unid;
this.contract_appendix_list.push(b);
}
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 => {
console.log(err.message);
});
this.$Axios({
method: "get",
url: this.contract_base_url + id + "/payments",
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (!response.data.ecode || response.data != []) {
for (let i = 0; i < response.data.length; i++) {
var item = {};
const e = response.data[i];
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.payment_propority = e.payment_propority;
item.payment_requirement = e.payment_requirement;
item.amount =
this.form.contract_amount * item.payment_propority;
this.payments_data.push(item);
}
}
})
.catch(err => {
console.log(err.message);
});
this.$Axios({
method: "get",
url: this.contract_base_url + id + "/rebacks",
headers: { "Content-Type": "application/json" }
})
.then(response => {
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 => {
console.log(err.message);
});
this.$Axios({
method: "get",
url: this.contract_base_url + id + "/receipts",
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (!response.data.ecode || response.data != []) {
for (let i = 0; i < response.data.length; i++) {
var e = response.data[i];
var item = {};
item.receipt_unid = e.receipt_unid;
item.oa_flow_id = e.oa_flow_id;
item.receipt_amount = e.receipt_amount;
item.receipt_note = e.receipt_note;
item.receipt_progress = e.receipt_progress;
this.receipts_data.push(item);
}
}
})
.catch(err => {
console.log(err.message);
});
this.$Axios({
method: "get",
url: this.contract_base_url + id + "/delivers",
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (!response.data.ecode || response.data != []) {
for (let i = 0; i < response.data.list_deliver_data.length; i++) {
var e = response.data.list_deliver_data[i];
var item = {};
item.deliver_unid = e.deliver_unid;
item.deliver_goods_date = e.deliver_goods_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);
}
}
})
.catch(err => {
console.log(err.message);
});
this.$Axios({
method: "get",
url: this.contract_base_url + id + "/project/acceptancs",
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (!response.data.ecode || response.data != []) {
for (let i = 0; i < response.data.list_check_data.length; i++) {
var e = response.data.list_check_data[i];
if (e.acceptanc_type == "1") {
this.$set(
this.first_acceptancs_form,
"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
);
this.$set(
this.first_acceptancs_form,
"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") {
this.$set(
this.final_acceptancs_form,
"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
);
this.$set(
this.final_acceptancs_form,
"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":
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,
method: "put",
url: this.contract_base_url + this.form.contract_unid,
data: this.form,
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (response.data.encode == 200) {
if (response.data.ecode == 200) {
this.$alert("提交成功");
this.operate_type[0] = 1;
} else {
this.$alert("提交失败:" + response.data.enote);
}
})
.catch(err => {
console.log(err.message);
this.$alert("提交失败");
});
break;
// ---------
case "payment":
var method;
if (this.operate_type[1] == 0) {
method = "post";
} else if (this.operate_type[1] == 1) {
method = "put";
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++;
});
}
}
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);
});
a == 0 ? this.$alert("提交成功") : this.$alert("提交失败");
break;
// -------
case "reback":
var method;
if (this.operate_type[2] == 0) {
method = "post";
} else if (this.operate_type[2] == 1) {
method = "put";
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++;
});
}
}
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);
});
a == 0 ? this.$alert("提交成功") : this.$alert("提交失败");
break;
case "receipt":
var method;
if (this.operate_type[3] == 0) {
method = "post";
} else if (this.operate_type[3] == 1) {
method = "put";
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 => {
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++;
});
}
}
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);
});
a == 0 ? this.$alert("提交成功") : this.$alert("提交失败");
break;
case "deliver":
var method;
if (this.operate_type[4] == 0) {
method = "post";
} else if (this.operate_type[4] == 1) {
method = "put";
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]
},
headers: { "Content-Type": "application/json" }
})
.then()
.catch(err => {
console.log(err.message);
a++;
});
}
}
this.$Axios({
method: method,
url: this.contract_base_url + this.contract_unid + "/delivers",
data: this.delivers_data,
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (response.data.encode == 200) {
this.$alert("提交成功");
this.operate_type[4] = 1;
}
})
.catch(err => {
console.log(err.message);
});
a == 0 ? this.$alert("提交成功") : this.$alert("提交失败");
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 => {
_this.$refs.first_acceptancs_form.validate(valid => {
if (valid) {
resolve();
}
});
});
var p2 = new Promise(function(resolve, reject) {
_this.$refs.final_acceptances_form.validate(valid2 => {
_this.$refs.final_acceptancs_form.validate(valid2 => {
if (valid2) {
resolve();
}
});
});
Promise.all([p1, p2]).then(function() {
_this
.$Axios({
method: method,
if (_this.first_acceptancs_form.acceptanc_unid != null) {
_this.$Axios({
method: "put",
url:
_this.contract_base_url +
_this.contract_unid +
_this.form.contract_unid +
"/project/acceptancs",
data: {
list_data: [
_this.first_acceptances_form,
_this.final_acceptances_form
]
list_check_data: [_this.first_acceptancs_form]
},
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (response.data.encode == 200) {
_this.$alert("提交成功");
_this.operate_type[5] = 1;
}
});
} 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;
if (id != "0") {
this.operate_type = [1, 1, 1, 1, 1, 1];
this.form.contract_unid = id;
this.$Axios({
method: "get",
url: this.contract_base_url + id,
headers: { "Content-Type": "application/json" }
})
.then(response => {
this.$set(this.form, "contract_unid", response.data.contract_unid);
// this.$set(this.form, "province", response.data.province);
// this.$set(this.form, "city", response.data.city);
// this.$set(this.form, "county", response.data.county);
this.$set(this.form, "province", "06FB2BFD29");
this.get_cities();
this.$set(this.form, "city", "4B4BD6A81w");
this.get_counties();
this.$set(this.form, "county", "865A12C46C");
this.$set(
this.form,
"contract_state",
parseInt(response.data.contract_state)
);
this.$set(
this.form,
"contract_type",
parseInt(response.data.contract_type)
);
this.$set(this.form, "is_archive", response.data.is_archive);
// this.$set(
// this.form,
// "amount_state_unid",
// parseInt(response.data.amount_state_unid)
// );
this.$set(this.form, "amount_state_unid", 1);
this.$set(
this.form,
"salesperson_unid",
response.data.salesperson_unid
);
this.get_projects();
this.$set(this.form, "project_unid", response.data.project_unid);
this.get_customers();
this.$set(this.form, "customer_unid", response.data.customer_unid);
this.$set(this.form, "deduct_amount", response.data.deduct_amount);
this.$set(
this.form,
"contract_amount_note",
response.data.deduct_amount
);
this.$set(this.form, "stop_amount", response.data.stop_amount);
this.$set(this.form, "reback_note", response.data.reback_note);
this.$set(
this.form,
"exemptions_amount",
response.data.exemptions_amount
);
this.$set(
this.form,
"contract_remain_note",
response.data.contract_remain_note
);
this.$set(
this.form,
"bad_amount_note",
response.data.bad_amount_note
);
this.$set(
this.form,
"mainten_start_point",
parseInt(response.data.mainten_start_point)
);
this.$set(this.form, "contract_note", response.data.contract_note);
this.$set(
this.form,
"contract_amount",
response.data.contract_amount
);
this.$set(
this.form,
"guarantee_period",
response.data.guarantee_period
);
this.$set(
this.form,
"product_line_type",
parseInt(response.data.product_line_type)
);
this.$set(
this.form,
"confirm_income_amount",
response.data.confirm_income_amount
);
this.$set(this.form, "bad_amount", response.data.bad_amount);
// 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.push(response.data.start_guarantee_date);
// this.guarantee_date.push(response.data.end_guarantee_date);
})
.catch(err => {
console.log(err.message);
});
this.$Axios({
method: "get",
url: this.contract_base_url + id + "/payments",
headers: { "Content-Type": "application/json" }
})
.then(response => {
for (let i = 0; i < response.data.length; i++) {
var item = {};
const e = response.data[i];
item.payment_type = parseInt(e.payment_type);
item.days = e.days;
item.payment_propority = e.payment_propority * 100;
item.payment_requirement = e.payment_requirement;
item.amount = this.form.contract_amount * item.payment_propority;
this.payments_data.push(item);
}
})
.catch(err => {
console.log(err.message);
});
this.$Axios({
method: "get",
url: this.contract_base_url + id + "/rebacks",
headers: { "Content-Type": "application/json" }
})
.then(response => {
console.log(response.data);
})
.catch(err => {
console.log(err.message);
});
this.$Axios({
method: "get",
url: this.contract_base_url + id + "/receipts",
headers: { "Content-Type": "application/json" }
})
.then(response => {
for (let i = 0; i < response.data.length; i++) {
var e = response.data[i];
var item = {};
item.oa_flow_id = e.oa_flow_id;
item.receipt_amount = e.receipt_amount;
item.receipt_note = e.receipt_note;
item.receipt_progress = e.receipt_progress;
this.receipts_data.push(item);
}
})
.catch(err => {
console.log(err.message);
});
this.$Axios({
method: "get",
url: this.contract_base_url + id + "/delivers",
headers: { "Content-Type": "application/json" }
})
.then(response => {
for (let i = 0; i < response.data.list_deliver_data.length; i++) {
var e = response.data.list_deliver_data[i];
var item = {};
item.deliver_goods_date = e.deliver_goods_date;
item.goods_acceptanc_date = e.goods_acceptanc_date;
this.delivers_data.push(item);
}
})
.catch(err => {
console.log(err.message);
});
this.$Axios({
method: "get",
url: this.contract_base_url + id + "/acceptancs",
headers: { "Content-Type": "application/json" }
})
.then(response => {
for (let i = 0; i < response.data.list_check_data.length; i++) {
var e = response.data.list_check_data[i];
if (e.acceptanc_type == "1") {
this.$set(this.first_acceptances_form, "acceptance_type", "1");
this.$set(
this.first_acceptances_form,
"acceptance_date",
e.acceptanc_date
);
this.$set(
this.first_acceptances_form,
"acceptance_note",
e.acceptanc_note
);
} else if (e.acceptanc_type == "2") {
this.$set(this.final_acceptances_form, "acceptance_type", "2");
this.$set(
this.final_acceptances_form,
"acceptance_date",
e.acceptanc_date
);
this.$set(
this.final_acceptances_form,
"acceptance_note",
e.acceptanc_note
);
}
}
})
.catch(err => {
console.log(err.message);
});
}
this.get_contract_info(id);
},
beforeCreate() {
var time = 1000;
if (this.$route.params.contract_unid != 0) {
time = 3000;
watch: {
$route(to, from) {
this.$router.go(0);
}
const loading = this.$loading({
lock: true,
text: "加载中,请稍等",
background: "rgba(0, 0, 0, 1)"
});
setTimeout(() => {
loading.close();
}, time);
}
};
</script>
......@@ -1887,9 +2292,6 @@ export default {
color: black;
}
#payments_dialog {
text-align: left;
}
.width-220 {
width: 300px;
}
......
<template>
<div>
后台管理
</div>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="font-size:24px">后台管理</span>
</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>
<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>
<el-container>
<el-aside width="15%">
<el-aside width="10%">
<el-menu :default-active="$route.path" class="el-menu-vertical-demo" router :collapse="false ">
<div style="height:20%" @mousemove="collapse = false" @mouseout="collapse = true">
......@@ -12,7 +12,7 @@
</el-menu-item>
<el-menu-item index="/nav/contract/0">
<i class="el-icon-plus"></i>
<span slot="title">添加合同</span>
<span slot="title">合同信息</span>
</el-menu-item>
<el-menu-item index="/nav/manage">
<i class="el-icon-setting"></i>
......@@ -25,7 +25,10 @@
</el-menu>
</el-aside>
<el-main>
<keep-alive include="search">
<router-view></router-view>
</keep-alive>
</el-main>
</el-container>
</template>
......@@ -78,6 +81,6 @@ export default {
height: 100%;
}
.el-menu {
height: 80%;
height: 100%;
}
</style>
<template>
<div>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="font-size:24px">检索条件</span>
<div slot="header" class="clearfix ">
<span style="font-size:24px;padding-right:0px">检索条件</span>
</div>
<el-form id="form" :inline="true" :model="search_form" class="demo-form-inline" label-width="100px" ref="search_form">
<el-row>
<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 style="text-align:left">
<el-col :span="6">
<el-form-item label="销售员" prop="salesperson_unid">
<el-select v-model="search_form.salesperson_unid" 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>
</el-select>
<el-form-item label="销售员" prop="salesperson_name__like">
<el-input style="width:217px" v-model="search_form.salesperson_name__like"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="项目名称" prop="project_unid">
<el-select v-model="search_form.project_unid" filterable remote placeholder="项目名称" :remote-method="projectIdRemoteMethod">
<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 label="项目名称" prop="project_name__like">
<el-input style="width:217px" v-model="search_form.project_name__like"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="客户名称" prop="customer_unid">
<el-select v-model="search_form.customer_unid" 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>
</el-select>
<el-form-item label="客户名称" prop="customer_name__like">
<el-input style="width:217px" v-model="search_form.customer_name__like"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<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-col>
</el-row>
<el-row>
<el-row style="text-align:left">
<el-col :span="6">
<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>
</el-select>
......@@ -47,41 +40,41 @@
</el-col>
<el-col :span="6">
<el-form-item label="所属月份" prop="month">
<el-select v-model="search_form.month">
<el-option v-for="n in 12" :key="n" :label="n" :value="n">
<el-select v-model="search_form.month" clearable>
<el-option v-for="n in month_list" :key="n" :label="n" :value="n">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="合同状态" prop="contract_state">
<el-select v-model="search_form.contract_state">
<el-option v-for="(value,index) in contract_state_data" :key="index" :label="value" :value="index">
<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+1">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="合同性质" prop="contract_type">
<el-select v-model="search_form.contract_type">
<el-option v-for="(value,index) in contract_type_data" :key="index" :label="value" :value="index">
<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+1">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row style="text-align:left">
<el-col :span="6">
<el-form-item label="产品线类型" prop="product_line_type">
<el-select v-model="search_form.product_line_type">
<el-option v-for="(value,index) in product_line_type_data" :key="index" :label="value" :value="index">
<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+1">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<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>
<el-option label="否" :value="0">
......@@ -91,7 +84,7 @@
</el-col>
<el-col :span="6">
<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=false></el-option>
</el-select>
......@@ -99,17 +92,72 @@
</el-col>
<el-col :span="6">
<el-form-item label="账款状态" prop="amount_state_unid">
<el-select v-model="search_form.amount_state_unid">
<el-option v-for="(value,index) in amount_state_unid_data" :key="index" :label="value" :value="index">
<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+1">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row style="text-align:left">
<el-col :span="6">
<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-col>
</el-row>
......@@ -124,18 +172,136 @@
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="font-size:24px">检索结果</span>
<span style="font-size:24px;padding-right:0px">检索结果</span>
</div>
<!-- test------------------------------------------------------------------------------------------------ -->
<el-row>
<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>
<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-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-col>
<el-col :span="4">
<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-group>
</el-col>
......@@ -146,23 +312,43 @@
</template>
<script>
const twodecimalrule = {
pattern: /((^[1-9]\d*)|^0)(\.\d{2})$/,
message: "请输入数字并保留两位小数",
trigger: "blur"
};
export default {
name:'search',
data() {
return {
provinces: [],
cities: [],
counties: [],
code_base_url: disparch_data.code_base_url,
contract_base_url: disparch_data.contract_base_url,
project_unid_selected_data: [], //项目名称数据数组
customer_unid_selected_data: [], //客户名称数据数组
salesperson_unid_selected_data: [],
contract_state_data: ["已完成", "代发货", "施工中", "项目暂停"],
month_list: [
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12"
],
contract_state_data: ["已完成", "待发货", "施工中", "项目暂停"],
contract_type_data: ["供货", "施工", "集成", "维保"],
product_line_type_data: ["安防", "交通", "客流", "维保"],
amount_state_unid_data: ["正常验收款", "正常维保"],
search_form: {
salesperson_unid: null,
project_unid: null,
customer_unid: null,
guarantee_period: 6,
salesperson_name__like: null,
project_name__like: null,
customer_name__like: null,
guarantee_period: null,
year: null,
month: null,
contract_state: null,
......@@ -171,11 +357,28 @@ export default {
acceptance_type: null,
is_archive: 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,
result_data: []
search_form_rules: {
confirm_income_amount: twodecimalrule
}
};
},
computed: {
......@@ -185,67 +388,187 @@ export default {
arr.push(i);
}
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: {
// 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({
method: "get",
url: this.code_base_url + "simple/cates/09BB973F92/codes"
url: this.code_base_url + "countries/0E229CD043/provinces"
})
.then(response => {
this.salesperson_unid_selected_data = response.data.list_data;
this.provinces = response.data.list_data;
})
.catch(err => {
console.log(err.message);
});
},
projectIdRemoteMethod(query) {
this.$Axios({
method: "get",
url: this.code_base_url + "simple/cates/09BB973F92/codes"
})
.then(response => {
this.project_unid_selected_data = response.data.list_data;
get_cities() {
this.search_form.city = "";
this.search_form.county = "";
if (this.search_form.province) {
this.$Axios({
method: "get",
url:
this.code_base_url +
"countries/0E229CD043/provinces/" +
this.search_form.province +
"/cities"
})
.catch(err => {
console.log(err.message);
});
.then(response => {
this.cities = response.data.list_data;
})
.catch(err => {
console.log(err.message);
});
}
},
customerIdRemoteMethod(query) {
get_counties() {
this.search_form.county = "";
if (this.search_form.province && this.search_form.city) {
this.$Axios({
method: "get",
url:
this.code_base_url +
"countries/0E229CD043/provinces/" +
this.search_form.province +
"/cities/" +
this.search_form.city +
"/counties"
})
.then(response => {
this.counties = response.data.list_data;
})
.catch(err => {
console.log(err.message);
});
}
},
get_list_data() {
var a = this.search_form;
a.offset = this.offset;
a.limit = this.limit;
this.$Axios({
method: "get",
url: this.code_base_url + "simple/cates/09BB973F92/codes"
methods: "get",
url: this.contract_base_url,
params: a,
headers: { "Content-Type": "application/json" }
})
.then(response => {
this.customer_unid_selected_data = response.data.list_data;
this.total_data = response.data.total_number;
this.list_data = response.data.list_data;
})
.catch(err => {
console.log(err.message);
});
},
// remote---------------------------------------------------------------------------------
get_year(date) {
if (date) {
return date.slice(0, 4);
}
},
get_month(date) {
if (date) {
return date.slice(5, 7);
}
},
// get end---------------------------------------------------------------------------------------------
reset() {
this.$confirm("清空检索条件?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.$refs["search_form"].resetFields();
});
this.$refs["search_form"].resetFields();
},
commit() {
this.current_page = 1;
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;
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>
<style scoped>
span {
padding-right: 10px;
}
</style>
......@@ -18,13 +18,67 @@ Vue.prototype.$Axios = Axios
/* eslint-disable no-new */
Vue.use(ElementUI)
Vue.filter('twoDecimal',function(value){
value=Number(value);
Vue.filter('twoDecimal', function (value) {
value = Number(value);
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({
el: '#app',
router,
components: { App },
components: {
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
<!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
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
{"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
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!