Commit dafd19cc by 谢明辉

a

1 parent 2235725d
......@@ -12,7 +12,7 @@
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input type="password" v-model="form.password" auto-complete="off">
<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>
......@@ -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);
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() {
if (this.contract_unid) {
this.$Axios({
method: "post",
data: { contract_unid: this.contract_unid },
url: this.contract_base_url
url: this.contract_base_url,
headers: { "Content-Type": "application/json" }
}).then(response => {
this.contract_unid = null;
if (response.data.encode = '200') {
this.show_message("添加成功",'success')
}else {
this.show_message('添加失败','error')
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");
}
},
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){
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!