Commit dafd19cc by 谢明辉

a

1 parent 2235725d
......@@ -5,15 +5,15 @@
<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>
<el-button style="float: right; padding: 8px 0" type="text" @click="form_submit('form')" :disabled="disabled_list[0]==1">提交</el-button>
</div>
<transition name="el-fade-in-linear">
<el-form id="form" :inline="true" :model="form" class="demo-form-inline" label-width="100px" :rules="add_rules" v-show="contract_show">
<el-form id="form" :inline="true" :model="form" class="demo-form-inline" label-width="100px" :rules="add_rules" v-show="contract_show" :disabled="disabled_list[0]==1">
<el-row style="text-align:left">
<el-col :span="8">
<el-form-item label="合同编号">
<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-select class="width-220" v-model="form.contract_unid" clearable filterable placeholder="合同编号" @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,15 +21,15 @@
</el-col>
<el-col :span="8">
<el-form-item label="销售员">
<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-select class="width-220" v-model="form.salesperson_unid" clearable filterable placeholder="销售人员">
<el-option v-for="(item,index) in salesperson_unid_selected_data" :key="index" :label="item.name" :value="item.user_unid">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目名称">
<el-select class="width-220" v-model="form.project_unid" clearable filterable remote placeholder="项目名称" :remote-method="projectIdRemoteMethod">
<el-select class="width-220" v-model="form.project_unid" clearable filterable placeholder="项目名称">
<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>
......@@ -39,7 +39,7 @@
<el-row style="text-align:left">
<el-col :span="8">
<el-form-item label="客户名称">
<el-select class="width-220" v-model="form.customer_unid" clearable filterable remote placeholder="客户名称" :remote-method="customerIdRemoteMethod">
<el-select class="width-220" v-model="form.customer_unid" clearable filterable placeholder="客户名称">
<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>
......@@ -89,7 +89,7 @@
<el-col :span="8">
<el-form-item label="产品线类型">
<el-select class="width-220" v-model="form.product_line_type" clearable placeholder="产品线类型">
<el-option v-for="(value,index) in product_line_type_data" :key="index" :label="value" :value="index">
<el-option v-for="item in product_line_type_data" :key="item.unid" :label="item.name" :value="item.code">
</el-option>
</el-select>
</el-form-item>
......@@ -97,7 +97,7 @@
<el-col :span="8">
<el-form-item label="合同状态">
<el-select class="width-220" v-model="form.contract_state" clearable placeholder="合同状态">
<el-option v-for="(value,index) in contract_state_data" :key="index" :label="value" :value="index">
<el-option v-for="item in contract_state_data" :key="item.unid" :label="item.name" :value="item.code">
</el-option>
</el-select>
</el-form-item>
......@@ -105,7 +105,7 @@
<el-col :span="8">
<el-form-item label="合同性质">
<el-select class="width-220" v-model="form.contract_type" clearable placeholder="合同性质">
<el-option v-for="(value,index) in contract_type_data" :key="index" :label="value" :value="index">
<el-option v-for="item in contract_type_data" :key="item.unid" :label="item.name" :value="item.code">
</el-option>
</el-select>
</el-form-item>
......@@ -208,7 +208,7 @@
<el-col :span="8">
<el-form-item label="账款状态">
<el-select class="width-220" v-model="form.amount_state_unid" clearable placeholder="账款状态">
<el-option v-for="(value,index) in amount_state_unid_data" :key="index" :label="value" :value="index">
<el-option v-for="item in amount_state_unid_data" :key="item.unid" :label="item.name" :value="item.code">
</el-option>
</el-select>
</el-form-item>
......@@ -224,7 +224,7 @@
<el-col :span="15" style="text-align:left">
<el-form-item label="质保期">
<el-select v-model="form.mainten_start_point" clearable placeholder="开始节点">
<el-option v-for="(value,index) in mainten_start_point_data" :key="index" :label="value" :value="index">
<el-option v-for="item in mainten_start_point_data" :key="item.unid" :label="item.name" :value="item.code">
</el-option>
</el-select>
<el-date-picker v-model="this.mainten_start_date" type="date" placeholder="开始日期" value-format="yyyy-MM-dd" :readonly="true">
......@@ -259,7 +259,7 @@
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="font-size:24px" @click="payments_show = !payments_show">付款约定</span>
<el-button style="float: right; padding: 8px 0" type="text" @click="form_submit('payment')">提交</el-button>
<el-button style="float: right; padding: 8px 0" type="text" @click="form_submit('payment')" :disabled="disabled_list[0]==1">提交</el-button>
</div>
<transition name="el-fade-in-linear">
......@@ -272,7 +272,7 @@
</el-table-column>
<el-table-column label="付款类型" min-width="100" align="center">
<template slot-scope="scope">
{{payment_type_data[payments_data[scope.$index].payment_type]}}
{{get_payment_type(scope.$index)}}
</template>
</el-table-column>
<el-table-column prop="days" label="天数" min-width="100" align="center">
......@@ -296,17 +296,17 @@
</el-table-column>
<el-table-column label="操作" min-width="200" align="center" fixed="right">
<template slot-scope="scope">
<el-button @click.native.prevent="payment_data_modify(scope.$index, payments_data)" type="primary" round>
<el-button @click.native.prevent="payment_data_modify(scope.$index, payments_data)" type="primary" round :disabled="disabled_list[0]==1">
修改
</el-button>
<el-button @click.native.prevent="data_delete(scope.$index, payments_data,'payments')" type="danger" round>
<el-button @click.native.prevent="data_delete(scope.$index, payments_data,'payments')" type="danger" round :disabled="disabled_list[0]==1">
移除
</el-button>
</template>
</el-table-column>
</el-table>
<el-row>
<el-button class="add_button" type="text" @click="payments_dialog_show = true">添加付款约定</el-button>
<el-button class="add_button" type="text" @click="payments_dialog_show = true" :disabled="disabled_list[0]==1">添加付款约定</el-button>
</el-row>
</div>
</transition>
......@@ -314,14 +314,13 @@
<!-- 付款约定弹出框 -->
<el-dialog id="payments_dialog" title="付款约定" :visible.sync="payments_dialog_show" width="30%">
<el-dialog id="payments_dialog" title="付款约定" :visible.sync="payments_dialog_show" width="30%" :show-close="false">
<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" clearable placeholder="付款类型" style="width:100%">
<el-option v-for="(value,index) in payment_type_data" :key="index" :label="value" :value="index">
<el-option v-for="item in payment_type_data" :key="item.unid" :label="item.name" :value="item.code">
</el-option>
</el-select>
</el-col>
</el-form-item>
<el-form-item label="天数" prop="days">
<el-input v-model="payments_form.days" placeholder="请输入天数" style="width:100%"></el-input>
......@@ -345,7 +344,7 @@
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="font-size:24px" @click="rebacks_show = !rebacks_show">合同回款信息(财务部)</span>
<el-button style="float: right; padding: 8px 0" type="text" @click="form_submit('reback')">提交</el-button>
<el-button style="float: right; padding: 8px 0" type="text" @click="form_submit('reback')" :disabled="disabled_list[0]==1">提交</el-button>
</div>
<transition name="el-fade-in-linear">
......@@ -369,24 +368,24 @@
</el-table-column>
<el-table-column label="操作" min-width="200" align="center" fixed="right">
<template slot-scope="scope">
<el-button @click.native.prevent="reback_data_modify(scope.$index, rebacks_data)" type="primary" round>
<el-button @click.native.prevent="reback_data_modify(scope.$index, rebacks_data)" type="primary" round :disabled="disabled_list[0]==1">
修改
</el-button>
<el-button @click.native.prevent="data_delete(scope.$index, rebacks_data,'rebacks')" type="danger" round>
<el-button @click.native.prevent="data_delete(scope.$index, rebacks_data,'rebacks')" type="danger" round :disabled="disabled_list[0]==1">
移除
</el-button>
</template>
</el-table-column>
</el-table>
<el-row>
<el-button class="add_button" type="text" @click="rebacks_dialog_show = true">添加合同回款信息</el-button>
<el-button class="add_button" type="text" @click="rebacks_dialog_show = true" :disabled="disabled_list[0]==1">添加合同回款信息</el-button>
</el-row>
</div>
</transition>
</el-card>
<!-- 合同回款信息弹出框 -->
<el-dialog id="rebacks_dialog" title="回款信息" :visible.sync="rebacks_dialog_show" width="30%">
<el-dialog id="rebacks_dialog" title="回款信息" :visible.sync="rebacks_dialog_show" width="30%" :show-close="false">
<el-form :model="rebacks_form" label-width="150px" label-position="left" :rules="rebacks_form_rules" ref="rebacks_form">
<el-form-item label="实际回款金额" prop="actual_reback_amount">
<el-input v-model="rebacks_form.actual_reback_amount" placeholder="请输入金额" style="width:100%"></el-input>
......@@ -411,7 +410,7 @@
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="font-size:24px" @click="receipts_show = !receipts_show">合同开票信息(财务部)</span>
<el-button style="float: right; padding: 8px 0" type="text" @click="form_submit('receipt')">提交</el-button>
<el-button style="float: right; padding: 8px 0" type="text" @click="form_submit('receipt')" :disabled="disabled_list[0]==1">提交</el-button>
</div>
<transition name="el-fade-in-linear">
......@@ -442,24 +441,24 @@
</el-table-column>
<el-table-column label="操作" min-width="200" align="center" fixed="right">
<template slot-scope="scope">
<el-button @click.native.prevent="receipt_data_modify(scope.$index, receipts_data)" type="primary" round>
<el-button @click.native.prevent="receipt_data_modify(scope.$index, receipts_data)" type="primary" round :disabled="disabled_list[0]==1">
修改
</el-button>
<el-button @click.native.prevent="data_delete(scope.$index, receipts_data,'receipts')" type="danger" round>
<el-button @click.native.prevent="data_delete(scope.$index, receipts_data,'receipts')" type="danger" round :disabled="disabled_list[0]==1">
移除
</el-button>
</template>
</el-table-column>
</el-table>
<el-row>
<el-button class="add_button" type="text" @click="receipts_dialog_show = true">添加开票信息</el-button>
<el-button class="add_button" type="text" @click="receipts_dialog_show = true" :disabled="disabled_list[0]==1">添加开票信息</el-button>
</el-row>
</div>
</transition>
</el-card>
<!-- 开票信息弹出框 -->
<el-dialog id="receipts_dialog" title="开票合同" :visible.sync="receipts_dialog_show" width="30%">
<el-dialog id="receipts_dialog" title="开票合同" :visible.sync="receipts_dialog_show" width="30%" :show-close="false">
<el-form :model="receipts_form" label-width="150px" label-position="left" :rules="receipts_form_rules" ref="receipts_form">
<el-form-item label="开票金额" prop="receipt_amount">
<el-input v-model="receipts_form.receipt_amount" placeholder="请输入金额" style="width:100%"></el-input>
......@@ -483,7 +482,7 @@
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="font-size:24px" @click="delivers_show = !delivers_show">发货信息(生产部)</span>
<el-button style="float: right; padding: 8px 0" type="text" @click="form_submit('deliver')">提交</el-button>
<el-button style="float: right; padding: 8px 0" type="text" @click="form_submit('deliver')" :disabled="disabled_list[1]==1">提交</el-button>
</div>
<transition name="el-fade-in-linear">
......@@ -495,24 +494,24 @@
</el-table-column>
<el-table-column label="操作" min-width="100" align="center" fixed="right">
<template slot-scope="scope">
<el-button @click.native.prevent="deliver_data_modify(scope.$index, delivers_data)" type="primary" round>
<el-button :disabled="disabled_list[1]==1" @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,'delivers')" type="danger" round>
<el-button :disabled="disabled_list[1]==1" @click.native.prevent="data_delete(scope.$index, delivers_data,'delivers')" type="danger" round>
移除
</el-button>
</template>
</el-table-column>
</el-table>
<el-row>
<el-button class="add_button" type="text" @click="delivers_dialog_show = true">添加发货信息</el-button>
<el-button class="add_button" type="text" @click="delivers_dialog_show = true" :disabled="disabled_list[1]==1">添加发货信息</el-button>
</el-row>
</div>
</transition>
</el-card>
<!-- 发货信息信息弹出框 -->
<el-dialog id="delivers_dialog" title="发货信息" :visible.sync="delivers_dialog_show" width="30%">
<el-dialog id="delivers_dialog" title="发货信息" :visible.sync="delivers_dialog_show" width="30%" :show-close="false">
<el-form :model="delivers_form" label-width="150px" label-position="left" :rules="add_rules" ref="delivers_form">
<el-form-item label="发货日期" prop="deliver_goods_date">
<el-date-picker style="width:100%" v-model="delivers_form.deliver_goods_date" type="date" value-format="yyyy-MM-dd">
......@@ -540,12 +539,12 @@
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="font-size:24px" @click="acceptanc_show = !acceptanc_show">工程验收信息(工程部)</span>
<el-button style="float: right; padding: 8px 0" type="text" @click="form_submit('project')">提交</el-button>
<el-button style="float: right; padding: 8px 0" type="text" @click="form_submit('project')" :disabled="disabled_list[2]==1">提交</el-button>
</div>
<transition name="el-fade-in-linear">
<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-form :inline="true" :model="first_acceptancs_form" class="demo-form-inline" label-width="100px" :rules="acceptanc_form_rules" ref="first_acceptancs_form" :disabled="disabled_list[2]==1">
<el-row>
<el-col :span="8">
<el-tooltip class="item" effect="dark" content="填写初验必须填写终验" placement="top">
......@@ -580,7 +579,7 @@
</el-row>
</el-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-form :inline="true" :model="final_acceptancs_form" class="demo-form-inline" label-width="100px" :rules="acceptanc_form_rules2" ref="final_acceptancs_form" :disabled="disabled_list[2]==1">
<el-row>
<el-col :span="8">
<el-tooltip class="item" effect="dark" content="填写初验必须填写终验" placement="top">
......@@ -630,12 +629,14 @@ export default {
name: "contract_information",
data() {
return {
disabled_list: [1, 1, 1],
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,
auth_base_url: disparch_data.auth_base_url,
contract_unid_selected_data: [], //合同编号数据数组
salesperson_unid_selected_data: [], //销售人员数据数组
project_unid_selected_data: [], //项目名称数据数组
......@@ -645,18 +646,12 @@ export default {
counties: [],
modify_data: false, //用来标志dialog用来修改数据
modify_index: -1, //用来标志修改数据的索引
payment_type_data: [
"预付款",
"到货款",
"系统验收款",
"质保款(发货节点)",
"质保款(验收节点)"
],
product_line_type_data: ["安防", "交通", "客流", "维保"],
contract_state_data: ["已完成", "待发货", "施工中", "项目暂停"],
contract_type_data: ["供货", "施工", "集成", "维保"],
amount_state_unid_data: ["正常验收款", "正常维保"],
mainten_start_point_data: ["签订时间", "到货验收时间", "项目终验时间"],
payment_type_data: [],
product_line_type_data: [],
contract_state_data: [],
contract_type_data: [],
amount_state_unid_data: [],
mainten_start_point_data: [],
guarantee_date: [,], //维保服务期,数组形式的日期,0开始,1结束。
// show and display~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
payments_dialog_show: false,
......@@ -918,17 +913,18 @@ export default {
},
// 合同余额
contract_remaining: function() {
var a = 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;
if (isNaN(a)) {
return null;
}else {
return a.toFixed(2)
}
if (isNaN(a)) {
return null;
} else {
return a.toFixed(2);
}
},
// 累计回款额
total_reback_amount: function() {
......@@ -955,17 +951,18 @@ export default {
},
// 应收账款余额
total_leave_amount: function() {
var a = 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;
if (isNaN(a)) {
return null
}else {
return a.toFixed(2);
}
if (isNaN(a)) {
return null;
} else {
return a.toFixed(2);
}
},
// 逾期天数
over_days_unid: function() {
......@@ -974,17 +971,30 @@ export default {
var now_date =
now.getFullYear() + "-" + (now.getMonth() + 1) + "-" + now.getDate();
var amount = 0;
var days = 0;
for (let i = 0; i < this.payments_data.length; i++) {
const element = this.payments_data[i];
pay_date = this.get_pay_date(i);
amount += this.get_pay_amount(i);
}
if (now_date > pay_date && amount > this.total_reback_amount) {
var a = this.date_diff(now_date, pay_date);
return a > 0 ? a : 0;
} else {
return 0;
var pay_amount = this.get_pay_amount(i);
amount += pay_amount;
if (now_date > pay_date) {
var a = this.date_diff(now_date, pay_date);
if (
(amount > this.total_reback_amount && a > days) ||
(pay_amount > this.total_reback_amount && a > days)
) {
days = a;
}
}
}
// if (now_date > pay_date && amount > this.total_reback_amount) {
// var a = this.date_diff(now_date, pay_date);
// console.log(a);
// return a > 0 ? a : 0;
// } else {
// return 0;
// }
return days;
},
// 维保服务期开始时间
start_guarantee_date: function() {
......@@ -1000,16 +1010,19 @@ export default {
},
mainten_start_date: function() {
if (
this.form.mainten_start_point == 0 &&
this.form.mainten_start_point == "60001" &&
this.form.sign_date &&
this.form.guarantee_period
) {
return this.form.sign_date;
} else if (this.form.mainten_start_point == 1 && this.delivers_data[0]) {
} else if (
this.form.mainten_start_point == "60002" &&
this.delivers_data[0]
) {
var index = this.delivers_data.length - 1;
return this.delivers_data[index].goods_acceptanc_date;
} else if (
this.form.mainten_start_point == 2 &&
this.form.mainten_start_point == "60003" &&
this.final_acceptancs_form.acceptanc_type == "2" &&
this.final_acceptancs_form.acceptanc_date != ""
) {
......@@ -1018,7 +1031,7 @@ export default {
},
mainten_end_date: function() {
if (
this.form.mainten_start_point == 0 &&
this.form.mainten_start_point == "60001" &&
this.form.sign_date &&
this.form.guarantee_period
) {
......@@ -1026,14 +1039,17 @@ export default {
this.form.sign_date,
this.form.guarantee_period
);
} else if (this.form.mainten_start_point == 1 && this.delivers_data[0]) {
} else if (
this.form.mainten_start_point == "60002" &&
this.delivers_data[0]
) {
var index = this.delivers_data.length - 1;
return this.date_add_month(
this.delivers_data[index].goods_acceptanc_date,
this.form.guarantee_period
);
} else if (
this.form.mainten_start_point == 2 &&
this.form.mainten_start_point == "60003" &&
this.final_acceptancs_form.acceptanc_type == "2" &&
this.final_acceptancs_form.acceptanc_date != ""
) {
......@@ -1285,7 +1301,7 @@ export default {
// date_methods~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// remoteMethod~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
contractIdRemoteMethod(query) {
get_contract_unid() {
this.$Axios({
method: "get",
url: this.contract_base_url + "codes"
......@@ -1297,13 +1313,13 @@ export default {
console.log(err.message);
});
},
salespersonIdRemoteMethod(query) {
get_salesperson() {
this.$Axios({
method: "get",
url: this.code_base_url + "simple/cates/09BB973F92/codes"
// params:{
// wd:this.form.contract_unid
// }
url: this.auth_base_url + "users",
params: {
norm_type: "employee"
}
})
.then(response => {
this.salesperson_unid_selected_data = response.data.list_data;
......@@ -1312,18 +1328,6 @@ export default {
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",
......@@ -1358,6 +1362,8 @@ export default {
payment_propority: propority,
payment_requirement: requirement
};
console.log(a);
if (!this.modify_data) {
if (this.payments_data.length > 0) {
a.payment_progress =
......@@ -1373,6 +1379,7 @@ export default {
].payment_progress;
this.$set(this.payments_data, this.modify_index, a);
}
console.log(this.payments_data);
this.payments_form = {};
this.modify_data = false;
......@@ -1571,6 +1578,75 @@ export default {
// modifyend~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// getlocation start~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
get_payment_type(index) {
for (let i = 0; i < this.payment_type_data.length; i++) {
const e = this.payment_type_data[i];
if (this.payments_data[index].payment_type === e.code) {
return e.name;
}
}
return "无";
},
get_payment_type_data() {
this.$Axios({
method: "get",
url: this.code_base_url + "custom/cates/215649FB93/codes"
})
.then(res => {
this.payment_type_data = res.data.list_data;
})
.catch(err => {});
},
get_product_line_type_data() {
this.$Axios({
method: "get",
url: this.code_base_url + "custom/cates/4FC51AD3C9/codes"
})
.then(res => {
this.product_line_type_data = res.data.list_data;
})
.catch(err => {});
},
get_contract_state_data() {
this.$Axios({
method: "get",
url: this.code_base_url + "custom/cates/13BEFACBCF/codes"
})
.then(res => {
this.contract_state_data = res.data.list_data;
})
.catch(err => {});
},
get_contract_type_data() {
this.$Axios({
method: "get",
url: this.code_base_url + "custom/cates/8EC31D08A0/codes"
})
.then(res => {
this.contract_type_data = res.data.list_data;
})
.catch(err => {});
},
get_amount_state_unid_data() {
this.$Axios({
method: "get",
url: this.code_base_url + "custom/cates/42407C5EF2/codes"
})
.then(res => {
this.amount_state_unid_data = res.data.list_data;
})
.catch(err => {});
},
get_mainten_start_point_data() {
this.$Axios({
method: "get",
url: this.code_base_url + "custom/cates/55B997D596/codes"
})
.then(res => {
this.mainten_start_point_data = res.data.list_data;
})
.catch(err => {});
},
get_provinces() {
this.$Axios({
method: "get",
......@@ -1628,16 +1704,19 @@ export default {
var date = "";
var type = this.payments_data[index].payment_type;
var days = this.payments_data[index].days;
if (type == "0" && this.form.sign_date) {
if (type == "100001" && this.form.sign_date) {
date = this.date_add_days(this.form.sign_date, days);
} else if ((type == "1" || type == "3") && this.delivers_data[0]) {
} else if (
(type == "100002" || type == "100004") &&
this.delivers_data[0]
) {
var i = this.delivers_data.length - 1;
date = this.date_add_days(
this.delivers_data[i].goods_acceptanc_date,
days
);
} else if (
(type == "2" || type == "4") &&
(type == "100003" || type == "100005") &&
this.final_acceptancs_form.acceptanc_date != null
) {
date = this.date_add_days(
......@@ -1669,19 +1748,6 @@ export default {
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);
});
},
get_projects() {
this.$Axios({
method: "get",
......@@ -1711,7 +1777,7 @@ export default {
.then(response => {
if (response.data.ecode == "100") {
this.$alert("合同已删除");
this.$router.push({path:'0'})
this.$router.push({ path: "0" });
} else {
this.$set(
this.form,
......@@ -1723,26 +1789,29 @@ export default {
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
response.data.contract_state
);
}
if (response.data.contract_type) {
this.$set(
this.form,
"contract_type",
parseInt(response.data.contract_type)-1
response.data.contract_type
);
}
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
response.data.amount_state_unid
);
}
this.$set(
......@@ -1750,9 +1819,7 @@ export default {
"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",
......@@ -1785,11 +1852,12 @@ export default {
"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
response.data.mainten_start_point
);
}
this.$set(
......@@ -1807,11 +1875,12 @@ export default {
"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
response.data.product_line_type
);
}
this.$set(
......@@ -1854,7 +1923,7 @@ export default {
var item = {};
const e = response.data[i];
item.payment_unid = e.payment_unid;
item.payment_type = parseInt(e.payment_type)-1;
item.payment_type = e.payment_type;
item.payment_progress = e.payment_progress;
item.days = e.days;
item.payment_propority = e.payment_propority;
......@@ -1874,7 +1943,7 @@ export default {
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (!response.data.ecode || response.data != []) {
if (!response.data.ecode || response.data != []) {
for (let i = 0; i < response.data.length; i++) {
var e = response.data[i];
var item = {};
......@@ -1896,7 +1965,7 @@ export default {
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (!response.data.ecode || response.data != []) {
if (!response.data.ecode || response.data != []) {
for (let i = 0; i < response.data.length; i++) {
var e = response.data[i];
var item = {};
......@@ -1918,7 +1987,7 @@ export default {
headers: { "Content-Type": "application/json" }
})
.then(response => {
if (!response.data.ecode || response.data != []) {
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 = {};
......@@ -2271,7 +2340,29 @@ export default {
}
},
created() {
var roles = JSON.parse(sessionStorage.getItem("user_roles"));
for (let i = 0; i < roles.length; i++) {
const e = roles[i];
if (e.role_unid == "ec480894ee85f1fa282ee7fa27be9cbc") {
this.disabled_list[1] = 0;
} else if (e.role_unid == "91d5185d47e3bad099e17570b0dd0ed2") {
this.disabled_list[0] = 0;
} else if (e.role_unid == "65f881ffa510eb9ec0c0dc76d625515f") {
this.disabled_list[2] = 0;
}
}
this.get_provinces();
this.get_contract_state_data();
this.get_contract_type_data();
this.get_amount_state_unid_data();
this.get_mainten_start_point_data();
this.get_product_line_type_data();
this.get_payment_type_data();
this.get_salesperson();
this.get_contract_unid();
this.get_projects();
this.get_customers();
var id = this.$route.params.contract_unid;
this.get_contract_info(id);
},
......@@ -2285,11 +2376,7 @@ export default {
<style scoped>
.add_button {
font-size: 20px;
padding-top: 60px;
color: gray;
}
.add_button:hover {
color: black;
padding-top: 20px;
}
.width-220 {
......
......@@ -12,8 +12,8 @@
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input type="password" v-model="form.password" auto-complete="off">
<template slot="prepend">密码</template>
<el-input type="password" v-model="form.password" auto-complete="off" @keydown.enter="submitForm('login_form')">
<template slot="prepend">密码</template>
</el-input>
</el-form-item>
<el-form-item>
......@@ -31,17 +31,16 @@ export default {
name: "login",
data() {
return {
auth_base_url: disparch_data.auth_base_url,
form: {
username: "",
password: ""
},
rules: {
username: [
{ required: true, message: "请输入用户名", trigger: "blur" }
],
password: [
{ required: true, message: "请输入登录密码", trigger: "blur" }
]
username: [{ required: true, message: "请输入用户名", trigger: "blur" }]
// password: [
// { required: true, message: "请输入登录密码", trigger: "blur" }
// ]
}
};
},
......@@ -49,28 +48,53 @@ export default {
submitForm(form) {
this.$refs[form].validate(valid => {
if (valid) {
console.log(valid);
console.log(this.form.username);
console.log(this.form.password);
window.localStorage.setItem("username", this.form.username);
window.sessionStorage.setItem("loginCheck", true);
window.sessionStorage.setItem("username", this.form.username);
this.$router.push({ path: "/nav/search" });
this.$Axios({
method: "post",
url: this.auth_base_url + "users/login",
headers: { "Content-Type": "application/json" },
data: {
user_type: "user",
username: this.form.username,
password: this.form.password
}
})
.then(res => {
if (res.data.ecode) {
this.$message({
message: res.data.enote,
type: "error"
});
} else {
window.sessionStorage.setItem("username", this.form.username);
window.sessionStorage.setItem("user_unid", res.data.user_unid);
window.sessionStorage.setItem('user_roles',JSON.stringify(res.data.roles));
this.$router.push({ path: "/nav/search" });
}
})
.catch(err => {
this.$message({
message: "登录错误",
type: "error"
});
});
}
});
},
resetForm(form) {
this.$refs[form].resetFields();
}
},
is_login() {}
},
mounted() {
this.form.username = localStorage.getItem("username");
},
}
};
</script>
<style scoped>
#login_box {
height: 100%
height: 100%;
}
</style>
......@@ -4,13 +4,51 @@
<span style="font-size:24px">后台管理</span>
</div>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<el-row type="flex" justify="start" style="text-align :left">
<el-row type="flex" justify="start" style="text-align :left;border-bottom:1px solid #ebeef5;padding-bottom:18px">
<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-col :span="6">
<el-input class="input" v-model="customer_name" placeholder="客户名称"></el-input>
<el-button type="primary" @click="customer_name_add">添加</el-button>
</el-col>
<el-col :span="6">
<el-input class="input" v-model="salesperson" placeholder="销售员"></el-input>
<el-button type="primary" @click="salesperson_add('employee')">添加</el-button>
</el-col>
<el-col :span="6">
<el-input class="input" v-model="project_name" placeholder="项目名称"></el-input>
<el-button type="primary" @click="project_name_add">添加</el-button>
</el-col>
</el-row>
<el-row>
<el-button class="add_button" type="text" @click="login_user_dialog_show = true">添加登录用户</el-button>
</el-row>
<el-dialog id="login_user_dialog" title="添加登录户" :visible.sync="login_user_dialog_show" width="30%" :show-close="false">
<el-form :model="login_user_form" label-width="100px" label-position="left" :rules="login_user_form_rules" ref="login_user_form">
<el-form-item label="用户类型" prop="role_unid">
<el-select v-model="login_user_form.role_unid" clearable placeholder="用户类型" style="width:100%">
<el-option v-for="item in roles" :key="item.role_unid" :label="item.name" :value="item.role_unid">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="用户名" prop="username">
<el-input v-model="login_user_form.username" placeholder="用户名" style="width:100%"></el-input>
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="login_user_form.name" placeholder="姓名" style="width:100%"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="login_user_dialog_cancel()">取 消</el-button>
<el-button type="primary" @click="login_user_dialog_confirm()">确 定</el-button>
</div>
</el-dialog>
</el-card>
</template>
<script>
......@@ -18,35 +56,187 @@ export default {
name: "manage",
data() {
return {
login_user_dialog_show: false,
code_base_url: disparch_data.code_base_url,
contract_base_url: disparch_data.contract_base_url,
contract_unid: null
auth_base_url: disparch_data.auth_base_url,
contract_unid: null,
customer_name: null,
salesperson: null,
project_name: null,
roles: [],
login_user_form: {
role_unid: "",
username: "",
name: "",
password: "0000",
norm_type: "login"
},
login_user_form_rules: {
username: {
required: true,
pattern: /^[a-z]{2,8}$/,
message: "请输入2至8位英文",
trigger: "blur"
},
name: {
required: true,
message: "请输入用户姓名",
trigger: "blur"
},
role_unid: {
required: true,
message: "请选择用户类型",
trigger: "blur"
}
}
};
},
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')
}
});
if (this.contract_unid) {
this.$Axios({
method: "post",
data: { contract_unid: this.contract_unid },
url: this.contract_base_url,
headers: { "Content-Type": "application/json" }
}).then(response => {
this.contract_unid = null;
if (response.data.ecode == "200") {
this.show_message("添加成功", "success");
} else {
this.show_message("添加失败", "error");
}
});
} else {
this.show_message("请填写信息", "info");
}
},
customer_name_add() {
if (this.customer_name) {
this.$Axios({
method: "post",
url: this.contract_base_url + "customers",
data: { customer_name: this.customer_name },
headers: { "Content-Type": "application/json" }
}).then(response => {
this.customer_name = null;
if (response.data.ecode == "200") {
this.show_message("添加成功", "success");
} else {
this.show_message("添加失败", "error");
}
});
} else {
this.show_message("请填写信息", "info");
}
},
salesperson_add(type) {
if (this.salesperson) {
this.$Axios({
method: "post",
url: this.auth_base_url + "users",
data: {
norm_type: type,
username: this.salesperson,
name: this.salesperson,
password: "0000"
},
headers: { "Content-Type": "application/json" }
}).then(response => {
this.salesperson = null;
this.show_message("添加成功", "success");
});
} else {
this.show_message("请填写信息", "info");
}
},
show_message(message,type){
project_name_add() {
if (this.project_name) {
this.$Axios({
method: "post",
url: this.contract_base_url + "projects",
data: { project_name: this.project_name },
headers: { "Content-Type": "application/json" }
}).then(response => {
this.project_name = null;
if (response.data.ecode == "200") {
this.show_message("添加成功", "success");
} else {
this.show_message("添加失败", "error");
}
});
} else {
this.show_message("请填写信息", "info");
}
},
show_message(message, type) {
this.$message({
message:message,
type:type,
center:true,
showClose:true,
duration:1500
message: message,
type: type,
center: true,
showClose: true,
duration: 1500
});
},
get_roles() {
this.$Axios({
method: "get",
url: this.auth_base_url + "roles"
})
.then(response => {
if (response.data.list_data) {
this.roles = response.data.list_data;
}
})
.catch(err => {
console.log(err.message);
});
},
login_user_dialog_cancel() {
this.$refs["login_user_form"].resetFields();
this.login_user_dialog_show = false;
},
login_user_dialog_confirm() {
this.$refs["login_user_form"].validate(valid => {
if (valid) {
this.$Axios({
method: "post",
url: this.auth_base_url + "users",
headers: { "Content-Type": "application/json" },
data: this.login_user_form
}).then(res => {
if (res.data.user_unid) {
this.$Axios({
method: "post",
url:
this.auth_base_url + "users/" + res.data.user_unid + "/roles",
headers: { "Content-Type": "application/json" },
data: {
role_unid: this.login_user_form.role_unid
}
})
.then(res => {
this.show_message("添加成功", "success");
this.$refs["login_user_form"].resetFields();
this.login_user_dialog_show = false;
console.log(res.data);
})
.catch(err => {
this.show_message("添加失败", "error");
});
} else {
this.show_message("添加失败", "error");
}
});
}
});
}
},
created() {
this.get_roles();
}
};
</script>
......@@ -55,5 +245,10 @@ export default {
.input {
width: 200px;
}
.add_button {
font-size: 20px;
padding-top: 18px;
color: #409eff;
}
</style>
......@@ -49,7 +49,7 @@
<el-col :span="6">
<el-form-item label="合同状态" prop="contract_state">
<el-select v-model="search_form.contract_state" clearable>
<el-option v-for="(value,index) in contract_state_data" :key="index" :label="value" :value="index+1">
<el-option v-for="item in contract_state_data" :key="item.code" :label="item.name" :value="item.code">
</el-option>
</el-select>
</el-form-item>
......@@ -57,7 +57,7 @@
<el-col :span="6">
<el-form-item label="合同性质" prop="contract_type">
<el-select v-model="search_form.contract_type" clearable>
<el-option v-for="(value,index) in contract_type_data" :key="index" :label="value" :value="index+1">
<el-option v-for="item in contract_type_data" :key="item.code" :label="item.name" :value="item.code">
</el-option>
</el-select>
</el-form-item>
......@@ -67,7 +67,7 @@
<el-col :span="6">
<el-form-item label="产品线类型" prop="product_line_type">
<el-select v-model="search_form.product_line_type" clearable>
<el-option v-for="(value,index) in product_line_type_data" :key="index" :label="value" :value="index+1">
<el-option v-for="item in product_line_type_data" :key="item.code" :label="item.name" :value="item.code">
</el-option>
</el-select>
</el-form-item>
......@@ -93,7 +93,7 @@
<el-col :span="6">
<el-form-item label="账款状态" prop="amount_state_unid">
<el-select v-model="search_form.amount_state_unid" clearable>
<el-option v-for="(value,index) in amount_state_unid_data" :key="index" :label="value" :value="index+1">
<el-option v-for="item in amount_state_unid_data" :key="item.code" :label="item.name" :value="item.code">
</el-option>
</el-select>
</el-form-item>
......@@ -318,7 +318,7 @@ const twodecimalrule = {
trigger: "blur"
};
export default {
name:'search',
name: "search",
data() {
return {
provinces: [],
......@@ -340,10 +340,10 @@ export default {
"11",
"12"
],
contract_state_data: ["已完成", "待发货", "施工中", "项目暂停"],
contract_type_data: ["供货", "施工", "集成", "维保"],
product_line_type_data: ["安防", "交通", "客流", "维保"],
amount_state_unid_data: ["正常验收款", "正常维保"],
contract_state_data: [],
contract_type_data: [],
product_line_type_data: [],
amount_state_unid_data: [],
search_form: {
salesperson_name__like: null,
project_name__like: null,
......@@ -368,7 +368,7 @@ export default {
amount_start_point: null,
amount_end_point: null,
leave_amount_start_point: null,
leave_amount_end_point: null,
leave_amount_end_point: null
},
list_data: [],
......@@ -392,15 +392,15 @@ export default {
offset() {
return (this.current_page - 1) * this.limit;
},
guarantee_period_list(){
guarantee_period_list() {
var arr = [];
var a = 6;
for (let i = 0; i < 10; i ++) {
const element = 10[i];
for (let i = 0; i < 10; i++) {
const element = (10)[i];
arr.push(a);
a += 6;
}
return arr
return arr;
}
},
methods: {
......@@ -444,6 +444,46 @@ export default {
// remote---------------------------------------------------------------------------------
// get start~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
get_amount_state_unid_data() {
this.$Axios({
method: "get",
url: this.code_base_url + "custom/cates/42407C5EF2/codes"
})
.then(res => {
this.amount_state_unid_data = res.data.list_data;
})
.catch(err => {});
},
get_contract_type_data() {
this.$Axios({
method: "get",
url: this.code_base_url + "custom/cates/8EC31D08A0/codes"
})
.then(res => {
this.contract_type_data = res.data.list_data;
})
.catch(err => {});
},
get_contract_state_data() {
this.$Axios({
method: "get",
url: this.code_base_url + "custom/cates/13BEFACBCF/codes"
})
.then(res => {
this.contract_state_data = res.data.list_data;
})
.catch(err => {});
},
get_product_line_type_data() {
this.$Axios({
method: "get",
url: this.code_base_url + "custom/cates/4FC51AD3C9/codes"
})
.then(res => {
this.product_line_type_data = res.data.list_data;
})
.catch(err => {});
},
get_provinces() {
this.$Axios({
method: "get",
......@@ -511,6 +551,21 @@ export default {
.then(response => {
this.total_data = response.data.total_number;
this.list_data = response.data.list_data;
for (let i = 0; i < this.list_data.length; i++) {
const e = this.list_data[i];
for (let j = 0; j < this.contract_state_data.length; j++) {
const a = this.contract_state_data[j];
if (e.contract_state == a.code) {
this.list_data[i].contract_state_name = a.name;
}
}
for (let k = 0; k < this.product_line_type_data.length; k++) {
const b = this.product_line_type_data[k];
if (e.product_line_type == b.code) {
this.list_data[i].product_line_type_name = b.name;
}
}
}
})
.catch(err => {
console.log(err.message);
......@@ -541,28 +596,44 @@ export default {
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;
this.get_list_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);
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;
var downloadElement = document.createElement("a");
var href = window.URL.createObjectURL(blob); //创建下载的链接
downloadElement.href = href;
downloadElement.download = "合同.xlsx"; //下载后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //点击下载
document.body.removeChild(downloadElement); //下载完成移除元素
window.URL.revokeObjectURL(href); //释放掉blob对象
})
.catch(err => {
console.log(err.message);
});
},
go_to(id){
this.$router.push('/nav/contract/'+id);
go_to(id) {
this.$router.push("/nav/contract/" + id);
}
},
created() {
this.get_provinces();
this.get_amount_state_unid_data();
this.get_contract_type_data();
this.get_contract_state_data();
this.get_product_line_type_data();
}
};
</script>
......
disparch_data = {
code_base_url: "http://192.168.9.162:20080/api/v1/codes/",
contract_base_url: "http://192.168.9.162:20080/api/v1/financial/contracts/",
auth_base_url: "http://192.168.9.162:20080/api/v1/auth/"
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!