Commit c546b3c4 by yuhao

添加协助平台

parent 8b08ddd0
......@@ -2,7 +2,60 @@ import { post, postform, postdown } from "@/utils/http.js";
import base from "@/api/base";
//线索组查询
//协助查询
export const selectAll = params =>
postform(`${base.alyIP}/xzqqXx/selectAll`, params);
//协助新增
export const insertXzqqXx = params =>
postform(`${base.alyIP}/xzqqXx/insertXzqqXx`, params);
//协助详情
export const selectOne = params =>
postform(`${base.alyIP}/xzqqXx/selectOne`, params);
export const imgInfo = params =>
postform(`${base.alyIP}/xzqqXx/imgInfo`, params);
export const selectAllMj = params =>
postform(`${base.alyIP}/mjxx/selectAll`, params);
export const selectAllXyr = params =>
postform(`${base.alyIP}/xyrxx/selectAll`, params);
// 审批
export const shXzqqXx = params =>
postform(`${base.alyIP}/xzqqXx/shXzqqXx`, params);
// 抓获人列表
export const selectAllZhr = params =>
postform(`${base.alyIP}/zhryxx/selectAll`, params);
// 抓获人新增
export const insertZhryxx = params =>
postform(`${base.alyIP}/zhryxx/insertZhryxx`, params);
// 抓获人修改
export const updateZhryxx = params =>
postform(`${base.alyIP}/zhryxx/updateZhryxx`, params);
// 抓获人删除
export const deleteByIdZhr = params =>
postform(`${base.alyIP}/zhryxx/deleteById`, params);
// 民警新增
export const insertMjxx = params =>
postform(`${base.alyIP}/mjxx/insertMjxx`, params);
// 民警修改
export const updateMjxx = params =>
postform(`${base.alyIP}/mjxx/updateMjxx`, params);
// 嫌疑人新增
export const insertXyrxx = params =>
postform(`${base.alyIP}/xyrxx/insertXyrxx`, params);
// 嫌疑人修改
export const updateXyrxx = params =>
postform(`${base.alyIP}/xyrxx/updateXyrxx`, params);
// 整体修改
export const updateXzqqXx = params =>
postform(`${base.alyIP}/xzqqXx/updateXzqqXx`, params);
// 删除民警
export const deleteByIdMj = params =>
postform(`${base.alyIP}/mjxx/deleteById`, params);
// 删除基本信息
export const deleteByIdJbxx = params =>
postform(`${base.alyIP}/xzqqXx/deleteById`, params);
// 删除嫌疑人
export const deleteByIdXyr = params =>
postform(`${base.alyIP}/xyrxx/deleteById`, params);
import { post, postform, postdown } from "@/utils/http.js";
import base from "@/api/base";
//用户新增
export const insertUserNew = params =>
postform(`${base.alyIP}/sysuser/zcinsertUserNew`, params);
//删除用户
export const deleteUserNew = params =>
post(`${base.alyIP}/sysuser/deleteUserNew`, params);
//用户详情
export const getUserXxByxxzjbh = params =>
post(`${base.alyIP}/sysuser/getUserXxByxxzjbh`, params);
//用户修改
export const updateUserXx = params =>
postform(`${base.alyIP}/sysuser/updateUserXx`, params);
//用户审批
export const getUserShList = params =>
postform(`${base.alyIP}/sysuser/getUserShList`, params);
//注册用户详情
export const shUserDetail = params =>
post(`${base.alyIP}/sysuser/shUserDetail`, params);
//注册用户详情审核
export const shUser = params =>
post(`${base.alyIP}/sysuser/shUser`, params);
//附件详情
export const applyfjlist = params =>
postform(`${base.alyIP}/sysuser/applyfjlist`, params);
//修改密码
export const updateUserMm = params =>
post(`${base.alyIP}/sysuser/updateUserMm`, params);
\ No newline at end of file
src/assets/img/login/login2.png

12.1 KB | W: | H:

src/assets/img/login/login2.png

10.5 KB | W: | H:

