|
@@ -59,7 +59,7 @@
|
|
|
:data="tableData"
|
|
:data="tableData"
|
|
|
v-loading="loading2"
|
|
v-loading="loading2"
|
|
|
stripe
|
|
stripe
|
|
|
- style="width: 100%"
|
|
|
|
|
|
|
+ style="width: 100%; height: 90%;"
|
|
|
>
|
|
>
|
|
|
<el-table-column prop="ind" label="序号" width="90">
|
|
<el-table-column prop="ind" label="序号" width="90">
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
@@ -168,7 +168,13 @@
|
|
|
</el-card>
|
|
</el-card>
|
|
|
|
|
|
|
|
<!-- 添加 - 编辑 用户 -->
|
|
<!-- 添加 - 编辑 用户 -->
|
|
|
- <el-dialog :title="tltData" :visible.sync="userVisible" width="30%">
|
|
|
|
|
|
|
+ <el-dialog
|
|
|
|
|
+ :title="tltData"
|
|
|
|
|
+ :visible.sync="userVisible"
|
|
|
|
|
+ :close-on-click-modal="false"
|
|
|
|
|
+ :close-on-press-escape="false"
|
|
|
|
|
+ width="30%"
|
|
|
|
|
+ >
|
|
|
<el-form ref="form" :rules="rules" :model="form" label-width="150px">
|
|
<el-form ref="form" :rules="rules" :model="form" label-width="150px">
|
|
|
<el-form-item label="账号: " prop="user">
|
|
<el-form-item label="账号: " prop="user">
|
|
|
<el-input
|
|
<el-input
|
|
@@ -235,7 +241,7 @@
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
|
|
<el-form-item label="角色: " prop="role">
|
|
<el-form-item label="角色: " prop="role">
|
|
|
- <el-cascader
|
|
|
|
|
|
|
+ <!-- <el-cascader
|
|
|
filterable
|
|
filterable
|
|
|
:v-model="form.role"
|
|
:v-model="form.role"
|
|
|
:key="refreshItem"
|
|
:key="refreshItem"
|
|
@@ -249,6 +255,24 @@
|
|
|
checkStrictly: true
|
|
checkStrictly: true
|
|
|
}"
|
|
}"
|
|
|
clearable
|
|
clearable
|
|
|
|
|
+ ></el-cascader> -->
|
|
|
|
|
+
|
|
|
|
|
+ <el-cascader
|
|
|
|
|
+ filterable
|
|
|
|
|
+ @change="roleChange"
|
|
|
|
|
+ :key="refreshItem"
|
|
|
|
|
+ :change-on-select="true"
|
|
|
|
|
+ v-model="form.role"
|
|
|
|
|
+ :options="roleData"
|
|
|
|
|
+ :props="{
|
|
|
|
|
+ value: 'id',
|
|
|
|
|
+ label: 'role_name',
|
|
|
|
|
+ multiple: true,
|
|
|
|
|
+ emitPath: false,
|
|
|
|
|
+ checkStrictly: true
|
|
|
|
|
+ }"
|
|
|
|
|
+ :clearable="true"
|
|
|
|
|
+ placeholder="请选择角色"
|
|
|
></el-cascader>
|
|
></el-cascader>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
|
@@ -273,7 +297,12 @@
|
|
|
label="账号状态: "
|
|
label="账号状态: "
|
|
|
prop="state"
|
|
prop="state"
|
|
|
>
|
|
>
|
|
|
- <el-select size="mini" v-model="form.state" placeholder="请选择">
|
|
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ clearable
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ v-model="form.state"
|
|
|
|
|
+ placeholder="请选择"
|
|
|
|
|
+ >
|
|
|
<el-option label="正常" value="1"></el-option>
|
|
<el-option label="正常" value="1"></el-option>
|
|
|
<el-option label="停用" value="4"></el-option>
|
|
<el-option label="停用" value="4"></el-option>
|
|
|
</el-select>
|
|
</el-select>
|
|
@@ -297,14 +326,23 @@ export default {
|
|
|
data() {
|
|
data() {
|
|
|
//input验证 - 密码框 - 禁止输入汉字
|
|
//input验证 - 密码框 - 禁止输入汉字
|
|
|
const checkPath = (rule, value, callback) => {
|
|
const checkPath = (rule, value, callback) => {
|
|
|
- this.form.password = value.replace(/[\u4E00-\u9FA5]/g, "");
|
|
|
|
|
- // 一定要执行回调函数
|
|
|
|
|
- // 否则不起效果
|
|
|
|
|
- callback();
|
|
|
|
|
|
|
+ var reg = new RegExp("[\\u4E00-\\u9FFF]+", "g");
|
|
|
|
|
+ if (value == "") {
|
|
|
|
|
+ callback(new Error("请输入密码"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (reg.test(value)) {
|
|
|
|
|
+ callback(new Error("密码不能包含汉字!"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (value.indexOf("#") !== -1 || value.indexOf("@") !== -1) {
|
|
|
|
|
+ callback();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ callback(new Error("密码必须包含*#@_字符之一"));
|
|
|
|
|
+ }
|
|
|
};
|
|
};
|
|
|
// input验证 - 验证手机号
|
|
// input验证 - 验证手机号
|
|
|
var checkphone = (rule, value, callback) => {
|
|
var checkphone = (rule, value, callback) => {
|
|
|
- // let phoneReg = /(^1[3|4|5|6|7|8|9]\d{9}$)|(^09\d{8}$)/;
|
|
|
|
|
if (value == "") {
|
|
if (value == "") {
|
|
|
callback(new Error("请输入手机号"));
|
|
callback(new Error("请输入手机号"));
|
|
|
} else if (!this.isCellPhone(value)) {
|
|
} else if (!this.isCellPhone(value)) {
|
|
@@ -352,28 +390,24 @@ export default {
|
|
|
state: "" // 账号状态
|
|
state: "" // 账号状态
|
|
|
},
|
|
},
|
|
|
rules: {
|
|
rules: {
|
|
|
- user: [
|
|
|
|
|
- { required: true, message: "请输入账号", trigger: "blur" }
|
|
|
|
|
- // { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
|
|
|
|
|
- ],
|
|
|
|
|
|
|
+ user: [{ required: true, message: "请输入账号", trigger: "blur" }],
|
|
|
password: [
|
|
password: [
|
|
|
- { required: true, message: "请输入密码", trigger: "blur" },
|
|
|
|
|
- { validator: checkPath, trigger: "change" }
|
|
|
|
|
- // { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
|
|
|
|
|
|
|
+ { required: true, validator: checkPath, trigger: "blur" }
|
|
|
|
|
+ // { validator: checkPath, trigger: "blur" }
|
|
|
],
|
|
],
|
|
|
name: [
|
|
name: [
|
|
|
{ required: true, message: "请输入姓名", trigger: "blur" }
|
|
{ required: true, message: "请输入姓名", trigger: "blur" }
|
|
|
// { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
|
|
// { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
|
|
|
],
|
|
],
|
|
|
judge: [
|
|
judge: [
|
|
|
- { required: true, message: "隶属海关,可多选", trigger: "blur" }
|
|
|
|
|
|
|
+ { required: true, message: "隶属海关,可多选", trigger: "change" }
|
|
|
// { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
|
|
// { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
|
|
|
],
|
|
],
|
|
|
role: [
|
|
role: [
|
|
|
{
|
|
{
|
|
|
required: true,
|
|
required: true,
|
|
|
message: "请选择角色,可多选",
|
|
message: "请选择角色,可多选",
|
|
|
- trigger: "blur"
|
|
|
|
|
|
|
+ trigger: "change"
|
|
|
}
|
|
}
|
|
|
// { min: 3, max: 5, message: "长度在 1 到 30 个字符", trigger: "blur" },
|
|
// { min: 3, max: 5, message: "长度在 1 到 30 个字符", trigger: "blur" },
|
|
|
],
|
|
],
|
|
@@ -445,44 +479,37 @@ export default {
|
|
|
this.editorObj = e;
|
|
this.editorObj = e;
|
|
|
|
|
|
|
|
this.form.judge = [];
|
|
this.form.judge = [];
|
|
|
|
|
+ var orgList = []; // 组织
|
|
|
|
|
+ var roleList = []; // 角色
|
|
|
for (var i = 0; i < e.org_list.length; i++) {
|
|
for (var i = 0; i < e.org_list.length; i++) {
|
|
|
var arr = [e.org_list[i].org_id];
|
|
var arr = [e.org_list[i].org_id];
|
|
|
- this.form.judge.push(arr);
|
|
|
|
|
|
|
+ orgList.push(arr);
|
|
|
}
|
|
}
|
|
|
if (e.parent_list.length != 0) {
|
|
if (e.parent_list.length != 0) {
|
|
|
var data = e.parent_list;
|
|
var data = e.parent_list;
|
|
|
- console.log(data);
|
|
|
|
|
for (var i = 0; i < data.length; i++) {
|
|
for (var i = 0; i < data.length; i++) {
|
|
|
- // console.log(data[i]);
|
|
|
|
|
- // if (data[i].superior_org.length > 1) {
|
|
|
|
|
var data2 = data[i];
|
|
var data2 = data[i];
|
|
|
- // console.log(data2);
|
|
|
|
|
for (var j = 0; j < data2.length; j++) {
|
|
for (var j = 0; j < data2.length; j++) {
|
|
|
- console.log(data2[j]);
|
|
|
|
|
- this.form.judge[i].unshift(data2[j].org_id);
|
|
|
|
|
- // }
|
|
|
|
|
- // } else {
|
|
|
|
|
- // if (data[i].superior_org.length != 0) {
|
|
|
|
|
- // this.form.judge[i].unshift(data[i].superior_org[0].org_id);
|
|
|
|
|
- // }
|
|
|
|
|
|
|
+ orgList[i].unshift(data2[j].org_id);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- console.log(this.form.judge);
|
|
|
|
|
-
|
|
|
|
|
- // this.form = {
|
|
|
|
|
- // user: data.username,
|
|
|
|
|
- // password: "",
|
|
|
|
|
- // name: data.real_name,
|
|
|
|
|
- // // judge: orgList,
|
|
|
|
|
- // // role: roleList,
|
|
|
|
|
- // judge: data.org_list,
|
|
|
|
|
- // role: data.role_list,
|
|
|
|
|
- // phone: data.mobile,
|
|
|
|
|
- // mailbox: data.email,
|
|
|
|
|
- // state: data.state
|
|
|
|
|
- // };
|
|
|
|
|
- // console.log(this.form);
|
|
|
|
|
|
|
+ // 角色
|
|
|
|
|
+ for (var x = 0; x < e.role_list.length; x++) {
|
|
|
|
|
+ var a = [e.role_list[x].role_id];
|
|
|
|
|
+ roleList.push(a);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ this.form = {
|
|
|
|
|
+ user: e.username,
|
|
|
|
|
+ password: "",
|
|
|
|
|
+ name: e.real_name,
|
|
|
|
|
+ judge: orgList,
|
|
|
|
|
+ role: roleList,
|
|
|
|
|
+ phone: e.mobile,
|
|
|
|
|
+ mailbox: e.email,
|
|
|
|
|
+ state: e.state
|
|
|
|
|
+ };
|
|
|
this.userVisible = true;
|
|
this.userVisible = true;
|
|
|
},
|
|
},
|
|
|
// 停用
|
|
// 停用
|
|
@@ -630,13 +657,22 @@ export default {
|
|
|
submitForm() {
|
|
submitForm() {
|
|
|
this.$refs["form"].validate(valid => {
|
|
this.$refs["form"].validate(valid => {
|
|
|
if (valid) {
|
|
if (valid) {
|
|
|
|
|
+ // 处理隶属海关、角色
|
|
|
|
|
+ var orgList = []; //隶属海关
|
|
|
|
|
+ var roleList = []; // 角色
|
|
|
|
|
+ for (var i = 0; i < this.form.judge.length; i++) {
|
|
|
|
|
+ orgList.push(this.form.judge[i][this.form.judge[i].length - 1]);
|
|
|
|
|
+ }
|
|
|
|
|
+ for (var j = 0; j < this.form.role.length; j++) {
|
|
|
|
|
+ roleList.push(this.form.role[j]);
|
|
|
|
|
+ }
|
|
|
if (this.tltData == "添加用户") {
|
|
if (this.tltData == "添加用户") {
|
|
|
var postData = this.qs.stringify({
|
|
var postData = this.qs.stringify({
|
|
|
username: this.form.user, // 登录账号 必
|
|
username: this.form.user, // 登录账号 必
|
|
|
real_name: this.form.name, // 用户名 必
|
|
real_name: this.form.name, // 用户名 必
|
|
|
password: this.form.password, // 密码 必
|
|
password: this.form.password, // 密码 必
|
|
|
- org_id_list: JSON.stringify(this.form.judge), //组织id数组 必
|
|
|
|
|
- role_id_list: JSON.stringify(this.form.role), // 角色id数组 必
|
|
|
|
|
|
|
+ org_id_list: JSON.stringify(orgList), //组织id数组 必
|
|
|
|
|
+ role_id_list: JSON.stringify(roleList), // 角色id数组 必
|
|
|
state: this.form.state, //用户状态
|
|
state: this.form.state, //用户状态
|
|
|
mobile: this.form.phone, // 手机号
|
|
mobile: this.form.phone, // 手机号
|
|
|
email: this.form.mailbox //邮箱地址
|
|
email: this.form.mailbox //邮箱地址
|
|
@@ -646,8 +682,8 @@ export default {
|
|
|
var postData = this.qs.stringify({
|
|
var postData = this.qs.stringify({
|
|
|
user_id: this.editorObj.user_id, // 用户id 必
|
|
user_id: this.editorObj.user_id, // 用户id 必
|
|
|
real_name: this.form.name, // 用户名 必
|
|
real_name: this.form.name, // 用户名 必
|
|
|
- org_id_list: JSON.stringify(this.form.judge), //组织id数组 必
|
|
|
|
|
- role_id_list: JSON.stringify(this.form.role), //角色id数组 必
|
|
|
|
|
|
|
+ org_id_list: JSON.stringify(orgList), //组织id数组 必
|
|
|
|
|
+ role_id_list: JSON.stringify(roleList), //角色id数组 必
|
|
|
mobile: this.form.phone, //手机号
|
|
mobile: this.form.phone, //手机号
|
|
|
email: this.form.mailbox //邮箱地址
|
|
email: this.form.mailbox //邮箱地址
|
|
|
});
|
|
});
|
|
@@ -665,10 +701,11 @@ export default {
|
|
|
type: "success",
|
|
type: "success",
|
|
|
duration: 1500
|
|
duration: 1500
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
|
|
+ this.$refs["form"].resetFields();
|
|
|
|
|
+ this.userVisible = false;
|
|
|
|
|
+ this.userListData();
|
|
|
}
|
|
}
|
|
|
- this.$refs["form"].resetFields();
|
|
|
|
|
- this.userVisible = false;
|
|
|
|
|
- this.userListData();
|
|
|
|
|
});
|
|
});
|
|
|
} else {
|
|
} else {
|
|
|
return false;
|
|
return false;
|
|
@@ -704,9 +741,9 @@ export default {
|
|
|
list.push(item);
|
|
list.push(item);
|
|
|
});
|
|
});
|
|
|
this.tableData = list;
|
|
this.tableData = list;
|
|
|
- this.loading2 = false;
|
|
|
|
|
this.pageSum = res.data.data.page_item;
|
|
this.pageSum = res.data.data.page_item;
|
|
|
}
|
|
}
|
|
|
|
|
+ this.loading2 = false;
|
|
|
})
|
|
})
|
|
|
.catch(err => {
|
|
.catch(err => {
|
|
|
this.loading2 = false;
|
|
this.loading2 = false;
|
|
@@ -734,11 +771,11 @@ export default {
|
|
|
this.tissueList = list; // 弹框组织列表
|
|
this.tissueList = list; // 弹框组织列表
|
|
|
var data = res.data.data.page_list;
|
|
var data = res.data.data.page_list;
|
|
|
this.data = [obj, ...data]; // 左侧组织列表
|
|
this.data = [obj, ...data]; // 左侧组织列表
|
|
|
- this.loading = false;
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+ this.loading = false;
|
|
|
})
|
|
})
|
|
|
.catch(err => {
|
|
.catch(err => {
|
|
|
- this.loading2 = false;
|
|
|
|
|
|
|
+ this.loading = false;
|
|
|
});
|
|
});
|
|
|
},
|
|
},
|
|
|
|
|
|