src/assets/img/login/login2.png
src/assets/img/login/login2.png
src/assets/img/login/login2.png
src/assets/img/login/login2.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -30,19 +30,38 @@
:index="columIndex">
<template slot-scope="{row,$index}">
<!-- 操作按钮 -->
<!-- 基础操作 -->
<template v-if="column.type=='basic'">
<span v-for="(operations, index) in column.operation"
:key="index">
<!-- operations.label , -->
<!-- -->
<el-button :icon="operations.icon"
:type="operations.type"
@click="rowOperation(row,index,operations.option)"
:style="{color:operations.color}"
size="mini">{{ operations.label }}</el-button>
size="mini">{{ operations.label}}</el-button>
</span>
</template>
<template v-if="column.type=='basicXz'">
<span v-for="(operations, index) in column.operation"
:key="index">
<!-- operations.label , -->
<!-- -->
<el-button :icon="operations.icon"
:type="operations.type"
v-if="operations.shztList.indexOf(row.xzzt)!=-1"
@click="rowOperation(row,index,operations.option)"
:style="{color:operations.color}"
size="mini">{{ operations.label}}</el-button>
</span>
</template>
<!-- 按钮插槽 -->
<template v-if="column.type=='basicSlot'">
<slot name="btnGroup"
:scope="row"
style="width: 200px"></slot>
</template>
<!-- 默认展示 -->
<span v-if="column.text && column.editRow != $index">
{{ (row[column.prop] + '') || '--' }}
......@@ -98,10 +117,70 @@
</div>
</el-image>
</template>
<template v-else-if="column.prop=='faceUrl'">
<template v-else-if="column.prop=='imageUrlZm'">
<el-image style="width:204px;height:120px;"
:src="row.imageUrlZm"
:preview-src-list="[row.imageUrlZm]"
alt="">
<div slot="error"
class="image-slot el-image__error">
<i class="el-icon-picture-outline"></i>
<p>暂无图片</p>
</div>
</el-image>
</template>
<template v-else-if="column.prop=='imageUrlFm'">
<el-image style="width:204px;height:120px;"
:src="row.imageUrlFm"
:preview-src-list="[row.imageUrlFm]"
alt="">
<div slot="error"
class="image-slot el-image__error">
<i class="el-icon-picture-outline"></i>
<p>暂无图片</p>
</div>
</el-image>
</template>
<template v-else-if="column.prop=='imageUrlZmcl'">
<el-image style="width:204px;height:120px;"
:src="row.imageUrlZmcl"
:preview-src-list="[row.imageUrlZmcl]"
alt="">
<div slot="error"
class="image-slot el-image__error">
<i class="el-icon-picture-outline"></i>
<p>暂无图片</p>
</div>
</el-image>
</template>
<template v-else-if="column.prop=='zmjgzp'">
<el-image style="width:204px;height:120px;"
:src="row.zmjgzp"
:preview-src-list="[row.zmjgzp]"
alt="">
<div slot="error"
class="image-slot el-image__error">
<i class="el-icon-picture-outline"></i>
<p>暂无图片</p>
</div>
</el-image>
</template>
<template v-else-if="column.prop=='fmjgzp'">
<el-image style="width:204px;height:120px;"
:src="row.fmjgzp"
:preview-src-list="[row.fmjgzp]"
alt="">
<div slot="error"
class="image-slot el-image__error">
<i class="el-icon-picture-outline"></i>
<p>暂无图片</p>
</div>
</el-image>
</template>
<template v-else-if="column.prop=='wj'">
<el-image style="width:204px;height:120px;"
:src="row.faceUrl"
:preview-src-list="[row.faceUrl]"
:src="row.wj&&row.wj[0].dzwjnrBase64"
:preview-src-list="[row.wj&&row.wj[0].dzwjnrBase64]"
alt="">
<div slot="error"
class="image-slot el-image__error">
......@@ -110,10 +189,10 @@
</div>
</el-image>
</template>
<template v-else-if="column.prop=='imgFace'">
<template v-else-if="column.prop=='wj2'">
<el-image style="width:204px;height:120px;"
:src="row.imgFace"
:preview-src-list="[row.imgFace]"
:src="row.wj&&row.wj[1].dzwjnrBase64"
:preview-src-list="[row.wj&&row.wj[1].dzwjnrBase64]"
alt="">
<div slot="error"
class="image-slot el-image__error">
......
This source diff could not be displayed because it is too large. You can view the blob instead.
<template>
<el-popover
ref="popover"
placement="bottom-start"
trigger="click"
@show="onShowPopover"
@hide="onHidePopover"
>
<el-tree
ref="tree"
class="select-tree"
:style="{ 'min-width': treeWidth }"
highlight-current
:data="data"
:props="props"
:expand-on-click-node="false"
:filter-node-method="filterNode"
:default-expand-all="false"
@node-click="onClickNode"
/>
<el-input
slot="reference"
ref="input"
v-model="labelModel"
clearable
@clear="clearSeleted"
:class="{ rotate: showStatus }"
:placeholder="placeholder"
suffix-icon="el-icon-arrow-down"
>
<!--<i slot="suffix" class="iconfont iconzidianmaxuanze"></i>-->
</el-input>
</el-popover>
</template>
<script>
export default {
name: "ElSelectTree",
// 设置绑定参数
model: {
prop: "value",
event: "selected"
},
props: {
sendId: String,
// 接收绑定参数
value: String,
// 输入框宽度
width: String,
// 选项数据
options: {
type: Array,
required: true
},
// 输入框占位符
placeholder: {
type: String,
required: false,
default: "请选择"
},
// 树节点配置选项
props: {
type: Object,
required: false,
default: () => ({
parent: "parentId",
value: "id",
label: "label",
children: "children"
})
}
},
data() {
return {
// 树状菜单显示状态
showStatus: false,
// 菜单宽度
treeWidth: "auto",
// 输入框显示值
labelModel: "",
// 实际请求传值
valueModel: ""
};
},
computed: {
// 是否为树状结构数据
dataType() {
const jsonStr = JSON.stringify(this.options);
/*if (process.client) {*/
return jsonStr.indexOf(this.props.children) !== -1;
/* }*/
},
// 若非树状结构,则转化为树状结构数据
data() {
return this.dataType ? this.options : this.switchTree();
}
},
watch: {
labelModel(val) {
if (!val) {
this.valueModel = "";
}
/* if (process.client) {*/
this.$refs.tree.filter(val);
this.$emit("getSeleted", this.labelModel);
/* }*/
},
value(val) {
if (this.sendId && val == "") {
this.$emit("emitQkValue", this.sendId, val);
}
this.labelModel = this.queryTree(this.data, val);
this.$emit("getSeleted", this.labelModel);
}
},
created() {
// 检测输入框原有值并显示对应 label
if (this.value) {
this.labelModel = this.queryTree(this.data, this.value);
}
// 获取输入框宽度同步至树状菜单宽度
this.$nextTick(() => {
/* if (process.client) {*/
this.treeWidth = `${(this.width ||
this.$refs.input.$refs.input.clientWidth) - 24}px`;
/* }*/
});
},
methods: {
clearSearchValue(){
this.labelModel='';
},
clearSeleted() {
this.$emit("getSeleted", this.labelModel);
},
// 单击节点
onClickNode(node) {
this.labelModel = node[this.props.label];
this.valueModel = node[this.props.value];
if (this.sendId) {
this.$emit("emitValue", this.sendId, node.id, node.parentId);
}
this.onCloseTree();
this.$emit("getSeleted", this.labelModel);
},
// 偏平数组转化为树状层级结构
switchTree() {
return this.cleanChildren(this.buildTree(this.options, "0"));
},
// 隐藏树状菜单
onCloseTree() {
/*if (process.client) {
this.$refs.popover.showPopper = false;
}*/
this.$refs.popover.showPopper = false;
},
// 显示时触发
onShowPopover() {
this.showStatus = true;
/* if (process.client) {
this.$refs.tree.filter(false);
}*/
this.$refs.tree.filter(false);
},
// 隐藏时触发
onHidePopover() {
this.showStatus = false;
this.$emit("selected", this.valueModel);
},
// 树节点过滤方法
filterNode(query, data) {
if (!query) return true;
/*if (process.client) {*/
return data[this.props.label].indexOf(query) !== -1;
/* }*/
},
// 搜索树状数据中的 ID
queryTree(tree, id) {
let stark = [];
stark = stark.concat(tree);
/* if (process.client) {*/
while (stark.length) {
const temp = stark.shift();
if (temp[this.props.children]) {
stark = stark.concat(temp[this.props.children]);
}
if (temp[this.props.value] === id) {
return temp[this.props.label];
}
}
/* }*/
return "";
},
// 将一维的扁平数组转换为多层级对象
buildTree(data, id = "0") {
const fa = parentId => {
const temp = [];
/*if (process.client) {*/
for (let i = 0; i < data.length; i++) {
const n = data[i];
if (n[this.props.parent] === parentId) {
n.children = fa(n.rowGuid);
temp.push(n);
}
}
/* }*/
return temp;
};
return fa(id);
},
// 清除空 children项
cleanChildren(data) {
const fa = list => {
list.map(e => {
/*if (process.client) {*/
if (e.children.length) {
fa(e.children);
} else {
delete e.children;
}
/* }*/
return e;
});
return list;
};
return fa(data);
}
}
};
</script>
<style>
.el-input.el-input--suffix {
cursor: pointer;
overflow: hidden;
}
.el-input.el-input--suffix.rotate .el-input__suffix {
transform: rotate(180deg);
}
.select-tree {
max-height: 350px;
overflow-y: scroll;
}
/* 菜单滚动条 */
.select-tree::-webkit-scrollbar {
z-index: 11;
width: 6px;
}
.select-tree::-webkit-scrollbar-track,
.select-tree::-webkit-scrollbar-corner {
background: #fff;
}
.select-tree::-webkit-scrollbar-thumb {
border-radius: 5px;
width: 6px;
background: #b4bccc;
}
.select-tree::-webkit-scrollbar-track-piece {
background: #fff;
width: 6px;
}
</style>
......@@ -45,6 +45,7 @@
<el-menu-item :index="subitem.index"
v-for="(subitem, index) in item.children"
:key="index"
v-permission="subitem.newAuth"
@click="goDetail(subitem)"><i class="iconfont iconquanxianjiesuo"
v-show="subitem.disabled"></i>{{ subitem.label }}</el-menu-item>
</el-submenu>
......@@ -56,13 +57,13 @@
<div class="queryContent"
:style="{ width: isCollapse == true ? 'calc(100% - 72px)' : 'calc(100% - 200px)' }">
<div class="main_top">
<div class="top_left">
<!-- <div class="top_left">
<i :class="isCollapse == true ? 'el-icon-s-unfold':'el-icon-s-fold'"
@click="isCollapseBtn"></i>
<i class="iconfont icon-shuaxin"
@click="reFresh"></i>
</div>
</div> -->
<div class="top_right"> <i class="iconfont icon-youjian"></i>
<div class="full"
@click="full">
......@@ -74,17 +75,67 @@
v-show="!isFull"></i>
</div>
</div>
<el-menu class="el-menu-demo"
mode="horizontal">
<el-submenu index="2">
<template slot="title">
<span>{{userAuth.userName}}</span>
</template>
<el-menu-item index="2-1"
@click="editMm">修改密码</el-menu-item>
<el-menu-item index="2-2"
@click="loginOut">退出</el-menu-item>
</el-submenu>
</el-menu>
</div>
<div class="rightContent">
<router-view v-if="isActive" />
</div>
</div>
<!-- 修改密码 -->
<el-dialog title="修改密码"
class="dialogPass"
:visible.sync="dialogVisibleMzxg"
width="30%">
<div class="name">
<el-form ref="form"
:model="form"
label-width="120px"
:rules="rules">
<el-form-item label="请输入旧密码: "
prop="oldPassword">
<el-input placeholder="请输入旧密码"
v-model="form.oldPassword"></el-input>
</el-form-item>
<el-form-item label="请输入新密码: "
prop="newPassword">
<el-input placeholder="请输入新密码"
show-password
v-model="form.newPassword"></el-input>
</el-form-item>
<el-form-item label="请确定新密码: "
prop="newPassword1">
<el-input placeholder="请确定新密码"
show-password
v-model="form.newPassword1"></el-input>
</el-form-item>
</el-form>
</div>
<span slot="footer"
class="dialog-footer">
<el-button @click="dialogVisibleMzxg = false">取 消</el-button>
<el-button type="primary"
:loading="loadingPass"
@click="submitMaa">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import screenfull from "screenfull";
import { updateUserMm } from "@/api/userAuth/addUser.js";
export default {
name: "leftMenu_components",
......@@ -92,7 +143,48 @@ export default {
isCollapseP: Boolean,
},
data () {
const ma = (rule, value, callback) => {
let patter =
/^\S*(?=\S{8,32})(?=\S*\d)(?=\S*[A-Z])(?=\S*[a-z])(?=\S*[!@#$%^&*? ])\S*$/;
if (!patter.test(value)) {
return callback(
new Error(
"密码中必须包含大小写字母、数字、特殊字符,且长度在8-32位,请重新修改密码!"
)
);
} else {
callback(); //必须有此项回调,否则验证会一直不通过
}
};
var validatePass2 = (rule, value, callback) => {
if (value === "") {
callback(new Error("请再次输入密码"));
} else if (value !== this.form.newPassword) {
callback(new Error("两次输入密码不一致!"));
} else {
callback();
}
};
return {
loadingPass: false,
dialogVisibleMzxg: false,
form: {
id: "",
oldPassword: "",
newPassword: "",
newPassword1: "",
},
rules: {
oldPassword: [
{ required: true, message: "请输入旧密码", trigger: "blur" },
],
newPassword: [{ required: true, trigger: "blur" }],
newPassword1: [
{ required: true, trigger: "blur" },
],
},
// validator: ma,
// validator: validatePass2,
isFull: false, //是否全屏
isActive: true,
NavActive: this.$route.path,
......@@ -140,7 +232,7 @@ export default {
};
},
computed: {
...mapGetters(["topMenu", "leftMenu", "header"]),
...mapGetters(["topMenu", "leftMenu", "header", "userAuth"]),
},
created () {
console.log(this.$route.path, `'/' + ${this.$route.path.split('/')[1]} + '/' + ${this.$route.path.split('/')[2]}`, 11);
......@@ -149,6 +241,32 @@ export default {
if (this.leftMenu.length && this.leftMenu.length > 0) { this.leftMenus = this.leftMenu; }
},
methods: {
editMm () {
this.dialogVisibleMzxg = true;
this.$set(this.form, "id", this.userAuth.userId);
},
submitMaa () {
this.$refs.form.validate((valid) => {
if (valid) {
this.loadingPass = true
updateUserMm(this.form).then((res) => {
try {
if (res.data.code == 200) {
this.dialogVisibleMzxg = false;
this.$message.success("密码修改成功!");
this.loadingPass = false
} else {
this.$message.error(res.data.message);
}
} catch (err) {
console.log(err);
this.$message.error(res.data.message);
}
});
}
});
},
// 是否全屏
full () {
screenfull.toggle();
......@@ -182,6 +300,18 @@ export default {
changeSidebar (index) {
sessionStorage.setItem("routerPath", index);
},
loginOut () {
this.$confirm("此操作将退出登录, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
localStorage.removeItem("userInfo")
localStorage.removeItem('token')
this.$router.replace('/login')
}).catch(() => { });
}
},
watch: {
isCollapseP (val) {
......@@ -204,7 +334,14 @@ export default {
};
</script>
<style>
<style lang="scss">
.el-menu--horizontal {
.el-menu--popup {
min-width: 90px !important;
}
}
.dialogPass {
}
</style>
<style scoped lang="scss">
@import "../assets/styles/leftMenu.scss";
......@@ -224,4 +361,14 @@ export default {
.el-menu-item {
padding-left: 14px !important;
}
.get-user {
/deep/.el-menu--popup {
min-width: 90px !important;
}
}
::v-deep .dialogPass {
.el-dialog__body {
padding: 24px !important;
}
}
</style>
......@@ -10,7 +10,9 @@ import Watermark from "@/utils/watermark.js"
import Driver from 'driver.js'
import 'driver.js/dist/driver.min.css'
import '@/assets/font/iconfont.css'
import rules from "./utils/rules.js";
import moments from 'moment'
Vue.prototype.$rules = rules;
Vue.prototype.$moment = moments;
//全局导出excel
import htmlToExcel from './excel/htmlToExcel';
......@@ -45,7 +47,7 @@ if (userInfo) {
let zjhm = userInfo.identitycard.replace(/^(.{10})(?:\d+)(.{4})$/, "$1****$2")
let name = userInfo.realname.substring(0, userInfo.realname.length - 1)
let names = userInfo.realname.replace(name, '***')
let xmmc = '统计分析子系统'
let xmmc = '跨区域协作平台'
let time = Util.timeStampTurnTime(new Date().getTime())
let one = `${zjhm} ${names}`
......
......@@ -22,4 +22,13 @@ export default [
},
component: () => import("@/views/login.vue")
},
{
path: "/userRegister",
name: "userRegister",
meta: {
title: "注册",
auth: "5"
},
component: () => import("@/views/userRegister.vue")
},
]
\ No newline at end of file
......@@ -4,13 +4,51 @@ const menuLayouts = [
path: "/queryBaxz",
name: "queryBaxz",
meta: {
title: '办案协作',
title: '协作列表',
auth: "5",
},
component: () => import("@/views/baxz/queryBaxz.vue")
},
{
path: "/queryDshxz",
name: "queryDshxz",
meta: {
title: '待审核协作',
auth: "5",
},
component: () => import("@/views/baxz/queryDshxz.vue")
},
{
path: "/queryDbxz",
name: "queryDbxz",
meta: {
title: '待办协作',
auth: "5",
},
component: () => import("@/views/baxz/queryDbxz.vue")
},
{
path: "/queryYbxz",
name: "queryYbxz",
meta: {
title: '已办协作',
auth: "5",
},
component: () => import("@/views/baxz/queryYbxz.vue")
},
{
path: "/queryApproval",
name: "queryApproval",
meta: {
isAdd: false,
title: '注册审核管理'
},
component: () => import( /* webpackChunkName: "userAuth" */ "@/views/userAuth/approval/queryApproval.vue")
},
]
export default [{
path: "/right",
......@@ -27,4 +65,43 @@ export default [{
},
component: () => import("@/views/baxz/addBaxz.vue")
},
{
path: "/editBaxz",
name: "editBaxz",
meta: {
title: '修改协作',
auth: "5",
},
component: () => import("@/views/baxz/editBaxz.vue")
},
{
path: "/addZhrxx",
name: "addZhrxx",
meta: {
title: '录入抓获人信息',
auth: "5",
},
component: () => import("@/views/baxz/addZhrxx.vue")
},
{
path: "/baxzDetail",
name: "baxzDetail",
meta: {
title: '协作详情',
auth: "5",
},
component: () => import("@/views/baxz/baxzDetail.vue")
},
{
path: "/userApproval",
name: "userApproval",
meta: {
isAdd: false,
title: '用户审批'
},
component: () => import( /* webpackChunkName: "userAuth" */ "@/views/userAuth/approval/userApproval.vue")
},
]
\ No newline at end of file
/**
* Created by jiachenpan on 16/11/18.
*/
export function isvalidUsername(str) {
const valid_map = ['admin', 'editor']
return valid_map.indexOf(str.trim()) >= 0
}
/* 合法uri*/
export function validateURL(textval) {
const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
return urlregex.test(textval)
}
/**
* 邮箱
* @param {*} s
*/
export function isEmail(s) {
return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
}
/**
* 手机号码
* @param {*} s
*/
export function isMobile(s) {
return /^1(3[0-9]|5[0-3,5-9]|7[1-3,5-8]|8[0-9])\d{8}$/.test(s)
}
/**
* 电话号码
* @param {*} s
*/
export function isPhone(s) {
return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
}
/**
* URL地址
* @param {*} s
*/
export function isURL(s) {
return /^http[s]?:\/\/.*/.test(s)
}
/* 小写字母*/
export function validateLowerCase(str) {
const reg = /^[a-z]+$/
return reg.test(str)
}
/* 大写字母*/
export function validateUpperCase(str) {
const reg = /^[A-Z]+$/
return reg.test(str)
}
/* 大小写字母*/
export function validatAlphabets(str) {
const reg = /^[A-Za-z]+$/
return reg.test(str)
}
/*验证pad还是pc*/
export const vaildatePc = function() {
const userAgentInfo = navigator.userAgent;
const Agents = ["Android", "iPhone",
"SymbianOS", "Windows Phone",
"iPad", "iPod"
];
let flag = true;
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
}
/**
* validate email
* @param email
* @returns {boolean}
*/
export function validateEmail(email) {
const re = /^(([^<>()\\[\]\\.,;:\s@"]+(\.[^<>()\\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
return re.test(email)
}
/**
* 判断身份证号码
*/
export function cardid(code) {
let list = [];
let result = true;
let msg = '';
var city = {
11: "北京",
12: "天津",
13: "河北",
14: "山西",
15: "内蒙古",
21: "辽宁",
22: "吉林",
23: "黑龙江 ",
31: "上海",
32: "江苏",
33: "浙江",
34: "安徽",
35: "福建",
36: "江西",
37: "山东",
41: "河南",
42: "湖北 ",
43: "湖南",
44: "广东",
45: "广西",
46: "海南",
50: "重庆",
51: "四川",
52: "贵州",
53: "云南",
54: "西藏 ",
61: "陕西",
62: "甘肃",
63: "青海",
64: "宁夏",
65: "新疆",
71: "台湾",
81: "香港",
82: "澳门",
91: "国外 "
};
if (!validatenull(code)) {
if (code.length == 18) {
if (!code || !/(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(code)) {
msg = "证件号码格式错误";
} else if (!city[code.substr(0, 2)]) {
msg = "地址编码错误";
} else {
//18位身份证需要验证最后一位校验位
code = code.split('');
//∑(ai×Wi)(mod 11)
//加权因子
var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
//校验位
var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2, 'x'];
var sum = 0;
var ai = 0;
var wi = 0;
for (var i = 0; i < 17; i++) {
ai = code[i];
wi = factor[i];
sum += ai * wi;
}
if (parity[sum % 11] != code[17]) {
msg = "证件号码校验位错误";
} else {
result = false;
}
}
} else {
msg = "证件号码长度不为18位";
}
} else {
msg = "证件号码不能为空";
}
list.push(result);
list.push(msg);
return list;
}
/**
* 判断手机号码是否正确
*/
export function isvalidatemobile(phone) {
let list = [];
let result = true;
let msg = '';
var isPhone = /^0\d{2,3}-?\d{7,8}$/;
//增加134 减少|1349[0-9]{7},增加181,增加145,增加17[678]
if (!validatenull(phone)) {
if (phone.length == 11) {
if (isPhone.test(phone)) {
msg = '手机号码格式不正确';
} else {
result = false;
}
} else {
msg = '手机号码长度不为11位';
}
} else {
msg = '手机号码不能为空';
}
list.push(result);
list.push(msg);
return list;
}
/**
* 判断姓名是否正确
*/
export function validatename(name) {
var regName = /^[\u4e00-\u9fa5]{2,8}$/;
if (!regName.test(name)) return false;
return true;
}
/**
* 判断是否为整数
*/
export function validatenum(num, type) {
let regName = /[^\d.]/g;
if (type == 1) {
if (!regName.test(num)) return false;
} else if (type == 2) {
regName = /[^\d]/g;
if (!regName.test(num)) return false;
}
return true;
}
/**
* 判断是否为小数
*/
export function validatenumord(num, type) {
let regName = /[^\d.]/g;
if (type == 1) {
if (!regName.test(num)) return false;
} else if (type == 2) {
regName = /[^\d.]/g;
if (!regName.test(num)) return false;
}
return true;
}
/**
* 判断是否为空
*/
export function validatenull(val) {
if (typeof val == 'boolean') {
return false;
}
if (typeof val == 'number') {
return false;
}
if (val instanceof Array) {
if (val.length == 0) return true;
} else if (val instanceof Object) {
if (JSON.stringify(val) === '{}') return true;
} else {
if (val == 'null' || val == null || val == 'undefined' || val == undefined || val == '') return true;
return false;
}
return false;
}
\ No newline at end of file
......@@ -58,6 +58,21 @@ export const mixinsZd = {
}
}
});
self.propQueryFieldAjlb.forEach((val) => {
if (val.type == "codeTree" || val.type == "codeTreeDialog") {
if (val.codeOptions.length == 0) {
axios
.get(`JsonData/${val.codeTree}.json`)
.then((res) => {
console.log(res, 1111);
self.$set(val, "codeOptions", res.data.data.rows);
})
.catch((err) => {
console.log(err);
});
}
}
});
},
},
......
......@@ -18,7 +18,7 @@
</header>
<Mytable v-loading="downLoading"
element-loading-text="载中..."
element-loading-text="载中..."
:tableData="tableData"
:columObj="columObj"
:pageObj="pageObj"
......@@ -339,7 +339,7 @@ export default {
//左侧导航(模块第一个页面需要)
{
id: "queryBaxz",
label: "办案管理",
label: "协作管理",
newAuth: ["F01"],
index: "/queryBaxz",
className: "iconfont icon-ziyuanliebiao1",
......@@ -347,7 +347,7 @@ export default {
children: [
{
id: "queryBaxz",
label: "办案协作",
label: "协作列表",
newAuth: ["F02"],
index: "/queryBaxz",
className: "iconfont icon-shenpi",
......@@ -362,7 +362,7 @@ export default {
created () {
this.$store.commit("user/SET_LeftMenu", this.leftMenus);
this.$store.commit("user/SET_Header", '办案协作');
this.$store.commit("user/SET_Header", '协作列表');
},
mounted () {
......
<template>
<div class="content_box">
<div class="box_header">已办协作</div>
<div class="box_form">
<el-form ref="form"
:model="form"
label-width="">
<div class="form_line1">
<el-form-item>
<el-input v-model.trim="form.gjzss"
placeholder="请输入关键字搜索"
size="small"></el-input>
</el-form-item>
<div class="searchBtn">
<el-button type="primary"
icon="el-icon-search"
@click="clickSearch"
size="small">查询</el-button>
<!-- <el-button size="small"
@click="searchReset">重置</el-button> -->
</div>
</div>
</el-form>
</div>
<div class="box_table">
<div class="tableBtn">
<!-- @click="addDevice" -->
<!-- <el-button size="small"
@click="addBaxz"
icon="el-icon-plus">发起协作</el-button> -->
<!-- <el-button size="small"
@click="editDevice"
icon="el-icon-edit-outline">修改设备</el-button>
<el-button size="small"
@click="deleteDevice"
icon="el-icon-delete">删除设备</el-button> -->
</div>
<div class="table_contanier">
<Mytable v-loading="loadings"
element-loading-text="加载中..."
:tableData="tableData"
:columObj="columObj"
:pageObj="pageObj"
@handleSizeChange="handleSizeChange"
@handleCurrentChange="handleCurrentChange"
@rowBtn="rowBtn"
@rowOperation="rowOperation"></Mytable>
</div>
</div>
</div>
</template>
<script>
import Mytable from '@/components/Mytable.vue'
import {
selectAll,//协助查询
} from "@/api/statistical.js"
import SelectTreeDialog from "@c/treeCode_components.vue";
import { mapGetters } from "vuex"
export default {
components: {
SelectTreeDialog, Mytable
},
data () {
return {
value1: true,//启用
value2: false,//禁用
form: {
gjzss: '',
},
page: {
page: 1,
limit: 10,
},
total: null,
collectionConfig: [{ labe: "指纹", value: "1" }, { labe: "身高体重", value: "3" }, { labe: "手机", value: "4" }, { labe: "足迹", value: "5" }, { labe: "声纹", value: "6" }, { labe: "虹膜", value: "7" }],
pageObj: { //分页对象
total: 10,
pageData: {
page: 1,
size: 10
}
},
loadings: false,
tableData: [],
columObj: {
visble: false,
loading: false,
columnData: [
{
edit: true,
prop: "xzmc",
editRow: undefined,
label: "协作名称",
width: "",
align: "center",
}, {
text: true,
prop: "asjbh",
editRow: undefined,
label: "案件编号",
width: "",
align: "center",
}, {
text: true,
prop: "xxdjdwGajgmc",
editRow: undefined,
label: "提交单位",
width: "",
align: "center",
}, {
text: true,
prop: "djsj",
editRow: undefined,
label: "提交时间",
width: "",
align: "center",
}, {
text: true,
prop: "xzztStr",
editRow: undefined,
label: "状态",
width: "",
align: "center",
},
{
isOperation: true,
type: 'basic',
label: "操作",
width: "180",
align: "center",
fixed: "right",
sortable: false,
operation: [
{
operation: "edit",
type: "text",
label: "录入抓获人信息",
icon: "",
option: 'zhr',
color: '#1a81e1',
}]
}]
},
}
},
created () {
this.$store.commit("user/SET_Header", '已办协作');
},
computed: {
...mapGetters(["userInfo"])
},
mounted () {
document.getElementsByClassName("el-pagination__jump")[0].childNodes[0].nodeValue = "跳至";
this.getList()
},
methods: {
// 查询
clickSearch () {
this.getList()
},
//重置
searchReset () {
this.form = {
gjzss: '',
}
this.getList()
},
//页码变化
handleCurrentChange (e) {
this.pageObj.pageData.page = e;
this.getList()
},
//条数变化
handleSizeChange (e) {
this.pageObj.pageData.size = e;
this.pageObj.pageData.page = 1;
this.getList()
},
rowOperation (row, index, item) {
if (item == 'zhr') {
this.$router.pushToTab({
path: '/addZhrxx',
query: {
id: row.xxzjbh,
}
})
}
},
rowBtn (row, index) {
this.$router.pushToTab({
path: '/baxzDetail',
query: {
id: row.xxzjbh,
}
})
},
//列表
async getList () {
try {
this.loadings = true;
const params = new FormData()
params.append('xzzt', '3')
params.append('page', this.pageObj.pageData.page)
params.append('limit', this.pageObj.pageData.size)
params.append('gjzss', this.form.gjzss)
let res = await selectAll(params)
if (res && res.code == 200) {
this.tableData = res.data.rows
this.total = res.data.total
this.loadings = false;
} else {
this.loadings = false;
}
} catch (error) {
this.loadings = false;
// this.$message.error('服务器异常')
}
},
//新增设备
addBaxz () {
this.$router.pushToTab({ path: '/addBaxz' })
},
},
}
</script>
<style lang="scss" scoped>
.content_box {
height: 100%;
overflow-y: auto;
background: #f1f2f5;
padding: 19px 20px;
box-sizing: border-box;
.box_header {
font-size: 14px;
font-weight: 500;
color: #383838;
line-height: 18px;
margin-bottom: 19px;
}
.box_form {
padding: 24px 24px 20px;
background: #ffffff;
margin-bottom: 1px;
.el-form {
/deep/.el-form-item {
display: inline-block;
.el-form-item__label {
height: 32px;
line-height: 32px;
font-size: 16px;
font-weight: 400;
color: #4b4b4b;
}
.el-form-item__content {
height: 32px;
line-height: 32px;
}
}
.form_line1 {
text-align: center;
/deep/.el-form-item {
display: inline-block;
width: 25%;
}
}
.form_line2 {
/deep/.el-form-item {
/* margin-bottom: 0; */
}
}
.form_lineInner {
}
.form_line3 {
display: inline-block;
.el-form-item {
width: 100%;
}
}
.searchBtn {
display: inline-block;
margin-left: 16px;
.el-button {
width: 98px;
}
}
}
}
.box_table {
background: #ffffff;
padding: 16px 20px 28px;
.tableBtn {
margin-bottom: 16px;
}
.pagination {
margin-top: 20px;
display: flex;
justify-content: space-between;
height: 48px;
line-height: 48px;
/* text-align: center; */
}
}
}
</style>
\ No newline at end of file
......@@ -12,7 +12,8 @@
</div>
<div class="login_content_right">
<div class="login_content_right_top">
<el-tabs v-model="activeName">
<el-tabs v-model="activeName"
:before-leave='leaveTab'>
<el-tab-pane label="账号登录"
name="1">
<div class="login_content_rightCon">
......@@ -56,7 +57,7 @@
@click="handleSubmit"
:loading="logining">登录</el-button>
</el-form-item>
<div class="login_content_rightCon_rigster"><span>没有账号?</span><span>注册账号</span></div>
<div class="login_content_rightCon_rigster"><span>没有账号?</span><span @click="registerBtn">注册账号</span></div>
</el-form>
<el-form :model="ruleForm3"
:rules="rules3"
......@@ -210,6 +211,13 @@ export default {
};
},
methods: {
leaveTab (activeName, oldActiveName) {
console.log(activeName, oldActiveName, 11);
if (activeName == '2') {
this.$message.info('暂未开放,请使用账号密码登录!')
return false
}
},
// 用户注册
registerBtn () {
this.$router.pushToTab('/userRegister')
......@@ -384,6 +392,8 @@ export default {
.login_content_rightCon {
margin-top: 20px;
.login_content_rightCon_rigster {
position: relative;
z-index: 999;
text-align: center;
font-size: 14px;
height: 24px;
......
<template>
<div class="content_box">
<div class="content_form">
<header>
<p>查询条件</p>
</header>
<myForm :labelWidth="labelWidth"
:isActive="true"
:formConfig="formConfig"
:formData="formData"
:searchHandle="searchHandle"
ref="ruleForm"></myForm>
</div>
<div class="content_table">
<header>
<p>查询结果</p>
<span>{{ pageObj.total || '0' }}</span>
</header>
<Mytable v-loading="downLoading"
element-loading-text="加载中..."
:tableData="tableData"
:columObj="columObj"
:pageObj="pageObj"
@handleSizeChange="handleSizeChange"
@handleCurrentChange="handleCurrentChange">
<template #btnGroup="scope">
<el-button class="hbyp"
type="text"
v-if="scope.scope.shzt=='待办理'||scope.scope.shzt=='不同意'"
size="mini"
@click="approvalBtn(scope.scope)">审核</el-button>
</template>
</Mytable>
</div>
</div>
</template>
<script>
import myForm from '@/components/myForm.vue'
import Mytable from '@/components/Mytable.vue'
import {
getUserShList, //列表
} from '@/api/userAuth/addUser.js'
import axios from "axios";
import base from "@/api/base";
import checkPermission from '@/utils/permission' // 权限判断函数
import { mapGetters } from "vuex";
import encry from "@/utils/encry";
export default {
components: {
myForm, Mytable
},
data () {
return {
columnType: '1',
downLoading: false,
// 表单域标签的宽度
labelWidth: '100px',
// 表单配置
formConfig: [
{
label: '用户名:',
prop: 'username',
type: 'input',
}, {
label: '警号:',
prop: 'policemanid',
type: 'input',
}, {
label: '用户姓名:',
prop: 'trueName',
type: 'input',
},
{
label: '所属单位:',
id: 'unitcode',
type: 'codeTreeDialog',
props: [], //字典弹框需要的字段
value: "",
width: '100%',
codeOptions: [],
codeTree: "CODE_UNIT",
}, {
label: '审批状态:',
prop: 'shzt',
type: 'radio',
value: [],
width: '100%',
radios: [{
label: "待办理",
val: '1',
},
{
label: "同意",
val: '2',
},
{
label: "不同意",
val: '3',
},
]
},
],
// 表单数据
formData: {
username: '',
policemanid: '',
trueName: '',
unitcode: '',
shzt: '1',
},
searchHandle: [
{
label: '查询',
show: true,
icon: 'el-icon-search',
type: 'primary',
handle: () => {
this.searchData()
},
},
{
label: '重置',
show: true,
handle: () => {
this.resetData()
},
},
],
rules: [],
pageObj: { //分页对象
total: 10,
pageData: {
page: 1,
size: 10
}
},
tableData: [],
columObj: {
visble: false,
loading: false,
columnData: [
{
text: true,
prop: "trueName",
editRow: undefined,
label: "用户姓名",
width: "",
align: "center",
}, {
text: true,
prop: "unitname",
editRow: undefined,
label: "用户单位",
width: "",
align: "center",
}, {
text: true,
prop: "policemanid",
editRow: undefined,
label: "警号",
width: "",
align: "center",
}, {
text: true,
prop: "telephone",
editRow: undefined,
label: "联系电话",
width: "",
align: "center",
}, {
text: true,
prop: "shzt",
editRow: undefined,
label: "审核状态",
width: "",
align: "center",
}, {
text: true,
prop: "lrsj",
editRow: undefined,
label: "申请注册时间",
width: "",
align: "center",
},
{
isOperation: true,
type: 'basicSlot',
label: "操作",
width: "",
align: "center",
fixed: "right",
sortable: false,
operation: [
{
operation: "edit",
type: "text",
label: "审核",
icon: "",
option: 'tiQingShenPi',
color: '#1a81e1',
},]
}]
},
}
},
created () {
this.$store.commit("user/SET_Header", '协作列表');
},
mounted () {
this.getList();
document.getElementsByClassName("el-pagination__jump")[0].childNodes[0].nodeValue = "跳至";
window.addEventListener("message", this.messageReciver, false);
},
beforeDestroy () {
window.removeEventListener("message", this.messageReciver, false);
},
methods: {
messageReciver (e) {
if (e.origin == location.origin && e.data == 'appReloadData') {
this.getList();
}
},
checkPermission,
async getList () {
this.columObj.loading = true;
let params = new FormData()
params.append('page', this.pageObj.pageData.page)
params.append('limit', this.pageObj.pageData.size)
params.append('username', this.formData.username)
params.append('trueName', this.formData.trueName)
params.append('unitcode', this.formData.unitcode)
params.append('shzt', this.formData.shzt)
let res = await getUserShList(params)
if (res && res.code == 200) {
this.columObj.loading = false;
this.pageObj.total = res.data.total;
this.tableData = res.data.rows
}
},
// 操作按钮
approvalBtn (row) {
this.$router.pushToTab({
path: "/userApproval",
query: {
xxzjbh: row.id,
},
});
},
//页码变化
handleCurrentChange (e) {
this.pageObj.pageData.page = e;
this.getList()
},
//条数变化
handleSizeChange (e) {
this.pageObj.pageData.size = e;
this.pageObj.pageData.page = 1;
this.getList()
},
searchData () {
this.pageObj.pageData.size = 10;
this.pageObj.pageData.page = 1;
this.getList()
},
resetData () {
this.pageObj.pageData.size = 10;
this.pageObj.pageData.page = 1;
this.formData = {
username: '',
policemanid: '',
trueName: '',
unitcode: '',
shzt: '1',
}
this.getList()
},
},
}
</script>
<style lang="scss" scoped>
.content_box {
padding: 24px;
font-weight: 400;
overflow: auto;
width: 100%;
height: 94vh;
box-sizing: border-box;
}
header {
display: flex;
align-items: center;
height: 48px;
line-height: 48px;
border-bottom: 1px solid #dcdcdc;
padding-left: 48px;
margin-bottom: 16px;
p {
display: inline-block;
height: 24px;
font-size: 18px;
color: #5e5e5e;
line-height: 24px;
margin-right: 16px;
}
span {
height: 24px;
font-size: 14px;
color: #5e5e5e;
line-height: 24px;
}
}
.content_form {
height: 224px;
background: #ffffff;
border-radius: 8px 8px 8px 8px;
margin-bottom: 16px;
/deep/ .el-form {
padding: 0 32px;
.el-form-item__content {
height: 32px;
}
}
}
.content_table {
background: #ffffff;
border-radius: 8px 8px 8px 8px;
/deep/ .tableCon {
padding: 0 20px;
}
}
</style>
\ No newline at end of file
<template>
<div>
<form-compontent :formField="propFormField"
:formLabelAligns="formLabelAlign"
@submit="submit"
:propTitle="title"
@getDialogSeletesd="getDialogSeletesd"
:base64Transform="true"
@removePhoto="removePhoto"
:fileBase64="fileBase64"
@onBase64Transform="onBase64Transform">
</form-compontent>
</div>
</template>
<script>
import formCompontent from "@c/addForm.vue";
import axios from "axios";
import {
insertUserNew,
getUserXxByxxzjbh,
updateUserXx
} from "@/api/userAuth/addUser.js";
export default {
name: "addUser",
components: {
formCompontent,
},
data () {
return {
title: "用户新增",
propFormField: [
//基本信息
{
title: "新增用户",
id: 1,
objStr: "",
index: 0,
data: [
{
name: "用户单位",
id: "unitcode",
type: "lazyCodeTreeDialog",
prop: "checkEmpty", //字典弹框需要的字段
props: "checkEmpty",
placeholder: "请选择",
value: "",
col: "2",
codeOptions: [],
codeTree: "CODE_QGUNIT",
},
{
name: "身份证号:",
id: "identitycard",
type: "text",
prop: "emptyAbleIdentityBT",
value: "",
placeholder: "请输入",
col: "2",
},
{
name: "警号:",
id: "policemanid",
type: "text",
prop: "checkEmpty",
value: "",
placeholder: "请输入",
col: "2",
},
{
name: "真实姓名:",
id: "trueName",
type: "text",
prop: "checkEmpty",
value: "",
placeholder: "请输入",
col: "2",
},
{
name: "密码:",
id: "password",
type: "text",
prop: "checkPassword",
value: "",
placeholder: "请输入",
col: "2",
},
{
name: "电话:",
id: "telephone",
type: "text",
prop: "mustAbleIphone",
value: "",
placeholder: "请输入",
col: "2",
},
{
name: "警官正面照:",
id: "zmjgzp",
type: "photo",
prop: "checkEmpty",
value: "",
requestUrl: "/flwsFj/tbstasjflwsCj/save",
col: "2",
acceptType: ".jpg,.jpeg,.png",
isbase64: true,
},
{
name: "警官反面照:",
id: "fmjgzp",
type: "photo",
prop: "checkEmpty",
value: "",
requestUrl: "/flwsFj/tbstasjflwsCj/save",
col: "2",
acceptType: ".jpg,.jpeg,.png",
isbase64: true,
},
],
},
],
fileBase64: {},
formLabelAlign: {
unitcode: ''
},
Loading: null,
unitname: "",
userInfo: {},
fdId: "",
};
},
methods: {
onBase64Transform (p) {
this.fileBase64 = p;
},
removePhoto (item) {
let loading = this.$loading({
lock: true,
text: "正在删除...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
let id = item.id;
this.$set(this.formLabelAlign, id, "");
loading.close();
},
getDialogSeletesd (label) {
this.unitname = label;
console.log(this.unitname, 999999999);
},
submit (params) {
clearTimeout(this.fdId);
let self = this;
let loading = this.$loading({
lock: true,
text: "正在保存...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
self.fdId = setTimeout(() => {
params.set("identitycard", self.formLabelAlign.identitycard);
params.append("username", self.formLabelAlign.policemanid);
params.append("unitname", self.unitname);
if (!self.xxzjbh) {
self.addSubmit(params, loading);
} else {
self.editSubmit(params, loading);
}
}, 500);
},
addSubmit (params, loading) {
insertUserNew(params).then((res) => {
console.log(res, 11111111);
if (res && res.code == 200) {
this.$alert("保存成功!", "提示", {
confirmButtonText: "确定",
type: "success",
callback: () => {
loading.close();
window.close()
// this.$router.push("login");
},
});
} else {
this.$message.error(res.message);
loading.close();
}
});
},
editSubmit (params, loading) {
// params.append("unitname", this.unitname);
params.append("id", this.xxzjbh);
updateUserXx(params).then((res) => {
if (res.success && res.code == 200) {
this.$alert("保存成功!", "提示", {
confirmButtonText: "确定",
type: "success",
callback: () => {
loading.close();
this.$router.push("queryUser");
},
});
} else {
this.$message.error(res.message);
loading.close();
}
});
},
getshuju () {
var self = this;
getUserXxByxxzjbh({
id: this.xxzjbh,
}).then((res) => {
if (res.success && res.code == 200) {
var result = res.data.rows;
self.propFormField.forEach((fieldItem) => {
if (fieldItem.data && fieldItem.data.length > 0) {
fieldItem.data.forEach((i) => {
this.$set(this.formLabelAlign, i.id, result[i.id]);
});
}
this.$forceUpdate();
});
self.$forceUpdate();
}
setTimeout(() => {
self.Loading.close();
}, 500);
});
},
handleChildren (data, dwdm) {
let arr = [];
data.forEach((item) => {
if (item.id == dwdm) {
arr.push(item);
debugger;
} else {
this.handleChildren(item.children, dwdm);
}
});
return arr;
},
},
created () {
this.$store.commit("user/SET_Breadcrumb", this.breadcrumbList);
this.userInfo = JSON.parse(sessionStorage.getItem("userInfo"));
if (this.$route.query.xxzjbh) {
this.Loading = this.$loading({
lock: true,
text: "正在获取数据...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
this.title = "用户信息修改";
this.xxzjbh = this.$route.query.xxzjbh;
this.getshuju();
}
},
mounted () {
},
};
</script>
<style scoped lang="scss">
</style>
\ No newline at end of file
......@@ -44,13 +44,21 @@ module.exports = {
},
proxy: {
"/api": {
target: "http://192.168.1.108:9023",
target: "http://192.168.1.111:9023",
changeOrigin: true,
secure: false,
pathRewrite: {
'^/api': '/'
}
},
"/alyzd": {
target: "http://192.168.1.111:9023",
changeOrigin: true,
secure: false,
pathRewrite: {
'^/alyzd': '/'
}
},
},
},
css: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment