Commit f380e6db by 张超军

as

parents a166a83f d88177d9
......@@ -244,16 +244,61 @@ export default [
component: () => import("@/views/SystemManage/RoleManage.vue")
},
{
path: "AuthManage",
name: "AuthManage",
path: "PermissionManage",
name: "PermissionManage",
hidden: false,
meta: {
title: "权限管理",
auth: "5"
},
component: () => import("@/views/SystemManage/AuthManage.vue")
component: () =>
import("@/views/SystemManage/PermissionManage.vue"),
children: [
// {
// path: "/UserPermission",
// name: "UserPermission",
// hidden: true,
// meta: {
// title: "编辑用户权限",
// auth: "5"
// },
// component: () =>
// import("@/views/SystemManage/UserPermission.vue")
// },
// {
// path: "/GroupPermission",
// name: "GroupPermission",
// hidden: true,
// meta: {
// title: "编辑用户权限",
// auth: "5"
// },
// component: () =>
// import("@/views/SystemManage/GroupPermission.vue")
// }
]
}
]
},
{
path: "/UserPermission",
name: "UserPermission",
hidden: true,
meta: {
title: "编辑用户权限",
auth: "5"
},
component: () => import("@/views/SystemManage/UserPermission.vue")
},
{
path: "/GroupPermission",
name: "GroupPermission",
hidden: true,
meta: {
title: "编辑用户组权限",
auth: "5"
},
component: () => import("@/views/SystemManage/GroupPermission.vue")
}
]
},
......
<template>
<el-dialog
:title="title"
:visible.sync="dialogVisible"
width="36.375rem"
append-to-body
......
<template>
<el-dialog
:title="title"
:visible.sync="dialogVisible"
width="54.6875rem"
append-to-body
......
......@@ -306,8 +306,8 @@
<el-radio-group v-model="ruleForm.cxlx.querytype">
<el-radio
label="2"
style="color: #00ccb5"
class='color_00ccb5'
style="color: #00b47a"
class='color_00b47a'
>正查</el-radio>
<el-radio
label="3"
......@@ -1085,8 +1085,8 @@ export default {
/deep/.color_fa9500 .el-radio__input.is-checked + .el-radio__label {
color: #fa9500;
}
/deep/.color_00ccb5 .el-radio__input.is-checked + .el-radio__label {
color: #00ccb5;
/deep/.color_00b47a .el-radio__input.is-checked + .el-radio__label {
color: #00b47a;
}
/deep/.color_055fe7 .el-radio__input.is-checked + .el-radio__label {
color: #055fe7;
......
......@@ -19,12 +19,15 @@
<el-input
v-if="type== 'ry'"
v-model="rowData.ysxtAsjxgrybh"
:disabled="true"
></el-input>
<el-input
v-else
v-model="rowData.ysxtAsjbh"
:disabled="true"
></el-input>
</el-form-item>
<div style="height:16px"></div>
<el-form-item
label="新数据条码号:"
prop='barcode'
......@@ -193,6 +196,7 @@ export default {
right: -4px;
}
.tip1 {
margin-top: 26px;
height: 22px;
line-height: 22px;
font-size: 14px;
......
......@@ -19,14 +19,21 @@
label="源条码号:"
v-if="this.type == 'ry'"
>
<el-input v-model="rowData.ysxtAsjxgrybh"></el-input>
<el-input
v-model="rowData.ysxtAsjxgrybh"
:disabled="true"
></el-input>
</el-form-item>
<el-form-item
label="源条码号:"
v-else
v-if="this.type == 'aj'"
>
<el-input v-model="rowData.ysxtAsjbh"></el-input>
<el-input
v-model="rowData.ysxtAsjbh"
:disabled="true"
></el-input>
</el-form-item>
<div style="height:16px"></div>
<el-form-item
label="修改条码号:"
prop='barcode'
......@@ -190,6 +197,7 @@ export default {
padding: 0;
}
.tip1 {
margin-top: 26px;
height: 22px;
line-height: 22px;
font-size: 14px;
......
......@@ -166,10 +166,16 @@ export default {
for (let i = 0; i < this.rowData.length; i++) {
let personDo = {
ysxtAsjxgrybh: '',
id: ''
id: '',
xbdm: '',
zjhm: '',
xm: '',
}
personDo.ysxtAsjxgrybh = this.rowData[i].ysxtAsjxgrybh
personDo.id = this.rowData[i].id
personDo.xbdm = this.rowData[i].xbdm
personDo.zjhm = this.rowData[i].zjhm
personDo.xm = this.rowData[i].xm
newReqParams.personDoList.push(personDo)
}
console.log('关注人员ID', newReqParams);
......@@ -184,10 +190,12 @@ export default {
for (let i = 0; i < this.rowData.length; i++) {
let caseBase = {
ysxtAsjbh: '',
id: ''
id: '',
ajlbdm: ''
}
caseBase.ysxtAsjbh = this.rowData[i].ysxtAsjbh
caseBase.id = this.rowData[i].id
caseBase.ajlbdm = this.rowData[i].ajlbdm
newReqParams.caseBaseList.push(caseBase)
}
console.log('关注案件ID', newReqParams);
......
......@@ -33,6 +33,7 @@
placeholder="请输入案事件编号"
maxlength="23"
show-word-limit
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -46,6 +47,7 @@
placeholder="请输入现场勘验编号"
maxlength="23"
show-word-limit
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -79,6 +81,7 @@
placeholder="请输入现场物掌指纹卡编号"
maxlength="23"
show-word-limit
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -90,6 +93,7 @@
<el-input
v-model="ruleForm.ssjzrmby"
placeholder="请输入损失价值"
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -115,11 +119,11 @@
>
<el-option
label="区域一"
value="shanghai"
value="1"
></el-option>
<el-option
label="区域二"
value="beijing"
value="2"
></el-option>
</el-select>
</el-form-item>
......@@ -181,8 +185,9 @@
<el-input
v-model="ruleForm.tqdwGajgjgdm"
placeholder="请输入提取单位代码"
maxlength="23"
maxlength="12"
show-word-limit
clearable
>
</el-input>
</el-form-item>
......@@ -195,6 +200,7 @@
<el-input
v-model="ruleForm.tqryXm"
placeholder="请输入现场物证编号"
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -224,6 +230,7 @@
placeholder="请输入提取人身份证号"
maxlength="18"
show-word-limit
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -243,6 +250,7 @@
<el-input
v-model="ruleForm.tqryLxdh"
placeholder="请输入提取人联系电话"
clearable
></el-input>
</el-form-item>
</el-col>
......
......@@ -33,6 +33,7 @@
placeholder="请输入人员编号"
maxlength="23"
show-word-limit
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -46,6 +47,7 @@
placeholder="请输入警综人员编号"
maxlength="23"
show-word-limit
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -62,6 +64,7 @@
placeholder="请输入案事件相关人员编号"
maxlength="23"
show-word-limit
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -75,6 +78,7 @@
placeholder="请输入指掌纹卡编号"
maxlength="23"
show-word-limit
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -120,8 +124,7 @@
<el-input
v-model="ruleForm.xm"
placeholder="请输入姓名"
maxlength="23"
show-word-limit
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -130,8 +133,7 @@
<el-input
v-model="ruleForm.bmch"
placeholder="请输入别名/绰号"
maxlength="23"
show-word-limit
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -247,6 +249,7 @@
placeholder="请输入证件号码"
maxlength="23"
show-word-limit
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -280,6 +283,7 @@
<el-input
v-model="ruleForm.hjdzDzmc"
placeholder="请输入户籍地址"
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -313,6 +317,7 @@
<el-input
v-model="ruleForm.xzzDzmc"
placeholder="请输入现住址"
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -371,6 +376,7 @@
<el-input
v-model="ruleForm.nydwGajgmc"
placeholder="请输入捺印单位名称"
clearable
>
</el-input>
</el-form-item>
......@@ -383,6 +389,7 @@
<el-input
v-model="ruleForm.nyryXm"
placeholder="请输入现场物证编号"
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -412,6 +419,7 @@
placeholder="请输入捺印人身份证号"
maxlength="18"
show-word-limit
clearable
></el-input>
</el-form-item>
</el-col>
......@@ -431,6 +439,7 @@
<el-input
v-model="ruleForm.nyryLxdh"
placeholder="请输入捺印人联系电话"
clearable
></el-input>
</el-form-item>
</el-col>
......
<!--
* @Author: your name
* @Date: 2021-10-22 11:36:10
* @LastEditTime: 2021-11-10 15:51:00
* @LastEditTime: 2021-11-10 18:19:40
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \指纹系统\founder_vue\src\views\Editor\modules\imageEd.vue
......
......@@ -105,10 +105,28 @@
</el-header>
<el-main class="main">
<div class="contain">
<!-- 导航 -->
<el-tabs
closable
v-model="routePath"
@tab-click="handleClick"
@tab-remove="tabRemove"
>
<el-tab-pane
label="活体指纹采集"
name="/Home/htzwcj"
></el-tab-pane>
<el-tab-pane
:label="item.name"
:name="item.path"
v-for="(item, i) in paths"
:key="i"
:class="{ active: $route.path == item.path }"
></el-tab-pane>
</el-tabs>
<div class="breadcrumb">
<div
<!-- <div
@click="goManager"
ref="path"
class="home-path path"
:class="{ active: $route.path == '/Home/htzwcj' }"
>
......@@ -116,6 +134,7 @@
</div>
<div
class="path"
ref="path"
@click="changeRouter(item)"
v-for="(item, i) in paths"
:key="i"
......@@ -125,7 +144,7 @@
<div class="closeIcon" @click.stop="closePaths(item.name)">
×
</div>
</div>
</div> -->
</div>
<!-- 路由出口 -->
<router-view></router-view>
......@@ -160,6 +179,7 @@ export default {
paths: [],
menuActive: "",
isHoverLogout: false,
routePath: "",
};
},
mounted() {
......@@ -210,6 +230,32 @@ export default {
this.searchTxt = "";
console.log(this.searchTxt);
},
handleClick({ name }) {
if (name == "/Home/htzwcj") {
this.$router.push(name);
this.menuActive = "";
} else {
this.$router.push(name);
let routerObj = this.paths.find((i) => i.path == name);
this.menuActive = routerObj.routeName;
}
},
tabRemove(name) {
let routerObj = this.paths.find((i) => i.path == name);
if (routerObj) {
let pathName = routerObj.name;
let res = this.paths.filter((item) => {
return item.name != pathName;
});
this.paths = res;
console.log(pathName == this.$route.meta.title);
if (pathName == this.$route.meta.title) {
this.$router.push("/Home/htzwcj");
this.$refs.menu.activeIndex = "";
}
}
sessionStorage.setItem("crumbs", JSON.stringify(this.paths));
},
/**
* @description: 调回任务管理
* @param {*}
......@@ -271,6 +317,7 @@ export default {
watch: {
$route: {
handler(newValue, oldValue) {
this.routePath = newValue.path;
setTimeout(() => {
console.log(1);
if (newValue.path != "/Home/htzwcj") {
......@@ -299,8 +346,13 @@ export default {
immediate: true,
},
},
mounted() {
console.log(this.$refs.path);
},
created() {
this.paths = sessionStorage.getItem("crumbs") ? JSON.parse(sessionStorage.getItem("crumbs")) : [];
this.paths = sessionStorage.getItem("crumbs")
? JSON.parse(sessionStorage.getItem("crumbs"))
: [];
},
};
</script>
......@@ -435,7 +487,44 @@ export default {
.aside .minLogo {
background-size: 36px auto;
}
.el-tabs /deep/ {
.el-tabs__header {
margin: 0;
margin-top: 8px;
}
.is-active {
color: #0077ff;
border-bottom: 2px solid #006aff;
}
.el-tabs__active-bar {
background-color: #006aff;
display: none;
}
.el-tabs__item {
position: relative;
padding-right: 35px !important;
padding-left: 35px !important;
&:not(:nth-of-type(2)) {
&:hover {
.el-icon-close {
display: inline-block;
}
}
}
.el-icon-close {
&::before{
transform: scale(1.1)
}
display: none;
position: absolute;
top: 0;
right: 0;
}
&:hover {
color: #0077ff;
}
}
}
.header {
height: 64px;
background: #ffffff;
......@@ -559,7 +648,16 @@ export default {
background: #ffffff;
border-radius: 8px;
overflow: hidden;
.scrollbar {
width: 100%;
position: relative;
height: 47px;
overflow: hidden;
}
.breadcrumb {
position: absolute;
left: 0;
top: 0;
display: flex;
height: 47px;
border-bottom: 1px solid #eeeeee;
......@@ -571,6 +669,7 @@ export default {
padding: 11px 24px;
font-size: 14px;
font-family: MicrosoftYaHei;
flex-shrink: 0;
color: #666666;
&:hover {
.closeIcon {
......
<template>
<el-container class="manage-page" direction="vertical">
<!--权限管理-->
<dvi class="header">
<div class="btns">
<div class="btn" :class="{ active: isUser }" @click="getUser">
用户列表
</div>
<div class="btn" :class="{ active: isGroup }" @click="getGroup">
用户组列表
</div>
<el-button @click="add">add</el-button>
<el-button @click="edit">edit</el-button>
<el-button @click="del">del</el-button>
<el-button @click="search">search</el-button>
</div> </dvi
><br />
<div class="search">
<div class="search-item">
<div class="label">用户组:</div>
<div class="input">请输入并选择</div>
</div>
<div class="search-item">
<div class="label">用户名:</div>
<div class="input">请输入并选择</div>
</div>
<div class="search-item">
<div class="label">姓名:</div>
<div class="input">请输入并选择</div>
</div>
<div class="search-item">
<div class="label">用户所属单位代码:</div>
<div class="input">请输入并选择</div>
</div>
<div class="search-item">
<div class="label">组角色:</div>
<div class="input">请输入并选择</div>
</div>
<div class="btns">
<div class="btn-clear">清空</div>
<div class="btn-search">筛选用户组</div>
</div>
</div>
<div class="main">
<div v-if="isUser" class="user">
<el-table
height="720"
highlight-current-row
ref="userMultipleTable"
:data="userTableData"
class="table"
@selection-change="userHandleSelectionChange"
>
<el-table-column prop="date" label="用户名"> </el-table-column>
<el-table-column prop="name" label="姓名"> </el-table-column>
<el-table-column prop="address" label="警号"> </el-table-column
><el-table-column prop="date" label="用户组"> </el-table-column>
<el-table-column prop="name" label="所属单位"> </el-table-column>
<el-table-column prop="address" label="角色"> </el-table-column
><el-table-column prop="date" label="权限"> </el-table-column>
<el-table-column prop="name" label="启用状态"> </el-table-column>
<el-table-column prop="address" label="操作"></el-table-column>
</el-table>
</div>
<div v-if="isGroup" class="group">
<el-table
height="720"
highlight-current-row
ref="groupMultipleTable"
:data="groupTableData"
class="table"
@selection-change="groupHandleSelectionChange"
>
<el-table-column prop="date" label="用户组"> </el-table-column>
<el-table-column prop="name" label="组角色"> </el-table-column>
<el-table-column prop="address" label="组成员"> </el-table-column>
<el-table-column prop="date" label="启用状态"> </el-table-column>
<el-table-column prop="address" label="操作"></el-table-column>
</el-table>
</div>
</div>
<div class="footer">
<span class="count"
>{{ reqParam.page.total }} 条记录 第{{ reqParam.page.currPage }}/{{
Tpage
}}</span
>
<div class="page">
<el-pagination
class="paging"
background
@size-change="handleSizeChange"
@current-change="handleCurrPageChange"
:current-page="reqParam.page.currPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="reqParam.page.pageSize"
layout="prev, pager, next"
:total="reqParam.page.total"
>
</el-pagination>
</div>
</div>
</el-container>
</template>
<script>
export default {
name: "AuthManage",
data() {
return {
reqParam: {
userdesc: "",
page: {
total: 0,
pageSize: 10,
currPage: 1
}
},
isUser: false,
isGroup: false,
userTableData: [],
groupTableData: [],
// 选中user的数据
userMultipleSelection: [],
// 选中group的数据
groupMultipleSelection: []
};
},
computed: {
// 计算总页数
Tpage() {
return (
Math.floor(this.reqParam.page.total / this.reqParam.page.pageSize) + 1
);
}
},
methods: {
getUser() {
this.isUser = true;
this.isGroup = false;
},
getGroup() {
this.isUser = false;
this.isGroup = true;
},
// 选择数据
userHandleSelectionChange(val) {
this.userMultipleSelection = val;
console.info("选择的数据", this.userMultipleSelection);
if (this.userMultipleSelection.length) {
this.isShowTip = true;
} else {
this.isShowTip = false;
}
},
// 选择数据
groupHandleSelectionChange(val) {
this.groupMultipleSelection = val;
console.info("选择的数据", this.groupMultipleSelection);
if (this.groupMultipleSelection.length) {
this.isShowTip = true;
} else {
this.isShowTip = false;
}
},
// 当期页发生变化
handleCurrPageChange: function(val) {
this.reqParam.page.currPage = val;
// this.search();
},
// 每页展示数量发生变化
handleSizeChange: function(val) {
this.reqParam.page.pageSize = val;
// this.search();
},
add() {
var permission = new URLSearchParams();
permission.append("menuname", "菜单30");
permission.append("pid", "3");
permission.append("zindex", "4");
// permission.append("roleId", "30");
// menuname; //菜单名称
// pid;//父级权限id
// permission;//资源权限字符串
// url;//资源 url
// description;//描述
// type;//权限类型
// zindex;//菜单排序
// flag;//是否生成菜单,0:默认不生成菜单,1:生成菜单
// status;//权限状态(01:显示,02:加锁,03:隐藏)
// roleId;/必填
this.$axios
.post("/login/permission/add", permission)
.then(res => {
console.log(res);
this.$message.success(res.message);
})
.catch(failResponse => {});
},
del() {
var permission = new URLSearchParams();
permission.append("menuId", "888");
this.$axios
.post("/login/permission/deletePermissionById", permission)
.then(res => {
console.log(res);
this.$message.success(res.message);
})
.catch(failResponse => {});
},
edit() {
var permission = new URLSearchParams();
permission.append("menuId", "777");
this.$axios
.post("/login/permission/querypermissionInfo", permission)
.then(res => {
console.log(res);
})
.catch(failResponse => {});
// menuId;//权限id
// menuname;//菜单名称
// pid;//父级权限id
// permission;//资源权限字符串
// url;//资源 url
// description;//描述
// type;//权限类型
// zindex;//菜单排序
// status;//权限状态(01:显示,02:加锁,03:隐藏)
var permission1 = new URLSearchParams();
permission1.append("menuId", "777");
permission1.append("menuname", "修改菜单名字");
this.$axios
.post("/login/permission/update", permission1)
.then(res => {
console.log(res);
})
.catch(failResponse => {});
},
search() {
var permission = new URLSearchParams();
// permission.append("menuId", "要删除的权限id");
// menuname,pid,
// userId(非admin用户,必填)
permission.append("page", "1"); //必填
permission.append("total", "20"); //必填
this.$axios
.post("/login/permission/querypermissionAll", permission)
.then(res => {
console.log(res);
this.$message.success(res.message);
})
.catch(failResponse => {});
}
},
mounted() {
this.isUser = true;
}
};
</script>
<style scoped lang="scss">
@import "scss/auth.scss";
</style>
......@@ -6,19 +6,6 @@
<div class="search">
<div class="search-item">
<div class="label">用户组:</div>
<!-- <el-select-->
<!-- v-model="searchParams.groupname"-->
<!-- class="search-info"-->
<!-- placeholder="请输入并选择"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in options"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- >-->
<!-- </el-option>-->
<!-- </el-select>-->
<el-input
v-model="searchParams.groupname"
class="search-info"
......@@ -43,12 +30,6 @@
</div>
<div class="search-item">
<div class="label">用户所属单位名称:</div>
<!-- <el-select-->
<!-- v-model="searchParams.unitcode"-->
<!-- class="search-info"-->
<!-- placeholder="请输入并选择"-->
<!-- >-->
<!-- </el-select>-->
<el-input
v-model="searchParams.unitcode"
class="search-info"
......@@ -57,12 +38,6 @@
</div>
<div class="search-item">
<div class="label">组角色:</div>
<!-- <el-select-->
<!-- v-model="searchParams.roleId"-->
<!-- class="search-info"-->
<!-- placeholder="请输入并选择"-->
<!-- >-->
<!-- </el-select>-->
<el-input
v-model="searchParams.rolename"
class="search-info"
......@@ -73,6 +48,7 @@
</div>
<div class="operation">
<div class="btn1" @click="batch">批量操作</div>
<div @click="addgroup" class="clear-btn">addgroup</div>
<div class="btns">
<div class="btn1" @click="delMore()">删除</div>
<div class="add" @click="open">
......@@ -618,6 +594,18 @@ export default {
}
},
methods: {
addgroup() {
var group = {
userId: 39898889,
status: -17476821,
describe: "sit laborum Excepteur officia",
name: "ullamco esse",
roleId: -70041648
};
this.$axios.post("/system/user-groups", group).then(res => {
console.info(res);
});
},
clear() {
this.searchParams.page.page = 1; //必填
this.searchParams.page.total = 20; //必填
......
<template>
<el-container class="manage-page" direction="vertical">
<!-- 0停用 1启用-->
<div class="header" :class="{ down: status === '0', up: status === '1' }">
<div class="title" :class="{ down: status === '0', up: status === '1' }">
<div class="title-status">
<div v-if="status === '0'" class="circle-red"></div>
<div v-if="status === '1'" class="circle-blue"></div>
{{ status === "0" ? "停用" : status === "1" ? "启用" : "无状态" }}
</div>
</div>
<div class="info">
<div class="info-item">
<div class="info-title">用户组:</div>
<div class="info-value">{{ groupData.groupname }}</div>
</div>
<div class="info-item">
<div class="info-title">组角色:</div>
<!-- 有角色 角色长度<5-->
<div v-if="groupData.rolename !== ''" class="info-value">
<div
class="tags"
v-for="item in groupData.rolename &&
groupData.rolename.split(',')"
>
{{ item }}
</div>
</div>
<!-- 无角色-->
<div v-else-if="groupData.rolename === ''" class="info-value">
无角色
</div>
</div>
<div class="info-item1">
<div class="info-title">组用户:</div>
<div class="info-value">
<svg-icon
style="width: 1rem;height: .8125rem;margin-bottom: -0.0625rem;"
icon-class="group-item"
/>
{{ groupData.username.split(",").length }}
</div>
<div class="btn">用户设置</div>
</div>
</div>
</div>
<div class="main">
<div class="header">
<div class="btns">
<div class="btn" :class="{ active: funFlag }" @click="funAuth">
功能权限
</div>
<div class="btn" :class="{ active: dataFlag }" @click="dataAuth">
数据权限
</div>
</div>
<div class="save">
<div class="btn" @click="save">保存</div>
<!-- <el-button @click="add">add</el-button>-->
<!-- <el-button @click="edit">edit</el-button>-->
<!-- <el-button @click="del">del</el-button>-->
<!-- <el-button @click="search">search</el-button>-->
</div>
</div>
<div class="role-info">
<!-- 角色权限菜单列-->
<div class="menus">
<div class="div3">
<el-checkbox v-model="roleMenus[0].flag">
{{ roleMenus[0].name }}
</el-checkbox>
<el-checkbox v-model="roleMenus[1].flag">
{{ roleMenus[1].name }}
</el-checkbox>
<el-checkbox v-model="roleMenus[2].flag">
{{ roleMenus[2].name }}
</el-checkbox>
</div>
<div class="div3">
<el-checkbox v-model="roleMenus[3].flag">
{{ roleMenus[3].name }}
</el-checkbox>
</div>
<div class="div1">
<el-checkbox v-model="roleMenus[4].flag">
{{ roleMenus[4].name }}
</el-checkbox>
</div>
<div class="div1">
<el-checkbox v-model="roleMenus[5].flag">
{{ roleMenus[5].name }}
</el-checkbox>
</div>
<div class="div1">
<el-checkbox v-model="roleMenus[6].flag">
{{ roleMenus[6].name }}
</el-checkbox>
</div>
<div class="div2">
<el-checkbox v-model="roleMenus[7].flag">
{{ roleMenus[7].name }}
</el-checkbox>
</div>
<div class="div3">
<el-checkbox v-model="roleMenus[8].flag">
{{ roleMenus[8].name }}
</el-checkbox>
</div>
</div>
<div class="content">
<div class="div3">
<div
class="line"
v-for="item in printCollectMenus"
:key="item.code"
>
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
<br />
<div class="line" v-for="item in printInputMenus" :key="item.code">
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
<br />
<div
class="line"
v-for="item in fileInformationInputMenus"
:key="item.code"
>
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
</div>
<div class="div3">
<div
class="line"
v-for="item in comprehensiveMenus"
:key="item.code"
>
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
</div>
<div class="div1">
<div class="line" v-for="item in seniorMenus" :key="item.code">
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
</div>
<div class="div1">
<div
class="line"
v-for="item in qualityTestingMenus"
:key="item.code"
>
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
</div>
<div class="div1">
<div
class="line"
v-for="item in seniorQualityTestingMenus"
:key="item.code"
>
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
</div>
<div class="div2">
<div
class="line"
v-for="item in informationManageMenus"
:key="item.code"
>
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
</div>
<div class="div3">
<div
class="line"
v-for="item in seniorManageMenus"
:key="item.code"
>
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
</div>
<!-- <div class="line" v-for="item in " :key="item.code"></div>-->
</div>
</div>
</div>
</el-container>
</template>
<script>
import "@/icons/group-item.svg";
export default {
name: "GroupPermission",
data() {
return {
id: "",
rolename: "",
status: "-1",
groupData: {},
funFlag: false,
dataFlag: false,
// 角色按钮
defaultRoleBtns: [
{ name: "指纹入库员", value: 1, flag: false },
{ name: "综合认定员", value: 2, flag: false },
{ name: "高级认定员", value: 3, flag: false },
{ name: "质量检查员", value: 4, flag: false },
{ name: "高级质量检查", value: 5, flag: false },
{ name: "一般管理员", value: 6, flag: false },
{ name: "超级管理员", value: 7, flag: false }
],
// 角色权限菜单
roleMenus: [
{ name: "指掌纹采集", code: 0, flag: false },
{ name: "指掌纹录入", code: 1, flag: false },
{ name: "档案信息录入", code: 2, flag: false },
{ name: "综合认定", code: 3, flag: false },
{ name: "高级认定", code: 4, flag: false },
{ name: "质量检查", code: 5, flag: false },
{ name: "高级质量检查", code: 6, flag: false },
{ name: "信息管理", code: 7, flag: false },
{ name: "高级管理", code: 8, flag: false }
],
// 指掌纹采集菜单
printCollectMenus: [
{ name: "指掌纹采集", code: 0, flag: false },
{ name: "非违法人员指纹采集", code: 1, flag: false }
],
// 指掌纹录入菜单
printInputMenus: [
{ name: "图片导入", code: 0, flag: false },
{ name: "FPTX数据导入", code: 1, flag: false },
{ name: "人员指纹扫描", code: 2, flag: false },
{ name: "案件指纹扫描", code: 3, flag: false },
{ name: "笔录指纹", code: 4, flag: false }
],
// 档案信息录入菜单
fileInformationInputMenus: [
{ name: "人员文字信息录入", code: 0, flag: false },
{ name: "案件文字信息录入", code: 1, flag: false }
],
// 综合认定
comprehensiveMenus: [
{ name: "发查询", code: 0, flag: false },
{ name: "比中认定-隐藏条码号", code: 1, flag: false },
{ name: "比中信息反馈", code: 2, flag: false },
{ name: "比中信息管理", code: 3, flag: false },
{ name: "破案信息管理", code: 4, flag: false },
{ name: "导入比中认定", code: 5, flag: false },
{ name: "填写比中抓获", code: 6, flag: false },
{ name: "人员信息新增修改", code: 7, flag: false },
{ name: "比中信息反馈", code: 8, flag: false },
{ name: "关注人员", code: 9, flag: false },
{ name: "关注条件", code: 10, flag: false },
{ name: "协查信息上报", code: 11, flag: false },
{ name: "提取现勘信息", code: 12, flag: false },
{ name: "人员指纹编辑", code: 13, flag: false },
{ name: "案件指纹编辑", code: 14, flag: false },
{ name: "文字信息修改", code: 15, flag: false },
{ name: "二次打印", code: 16, flag: false },
{ name: "比中信息撤销", code: 17, flag: false }
],
// 高级认定
seniorMenus: [
{ name: "比中认定-显示条码号", code: 1, flag: false },
{ name: "高级案件编辑", code: 2, flag: false },
{ name: "人案控制条码规则", code: 3, flag: false },
{ name: "基本/比中数据上报", code: 4, flag: false },
{ name: "全用户认定权限", code: 5, flag: false }
],
// 质量检查
qualityTestingMenus: [
{ name: "比中信息复核", code: 1, flag: false },
{ name: "协查信息复核", code: 2, flag: false },
{ name: "人案控制条码规则", code: 3, flag: false }
],
// 高级质量检查
seniorQualityTestingMenus: [
{ name: "比中信息复核", code: 1, flag: false },
{ name: "协查信息复核", code: 2, flag: false },
{ name: "人案控制条码规则", code: 3, flag: false }
],
// 信息管理
informationManageMenus: [
{ name: "比中信息管理", code: 1, flag: false },
{ name: "破案信息管理", code: 2, flag: false },
{ name: "协查信息管理", code: 3, flag: false },
{ name: "工作信息统计", code: 4, flag: false },
{ name: "战果查询上报", code: 5, flag: false },
{ name: "人员队列管理", code: 6, flag: false },
{ name: "案件队列管理", code: 7, flag: false },
{ name: "系统操作日志", code: 8, flag: false },
{ name: "复制案件数据", code: 9, flag: false },
{ name: "FPTX数据导出", code: 10, flag: false },
{ name: "批量处理操作", code: 11, flag: false }
],
// 高级管理
seniorManageMenus: [
{ name: "人案更改条码号", code: 1, flag: false },
{ name: "人案控制条码规则", code: 2, flag: false },
{ name: "删除人员数据", code: 3, flag: false },
{ name: "删除案件数据", code: 4, flag: false },
{ name: "删除查询数据", code: 5, flag: false },
{ name: "系统用户管理", code: 6, flag: false },
{ name: "系统分库管理", code: 7, flag: false },
{ name: "资源库管理", code: 8, flag: false },
{ name: "协查用户管理", code: 9, flag: false },
{ name: "人员类型管理", code: 10, flag: false },
{ name: "用户组管理", code: 11, flag: false },
{ name: "查询模块管理", code: 12, flag: false },
{ name: "上报条件设置", code: 13, flag: false },
{ name: "本地重卡反馈", code: 14, flag: false },
{ name: "本地涉案反馈", code: 15, flag: false }
],
// 保存的角色选项
roleMenusSelection: []
};
},
methods: {
funAuth() {
this.funFlag = true;
this.dataFlag = false;
console.info("功能权限");
},
dataAuth() {
this.funFlag = false;
this.dataFlag = true;
console.info("数据权限");
},
// 保存
save() {
this.roleMenusSelection = this.roleMenus;
console.info("roleMenusSelection====", this.roleMenusSelection);
}
},
mounted() {
this.funFlag = true;
this.id = this.$route.params.id;
this.rolename = this.$route.params.rolename;
var usergroup = new URLSearchParams();
usergroup.append("Id", this.id);
// 获取用户组信息
this.$axios
.post("/login/usergroup/queryusergroup", usergroup)
.then(res => {
console.info(res.data);
this.groupData = res.data.usergroup;
this.status = res.data.usergroup.status;
console.info(res.data.usergroup.status);
})
.catch(failResponse => {});
}
};
</script>
<style scoped lang="scss">
@import "scss/grouppermission.scss";
</style>
<template>
<el-container class="manage-page" direction="vertical">
<!--权限管理-->
<div class="header">
<!-- 用户和用户组的切换按钮-->
<div class="btns">
<div class="btn" :class="{ active: isUser }" @click="getUser">
用户列表
</div>
<div class="btn" :class="{ active: isGroup }" @click="getGroup">
用户组列表
</div>
</div>
</div>
<br />
<!-- 用户-->
<div v-if="isUser" class="user">
<!-- 用户搜索框-->
<div class="search">
<div class="search-item">
<div class="label">用户名:</div>
<el-input
class="search-info"
v-model="userSearchParams.username"
placeholder="请输入用户名"
></el-input>
</div>
<div class="search-item">
<div class="label">姓名:</div>
<el-input
class="search-info"
v-model="userSearchParams.truename"
placeholder="请输入姓名"
/>
</div>
<div class="search-item">
<div class="label">用户组:</div>
<el-input
class="search-info"
v-model="userSearchParams.groupname"
placeholder="请输入用户组名"
/>
</div>
<div class="search-item">
<div class="label">单位代码:</div>
<el-input
class="search-info"
v-model="userSearchParams.unitcode"
placeholder="请输入单位代码"
/>
</div>
<div class="search-item">
<div class="label">角色:</div>
<el-input
class="search-info"
v-model="userSearchParams.roleName"
placeholder="请输入角色"
/>
</div>
<div class="search-item">
<div class="label">权限:</div>
<el-input
class="search-info"
v-model="userSearchParams.permissionname"
placeholder="请输入权限"
></el-input>
</div>
<div class="btn" @click="searchUser">筛选用户</div>
</div>
<!-- 用户表格-->
<div class="table">
<el-table
:height="userWidths.height"
style="width: 100%;"
highlight-current-row
ref="multipleTable"
:data="userTableData"
class="table"
>
<el-table-column
prop="username"
label="用户名"
:width="userWidths.width1"
>
</el-table-column>
<el-table-column
prop="truename"
label="姓名"
:width="userWidths.width1"
>
</el-table-column>
<el-table-column
prop="policemanid"
label="警号"
:width="userWidths.width2"
>
</el-table-column>
<el-table-column
prop="group"
label="用户组"
:width="userWidths.width3"
>
</el-table-column>
<el-table-column
prop="unitname"
label="所属单位"
:width="userWidths.width5"
>
</el-table-column>
<el-table-column
prop="roleName"
label="角色"
:width="userWidths.width4"
show-overflow-tooltip
>
<template slot-scope="scope">
<div
class="tags"
v-for="item in scope.row.roleName &&
scope.row.roleName.split(',')"
>
{{ item }}
</div>
</template>
</el-table-column>
<el-table-column
prop="groupid_list"
label="权限"
:width="userWidths.width5"
show-overflow-tooltip
>
<template slot-scope="scope">
<div
v-for="(item, index) in scope.row.permissionname &&
scope.row.permissionname.split(',')"
>
{{ index > 0 ? "/" : "" }}
{{ item }}
</div>
</template>
</el-table-column>
<el-table-column
prop="status"
label="启用状态"
:width="userWidths.width1"
>
<template slot-scope="scope">
<div v-if="scope.row.status === '0'" class="circle-red"></div>
<div v-if="scope.row.status === '1'" class="circle-blue"></div>
{{
scope.row.status === "0"
? "停用"
: scope.row.status === "1"
? "启用"
: "无状态"
}}
</template>
</el-table-column>
<el-table-column prop="active" label="操作">
<template slot-scope="scope">
<img
style="width: 1.125rem;height: 1.125rem;margin-right: 1.125rem;cursor: pointer"
src="../../assets/img/qbryk/bj.png"
@click="userEdit(scope.row.userId, scope.row.roleName)"
/>
<!-- <img-->
<!-- style="width: 1.125rem;height: 1.125rem;cursor: pointer"-->
<!-- src="../../assets/img/qbryk/del.png"-->
<!-- @click="del(scope.row.userId)"-->
<!-- />-->
</template>
</el-table-column>
</el-table>
</div>
<!-- 用户分页-->
<div class="footer">
<span class="count"
>共{{ userSearchParams.page.count }} 条记录 第{{
userSearchParams.page.page
}}/{{ userTpage }}页</span
>
<div class="page">
<el-pagination
class="paging"
background
@size-change="userHandleSizeChange"
@current-change="userHandleCurrPageChange"
:current-page="userSearchParams.page.page"
:page-size="userSearchParams.page.total"
layout="prev, pager, next"
:total="userSearchParams.page.count"
>
</el-pagination>
</div>
</div>
</div>
<!-- 用户组-->
<div v-if="isGroup" class="group">
<!-- 用户组搜索框-->
<div class="search">
<div class="search-item">
<div class="label">用户组:</div>
<el-input
v-model="groupSearchParams.groupname"
class="search-info"
placeholder="请输入用户名"
></el-input>
</div>
<div class="search-item">
<div class="label">用户名:</div>
<el-input
v-model="groupSearchParams.username"
class="search-info"
placeholder="请输入用户名"
></el-input>
</div>
<div class="search-item">
<div class="label">姓名:</div>
<el-input
v-model="groupSearchParams.truename"
class="search-info"
placeholder="请输入用户名"
></el-input>
</div>
<div class="search-item">
<div class="label">用户所属单位名称:</div>
<el-input
v-model="groupSearchParams.unitcode"
class="search-info"
placeholder="请输入单位名称"
></el-input>
</div>
<div class="search-item">
<div class="label">组角色:</div>
<el-input
v-model="groupSearchParams.rolename"
class="search-info"
placeholder="请输入角色名"
></el-input>
</div>
<div class="clear" @click="groupClear">清空</div>
<div class="btn" @click="searchGroup">筛选用户组</div>
</div>
<!-- 用户组表格-->
<div class="table">
<el-table
:height="groupWidths.height"
highlight-current-row
ref="multipleTable"
:data="groupTableData"
class="table"
>
<el-table-column
prop="groupname"
label="用户组"
:width="groupWidths.width1"
>
</el-table-column>
<el-table-column
prop="rolename"
label="组角色"
:width="groupWidths.width2"
show-overflow-tooltip
>
<template slot-scope="scope">
<div
class="tags"
v-for="item in scope.row.rolename &&
scope.row.rolename.split(',')"
>
{{ item }}
</div>
</template>
</el-table-column>
<el-table-column
prop="username"
label="组成员"
:width="groupWidths.width3"
>
<template slot-scope="scope">
<div class="group-item">
<svg-icon
style="width: 1rem;height: .8125rem;margin-bottom: -0.0625rem;"
icon-class="group-item"
/>
{{ scope.row.username.split(",").length }}
</div>
<!-- <div class="set-btn">-->
<!-- 用户设置-->
<!-- </div>-->
</template>
</el-table-column>
<el-table-column>
<template slot-scope="scope">
<div class="set-btn" :width="groupWidths.btnwidth">
用户设置
</div>
</template>
</el-table-column>
<el-table-column
prop="status"
label="启用状态"
:width="groupWidths.width3"
>
<template slot-scope="scope">
<div v-if="scope.row.status === '0'" class="circle-red"></div>
<div v-if="scope.row.status === '1'" class="circle-blue"></div>
{{
scope.row.status === "0"
? "停用"
: scope.row.status === "1"
? "启用"
: "无状态"
}}
</template>
</el-table-column>
<el-table-column prop="active" label="操作">
<template slot-scope="scope">
<img
style="width: 1.125rem;height: 1.125rem;margin-right: 1.125rem;cursor: pointer"
src="../../assets/img/qbryk/bj.png"
@click="groupEdit(scope.row.id)"
/>
<!-- <img-->
<!-- style="width: 1.125rem;height: 1.125rem;cursor: pointer"-->
<!-- src="../../assets/img/qbryk/del.png"-->
<!-- @click="del(scope.row.id)"-->
<!-- />-->
</template>
</el-table-column>
</el-table>
</div>
<!-- 用户组分页-->
<div class="footer">
<span class="count"
>共{{ groupSearchParams.page.count }} 条记录 第{{
groupSearchParams.page.page
}}/{{ groupTpage }}页</span
>
<div class="page">
<el-pagination
class="paging"
background
@size-change="groupHandleSizeChange"
@current-change="groupHandleCurrPageChange"
:current-page="groupSearchParams.page.page"
:page-size="groupSearchParams.page.total"
layout="prev, pager, next"
:total="groupSearchParams.page.count"
>
</el-pagination>
</div>
</div>
</div>
</el-container>
</template>
<script>
import "@/icons/group-item.svg";
export default {
name: "AuthManage",
created() {
let w1 = 1920;
let w2 = window.innerWidth;
this.userWidths.height = (this.userWidths.height * w2) / w1;
this.userWidths.width1 = (this.userWidths.width1 * w2) / w1;
this.userWidths.width2 = (this.userWidths.width2 * w2) / w1;
this.userWidths.width3 = (this.userWidths.width3 * w2) / w1;
this.userWidths.width4 = (this.userWidths.width4 * w2) / w1;
this.userWidths.width5 = (this.userWidths.width5 * w2) / w1;
this.groupWidths.height = (this.groupWidths.height * w2) / w1;
this.groupWidths.width1 = (this.groupWidths.width1 * w2) / w1;
this.groupWidths.width2 = (this.groupWidths.width2 * w2) / w1;
this.groupWidths.width3 = (this.groupWidths.width3 * w2) / w1;
this.groupWidths.btnwidth = (this.groupWidths.btnwidth * w2) / w1;
},
data() {
return {
isUser: false,
isGroup: false,
userTableData: [],
// 用户列表的表格宽度
userWidths: {
width4: 350,
width3: 200,
width2: 100,
width5: 220,
width1: 100,
height: 480
},
// 搜索用户
userSearchParams: {
username: "",
truename: "",
unitcode: "",
roleName: "",
permissionname: "",
groupname: "",
page: {
total: 20,
count: 0,
page: 1
}
},
src: require("@/assets/img/police-badge.png"),
groupTableData: [],
// 用户组列表的表格宽度
groupWidths: {
width3: 110,
width2: 400,
width1: 200,
height: 480,
btnwidth: 200
},
// 搜索用户组
groupSearchParams: {
groupname: "",
username: "",
userId: "",
truename: "",
unitcode: "",
roleId: "",
rolename: "",
page: {
total: 20,
count: 0,
page: 1
}
}
};
},
computed: {
// 计算总页数
userTpage() {
return (
Math.floor(
this.userSearchParams.page.count / this.userSearchParams.page.total
) + 1
);
},
// 计算总页数
groupTpage() {
return (
Math.floor(
this.groupSearchParams.page.count / this.groupSearchParams.page.total
) + 1
);
}
},
methods: {
getUser() {
this.isUser = true;
this.isGroup = false;
this.userClear();
this.searchUser();
},
getGroup() {
this.isUser = false;
this.isGroup = true;
this.groupClear();
this.searchGroup();
},
// 用户清空
userClear() {
this.userSearchParams.roleName = "";
this.userSearchParams.groupname = "";
this.userSearchParams.truename = "";
this.userSearchParams.unitcode = "";
this.userSearchParams.page.page = 1;
this.userSearchParams.page.total = 20;
this.userSearchParams.username = "";
this.userSearchParams.permissionname = "";
this.searchUser();
},
// 用户组清空
groupClear() {
this.groupSearchParams.page.page = 1; //必填
this.groupSearchParams.page.total = 20; //必填
this.groupSearchParams.groupname = "";
this.groupSearchParams.username = "";
this.groupSearchParams.truename = "";
this.groupSearchParams.unitcode = "";
this.groupSearchParams.rolename = "";
this.searchGroup();
},
// 用户当期页发生变化
userHandleCurrPageChange: function(val) {
this.userSearchParams.page.page = val;
this.searchUser();
},
// 用户每页展示数量发生变化
userHandleSizeChange: function(val) {
this.userSearchParams.page.total = val;
this.searchUser();
},
// 获取用户信息
searchUser() {
var user = new URLSearchParams();
user.append("username", this.userSearchParams.username);
user.append("truename", this.userSearchParams.truename);
user.append("roleName", this.userSearchParams.roleName);
user.append("unitcode", this.userSearchParams.unitcode);
user.append("permissionname", this.userSearchParams.permissionname);
user.append("groupname", this.userSearchParams.groupname);
user.append("page", this.userSearchParams.page.page);
user.append("total", this.userSearchParams.page.total);
// todo 多条件筛选
this.$axios
.post("/login/user/queryUserList", user)
.then(res => {
this.userTableData = res.data.data;
this.userSearchParams.page.total = res.data.total;
this.userSearchParams.page.page = res.data.page;
this.userSearchParams.page.count = res.data.count;
this.$message.success(res.message);
})
.catch(failResponse => {});
},
// 编辑用户权限
userEdit(id, rolename) {
console.info("用户id=====>", id);
this.$router.push({
name: "UserPermission",
params: {
id: id,
rolename: rolename
}
});
},
// 用户组当前页发生变化
groupHandleCurrPageChange: function(val) {
this.groupSearchParams.page.page = val;
this.searchGroup();
},
// 用户组每页展示数量发生变化
groupHandleSizeChange: function(val) {
this.groupSearchParams.page.total = val;
this.searchGroup();
},
// 获取用户组信息
searchGroup() {
console.info("用户组筛选条件=====>", this.groupSearchParams);
var usergroup = new URLSearchParams();
usergroup.append("page", this.groupSearchParams.page.page); //必填
usergroup.append("total", this.groupSearchParams.page.total); //必填
usergroup.append("groupname", this.groupSearchParams.groupname);
usergroup.append("username", this.groupSearchParams.username);
usergroup.append("truename", this.groupSearchParams.truename);
usergroup.append("unitcode", this.groupSearchParams.unitcode);
usergroup.append("rolename", this.groupSearchParams.rolename);
// todo 多条件筛选
this.$axios
.post("/login/usergroup/queryUserGroupList", usergroup)
.then(res => {
console.log(res.data);
this.groupTableData = res.data.data;
this.groupSearchParams.page.total = res.data.total;
this.groupSearchParams.page.page = res.data.page;
this.groupSearchParams.page.count = res.data.count;
this.$message.success(res.message);
})
.catch(failResponse => {});
},
groupEdit(id) {
console.info("用户id=====>", id);
this.$router.push({
name: "GroupPermission",
params: {
id: id
}
});
},
// 新增权限
add() {
var permission = new URLSearchParams();
permission.append("menuname", "菜单30");
permission.append("pid", "3");
permission.append("zindex", "4");
// permission.append("roleId", "30");
// menuname; //菜单名称
// pid;//父级权限id
// permission;//资源权限字符串
// url;//资源 url
// description;//描述
// type;//权限类型
// zindex;//菜单排序
// flag;//是否生成菜单,0:默认不生成菜单,1:生成菜单
// status;//权限状态(01:显示,02:加锁,03:隐藏)
// roleId;/必填
this.$axios
.post("/login/permission/add", permission)
.then(res => {
console.log(res);
this.$message.success(res.message);
})
.catch(failResponse => {});
},
// 删除权限
del() {
var permission = new URLSearchParams();
permission.append("menuId", "888");
this.$axios
.post("/login/permission/deletePermissionById", permission)
.then(res => {
console.log(res);
this.$message.success(res.message);
})
.catch(failResponse => {});
},
// 编辑权限
edit() {
var permission = new URLSearchParams();
permission.append("menuId", "777");
this.$axios
.post("/login/permission/querypermissionInfo", permission)
.then(res => {
console.log(res);
})
.catch(failResponse => {});
// menuId;//权限id
// menuname;//菜单名称
// pid;//父级权限id
// permission;//资源权限字符串
// url;//资源 url
// description;//描述
// type;//权限类型
// zindex;//菜单排序
// status;//权限状态(01:显示,02:加锁,03:隐藏)
var permission1 = new URLSearchParams();
permission1.append("menuId", "777");
permission1.append("menuname", "修改菜单名字");
this.$axios
.post("/login/permission/update", permission1)
.then(res => {
console.log(res);
})
.catch(failResponse => {});
},
// 刷新
search() {
var permission = new URLSearchParams();
// permission.append("menuId", "要删除的权限id");
// menuname,pid,
// userId(非admin用户,必填)
permission.append("page", "1"); //必填
permission.append("total", "20"); //必填
this.$axios
.post("/login/permission/querypermissionAll", permission)
.then(res => {
console.log(res);
this.$message.success(res.message);
})
.catch(failResponse => {});
}
},
mounted() {
this.isUser = true;
if (this.isUser) {
this.searchUser();
}
}
};
</script>
<style scoped lang="scss">
@import "scss/permission";
</style>
......@@ -60,6 +60,7 @@
数据权限
</div>
</div>
<div @click="addrole">addrole</div>
<div class="save">
<div class="btn" @click="save">保存</div>
<!-- <el-button @click="add">add</el-button>-->
......@@ -333,6 +334,15 @@ export default {
};
},
methods: {
addrole() {
var role = {
name: "do aute officia irure voluptate",
permissionIds: []
};
this.$axios.post("/system/roles", role).then(res => {
console.info(res);
});
},
// 复制
copy() {
console.info("复制数据");
......@@ -358,6 +368,7 @@ export default {
del(id) {
console.info("删除数据", id);
this.diyRoleList.splice(id, 1);
this.diyRoleItemIndex = -1;
// var sysRole = new URLSearchParams();
// sysRole.append("roleId", "16");
// this.$axios
......
......@@ -56,6 +56,8 @@
</div>
<div class="operation">
<div class="btn1" @click="batch">批量操作</div>
<div class="clear-btn" @click="adduser">adduser</div>
<div class="clear-btn" @click="searchuser">searchuser</div>
<div class="btns">
<div class="btn1" @click="delMore()">删除</div>
<div class="add" @click="open">
......@@ -384,6 +386,8 @@
<script>
import "@/icons/ic_add.svg";
import qs from "qs";
export default {
name: "UserManage",
created() {
......@@ -499,7 +503,6 @@ export default {
}
};
return {
width5: 180,
width4: 350,
width3: 200,
width2: 100,
......@@ -633,6 +636,28 @@ export default {
}
},
methods: {
adduser() {
var user = {
username: "2021",
phoneNumber: "15806613121",
password: "2021",
policeNumber: "223",
unitName: "长沙",
unitCode: "123",
name: "王明光",
status: 1,
userGroupId: 1,
roleId: 1
};
this.$axios.post("/system/users", user).then(res => {
console.info(res);
});
},
searchuser() {
this.$axios.get("/system/users").then(res => {
console.info(res);
});
},
// 新增
submitForm(formName) {
this.$refs.addFormParams.validate(valid => {
......
<template>
<el-container class="manage-page" direction="vertical">
<!-- 0停用 1启用-->
<div class="header" :class="{ down: status === '0', up: status === '1' }">
<div class="title" :class="{ down: status === '0', up: status === '1' }">
<div class="title-status">
<div v-if="status === '0'" class="circle-red"></div>
<div v-if="status === '1'" class="circle-blue"></div>
{{ status === "0" ? "停用" : status === "1" ? "启用" : "无状态" }}
</div>
</div>
<div class="info">
<div class="info-item">
<div class="info-title">用户名:</div>
<div class="info-value">{{ userData.username }}</div>
</div>
<div class="info-item">
<div class="info-title">姓名:</div>
<div class="info-value">{{ userData.truename }}</div>
</div>
<div class="info-item">
<div class="info-title">警号:</div>
<div class="info-value">{{ userData.policemanid }}</div>
</div>
<div class="info-item">
<div class="info-title">用户组:</div>
<div class="info-value">{{ userData.group }}</div>
</div>
<div class="info-item">
<div class="info-title">所属单位:</div>
<div class="info-value">{{ userData.unitname }}</div>
</div>
<div class="info-item1">
<div class="info-title">角色:</div>
<!-- 有角色 角色长度<5-->
<div v-if="userData.roleName !== ''" class="info-value">
<div
class="tags"
v-for="item in userData.roleName && userData.roleName.split(',')"
>
{{ item }}
</div>
</div>
<!-- 无角色-->
<div v-else-if="userData.roleName === ''" class="info-value">
无角色
</div>
</div>
</div>
</div>
<div class="main">
<div class="header">
<div class="btns">
<div class="btn" :class="{ active: funFlag }" @click="funAuth">
功能权限
</div>
<div class="btn" :class="{ active: dataFlag }" @click="dataAuth">
数据权限
</div>
</div>
<div class="save">
<div class="btn" @click="save">保存</div>
<!-- <el-button @click="add">add</el-button>-->
<!-- <el-button @click="edit">edit</el-button>-->
<!-- <el-button @click="del">del</el-button>-->
<!-- <el-button @click="search">search</el-button>-->
</div>
</div>
<div class="role-info">
<!-- 角色权限菜单列-->
<div class="menus">
<div class="div3">
<el-checkbox v-model="roleMenus[0].flag">
{{ roleMenus[0].name }}
</el-checkbox>
<el-checkbox v-model="roleMenus[1].flag">
{{ roleMenus[1].name }}
</el-checkbox>
<el-checkbox v-model="roleMenus[2].flag">
{{ roleMenus[2].name }}
</el-checkbox>
</div>
<div class="div3">
<el-checkbox v-model="roleMenus[3].flag">
{{ roleMenus[3].name }}
</el-checkbox>
</div>
<div class="div1">
<el-checkbox v-model="roleMenus[4].flag">
{{ roleMenus[4].name }}
</el-checkbox>
</div>
<div class="div1">
<el-checkbox v-model="roleMenus[5].flag">
{{ roleMenus[5].name }}
</el-checkbox>
</div>
<div class="div1">
<el-checkbox v-model="roleMenus[6].flag">
{{ roleMenus[6].name }}
</el-checkbox>
</div>
<div class="div2">
<el-checkbox v-model="roleMenus[7].flag">
{{ roleMenus[7].name }}
</el-checkbox>
</div>
<div class="div3">
<el-checkbox v-model="roleMenus[8].flag">
{{ roleMenus[8].name }}
</el-checkbox>
</div>
</div>
<div class="content">
<div class="div3">
<div
class="line"
v-for="item in printCollectMenus"
:key="item.code"
>
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
<br />
<div class="line" v-for="item in printInputMenus" :key="item.code">
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
<br />
<div
class="line"
v-for="item in fileInformationInputMenus"
:key="item.code"
>
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
</div>
<div class="div3">
<div
class="line"
v-for="item in comprehensiveMenus"
:key="item.code"
>
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
</div>
<div class="div1">
<div class="line" v-for="item in seniorMenus" :key="item.code">
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
</div>
<div class="div1">
<div
class="line"
v-for="item in qualityTestingMenus"
:key="item.code"
>
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
</div>
<div class="div1">
<div
class="line"
v-for="item in seniorQualityTestingMenus"
:key="item.code"
>
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
</div>
<div class="div2">
<div
class="line"
v-for="item in informationManageMenus"
:key="item.code"
>
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
</div>
<div class="div3">
<div
class="line"
v-for="item in seniorManageMenus"
:key="item.code"
>
<el-checkbox v-model="item.flag"> {{ item.name }}</el-checkbox>
</div>
</div>
<!-- <div class="line" v-for="item in " :key="item.code"></div>-->
</div>
</div>
</div>
</el-container>
</template>
<script>
export default {
name: "UserPermission",
data() {
return {
id: "",
rolename: "",
status: "-1",
userData: {},
funFlag: false,
dataFlag: false,
// 角色按钮
defaultRoleBtns: [
{ name: "指纹入库员", value: 1, flag: false },
{ name: "综合认定员", value: 2, flag: false },
{ name: "高级认定员", value: 3, flag: false },
{ name: "质量检查员", value: 4, flag: false },
{ name: "高级质量检查", value: 5, flag: false },
{ name: "一般管理员", value: 6, flag: false },
{ name: "超级管理员", value: 7, flag: false }
],
// 角色权限菜单
roleMenus: [
{ name: "指掌纹采集", code: 0, flag: false },
{ name: "指掌纹录入", code: 1, flag: false },
{ name: "档案信息录入", code: 2, flag: false },
{ name: "综合认定", code: 3, flag: false },
{ name: "高级认定", code: 4, flag: false },
{ name: "质量检查", code: 5, flag: false },
{ name: "高级质量检查", code: 6, flag: false },
{ name: "信息管理", code: 7, flag: false },
{ name: "高级管理", code: 8, flag: false }
],
// 指掌纹采集菜单
printCollectMenus: [
{ name: "指掌纹采集", code: 0, flag: false },
{ name: "非违法人员指纹采集", code: 1, flag: false }
],
// 指掌纹录入菜单
printInputMenus: [
{ name: "图片导入", code: 0, flag: false },
{ name: "FPTX数据导入", code: 1, flag: false },
{ name: "人员指纹扫描", code: 2, flag: false },
{ name: "案件指纹扫描", code: 3, flag: false },
{ name: "笔录指纹", code: 4, flag: false }
],
// 档案信息录入菜单
fileInformationInputMenus: [
{ name: "人员文字信息录入", code: 0, flag: false },
{ name: "案件文字信息录入", code: 1, flag: false }
],
// 综合认定
comprehensiveMenus: [
{ name: "发查询", code: 0, flag: false },
{ name: "比中认定-隐藏条码号", code: 1, flag: false },
{ name: "比中信息反馈", code: 2, flag: false },
{ name: "比中信息管理", code: 3, flag: false },
{ name: "破案信息管理", code: 4, flag: false },
{ name: "导入比中认定", code: 5, flag: false },
{ name: "填写比中抓获", code: 6, flag: false },
{ name: "人员信息新增修改", code: 7, flag: false },
{ name: "比中信息反馈", code: 8, flag: false },
{ name: "关注人员", code: 9, flag: false },
{ name: "关注条件", code: 10, flag: false },
{ name: "协查信息上报", code: 11, flag: false },
{ name: "提取现勘信息", code: 12, flag: false },
{ name: "人员指纹编辑", code: 13, flag: false },
{ name: "案件指纹编辑", code: 14, flag: false },
{ name: "文字信息修改", code: 15, flag: false },
{ name: "二次打印", code: 16, flag: false },
{ name: "比中信息撤销", code: 17, flag: false }
],
// 高级认定
seniorMenus: [
{ name: "比中认定-显示条码号", code: 1, flag: false },
{ name: "高级案件编辑", code: 2, flag: false },
{ name: "人案控制条码规则", code: 3, flag: false },
{ name: "基本/比中数据上报", code: 4, flag: false },
{ name: "全用户认定权限", code: 5, flag: false }
],
// 质量检查
qualityTestingMenus: [
{ name: "比中信息复核", code: 1, flag: false },
{ name: "协查信息复核", code: 2, flag: false },
{ name: "人案控制条码规则", code: 3, flag: false }
],
// 高级质量检查
seniorQualityTestingMenus: [
{ name: "比中信息复核", code: 1, flag: false },
{ name: "协查信息复核", code: 2, flag: false },
{ name: "人案控制条码规则", code: 3, flag: false }
],
// 信息管理
informationManageMenus: [
{ name: "比中信息管理", code: 1, flag: false },
{ name: "破案信息管理", code: 2, flag: false },
{ name: "协查信息管理", code: 3, flag: false },
{ name: "工作信息统计", code: 4, flag: false },
{ name: "战果查询上报", code: 5, flag: false },
{ name: "人员队列管理", code: 6, flag: false },
{ name: "案件队列管理", code: 7, flag: false },
{ name: "系统操作日志", code: 8, flag: false },
{ name: "复制案件数据", code: 9, flag: false },
{ name: "FPTX数据导出", code: 10, flag: false },
{ name: "批量处理操作", code: 11, flag: false }
],
// 高级管理
seniorManageMenus: [
{ name: "人案更改条码号", code: 1, flag: false },
{ name: "人案控制条码规则", code: 2, flag: false },
{ name: "删除人员数据", code: 3, flag: false },
{ name: "删除案件数据", code: 4, flag: false },
{ name: "删除查询数据", code: 5, flag: false },
{ name: "系统用户管理", code: 6, flag: false },
{ name: "系统分库管理", code: 7, flag: false },
{ name: "资源库管理", code: 8, flag: false },
{ name: "协查用户管理", code: 9, flag: false },
{ name: "人员类型管理", code: 10, flag: false },
{ name: "用户组管理", code: 11, flag: false },
{ name: "查询模块管理", code: 12, flag: false },
{ name: "上报条件设置", code: 13, flag: false },
{ name: "本地重卡反馈", code: 14, flag: false },
{ name: "本地涉案反馈", code: 15, flag: false }
],
// 保存的角色选项
roleMenusSelection: []
};
},
methods: {
funAuth() {
this.funFlag = true;
this.dataFlag = false;
console.info("功能权限");
},
dataAuth() {
this.funFlag = false;
this.dataFlag = true;
console.info("数据权限");
},
// 保存
save() {
this.roleMenusSelection = this.roleMenus;
console.info("roleMenusSelection====", this.roleMenusSelection);
}
},
mounted() {
this.funFlag = true;
this.id = this.$route.params.id;
this.rolename = this.$route.params.rolename;
var user = new URLSearchParams();
user.append("userId", this.id);
// 获取用户信息
this.$axios
.post("/login/user/queryuserInfo", user)
.then(res => {
if (res.data) {
console.info(res.data);
this.userData = res.data.user;
this.status = res.data.user.status;
console.info(res.data.user.status);
}
})
.catch(failResponse => {});
console.info("chuancan", this.$route.params.id);
}
};
</script>
<style scoped lang="scss">
@import "scss/userpermission.scss";
</style>
.manage-page {
width: 100%;
padding: 24px;
font-family: MicrosoftYaHei;
div {
display: inline-block;
}
.header{
width:100%;
.btns{
width: 260px;
height: 40px;
.btn{
text-align: center;
width: 129px;
height: 32px;
font-size: 14px;
color: #282F3C;
background: #F6F8FA;
border-radius: 2px;
line-height: 32px;
cursor: pointer;
&.active{
background: #055FE7;
color: #FFFFFF;
}
}
}
}
.search{
width:100%;
height:58px;
border-bottom: 1px solid #EEEEEE;
padding-top: 10px;
margin-bottom: 10px;
display: flex;
flex-direction: row;
.search-item{
width: auto;
margin-right: 17px;
.label{
width: auto;
height: 22px;
font-size: 14px;
color: #333333;
line-height: 22px;
margin-right: 5px;
}
.input{
width: 156px;
height: 32px;
background: #FFFFFF;
border-radius: 4px;
border: 1px solid #E6E6E8;
}
}
.btns{
width: 180px;
position: absolute;
right: 24px;
text-align: center;
.btn-clear{
width: 50px;
height: 23px;
font-size: 14px;
color: #055FE7;
line-height: 23px;
cursor: pointer;
}
.btn-search{
width: 110px;
height: 32px;
font-size: 14px;
color: #FFFFFF;
line-height: 32px;
background: #055FE7;
border-radius: 4px;
margin-left: 10px;
cursor: pointer;
}
}
}
.main{
.user{
width: 1550px;
height:700px;
}
.group{
width: 100%;
height: 700px;
}
}
.footer {
width: 1544px;
//width: calc(100vw - 367px);
position: absolute;
bottom: 27px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
.count {
font-size: 14px;
font-family: MicrosoftYaHei;
color: #666666;
}
.paging {
float: right;
}
/deep/.el-pager {
.number {
background-color: transparent;
}
.number.active {
background-color: #055fe7 !important;
box-shadow: 0px 12px 16px 1px rgba(0, 21, 51, 0.03);
border-radius: 6px;
}
.el-icon.more.btn-quicknext.el-icon-more,
.el-icon.more.btn-quickprev.el-icon-more {
background-color: transparent !important;
}
}
/deep/ .btn-prev,
/deep/ .btn-next {
background-color: transparent !important;
}
/deep/ .el-pagination__sizes {
position: absolute;
right: 0;
}
/deep/ .btn-next {
//margin-right: 120px !important;
}
}
//表格表头样式
/deep/.el-table th,
.el-table tr {
height: 48px;
background: #f6f8fa;
font-size: 14px;
color: #282f3c;
}
//表格内容样式
/deep/.el-table td,
.el-table tr {
height: 55px;
background: #ffffff;
font-size: 14px;
color: #333333;
padding: 0;
font-weight: 400;
}
}
\ No newline at end of file
.manage-page {
width: 100%;
padding: 24px;
font-family: MicrosoftYaHei;
div {
display: inline-block;
}
.header{
width: 1544px;
height: 54px;
border-radius: 8px;
overflow: hidden;
&.down{
background: #FEF5F6;
}
&.up{
background: #f2f7fe;
}
.title{
width: 96px;
height: 96px;
border-radius: 16px;
transform: rotate(40deg);
position: relative;
left: -23px;
top: -17px;
&.down{
background: #FAE1E4;
}
&.up{
background: #DDEBFF;
}
.title-status{
position: relative;
top: 28px;
left: 30px;
transform: rotate(-40deg);
.circle-red{
width: 8px;
height: 8px;
background-color:#FE0000;
border-radius: 50%;
-moz-border-radius: 50%;
-webkit-border-radius: 50%;
z-index: 100;
}
.circle-blue{
width: 8px;
height: 8px;
background-color:#055FE7;
border-radius: 50%;
-moz-border-radius: 50%;
-webkit-border-radius: 50%;
z-index: 100;
}
}
}
.info{
//border: 1px solid hotpink; width: auto;
.info-item{
padding:0 20px 0 20px;
border-right: 1px solid #E6E6E8;
.info-title{
width: auto;
height: 22px;
font-size: 14px;
color: #999999;
line-height: 22px;
}
.info-value{
width: auto;
height: 22px;
font-size: 14px;
color: #333333;
line-height: 22px;
.tags{
width: 100px;
height: 24px;
background: #FFFFFF;
border-radius: 4px;
text-align: center;
margin-right: 16px;
}
}
}
.info-item1{
padding:0 20px 0 20px;
.info-title{
width: auto;
height: 22px;
font-size: 14px;
color: #999999;
line-height: 22px;
}
.info-value{
width: 80px;
text-align: center;
//width: 80px;
height: 24px;
background: #FFFFFF;
border-radius: 12px;
}
.btn{
margin-left: 5px;
cursor: pointer;
width: 80px;
height: 22px;
font-size: 14px;
color: #055FE7;
line-height: 22px;
}
}
}
}
.main {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
.header {
height: 55px;
margin: 0 auto;
//margin-bottom: 3px;
.btns {
width: 224px;
height: 48px;
background: #f6f8fa;
border-radius: 8px;
text-align: center;
.btn {
margin-top: 8px;
width: 104px;
height: 32px;
line-height: 32px;
color: #666666;
cursor: pointer;
//&:hover{
// background: #FFFFFF;
// color: #055FE7;
// box-shadow: 0px 6px 8px 1px rgba(0, 21, 51, 0.05);
// border-radius: 6px;
//}
&.active {
background: #ffffff;
color: #055fe7;
box-shadow: 0px 6px 8px 1px rgba(0, 21, 51, 0.05);
border-radius: 6px;
}
}
}
.save {
.btn {
position: absolute;
right: 30px;
top: 150px;
width: 72px;
height: 32px;
background: #055fe7;
border-radius: 4px;
line-height: 32px;
color: #ffffff;
text-align: center;
}
}
}
.role-info {
width: 100%;
height: 690px;
background: #ffffff;
box-shadow: 1px 0px 3px 0px rgba(5, 95, 231, 0.3),
-1px 1px 3px 0px rgba(5, 95, 231, 0.24);
border-radius: 10px;
display: flex;
flex-direction: row;
.menus {
width: 155px;
height: 100%;
border-right: 1px solid #eeeeee;
.div3 {
width: 100%;
height: 130px;
border-bottom: 1px solid #eeeeee;
.el-checkbox {
margin: 12px 20px 0 20px;
}
}
.div2 {
width: 100%;
height: 90px;
border-bottom: 1px solid #eeeeee;
.el-checkbox {
margin: 25px 20px 0 25px;
}
}
.div1 {
width: 100%;
height: 70px;
border-bottom: 1px solid #eeeeee;
.el-checkbox {
margin: 25px 20px 0 25px;
}
}
// 未选中字体颜色
/deep/ .el-checkbox {
font-size: 14px;
color: #333333;
font-weight: 400;
}
/deep/ .el-checkbox__input .el-checkbox__inner:hover {
border-color: #055fe7;
}
// 选中样式
/deep/.el-checkbox__input.is-checked + .el-checkbox__label {
font-size: 14px;
font-weight: 400;
color: #333333;
}
/deep/ .el-checkbox__input.is-checked .el-checkbox__inner {
background: #055fe7;
border-color: #055fe7;
}
}
.content {
width: 100%;
height: 725px;
.div3 {
width: 100%;
height: 130px;
border-bottom: 1px solid #eeeeee;
padding-left: 30px;
padding-top: 8px;
.line {
height: 40px;
}
}
.div2 {
width: 100%;
height: 90px;
border-bottom: 1px solid #eeeeee;
.el-checkbox {
margin: 10px 20px 0 25px;
}
.line {
height: 35px;
}
}
.div1 {
width: 100%;
height: 70px;
border-bottom: 1px solid #eeeeee;
.el-checkbox {
margin: 25px 20px 0 25px;
}
}
// 未选中字体颜色
/deep/ .el-checkbox {
//border: 1px darkblue solid;
width: 140px;
font-size: 14px;
color: #666666;
font-weight: 400;
margin-right: 50px;
}
/deep/ .el-checkbox__input .el-checkbox__inner:hover {
border-color: #055fe7;
}
// 选中样式
/deep/.el-checkbox__input.is-checked + .el-checkbox__label {
font-size: 14px;
font-weight: 400;
color: #333333;
}
/deep/ .el-checkbox__input.is-checked .el-checkbox__inner {
background: #055fe7;
border-color: #055fe7;
}
}
}
}
}
\ No newline at end of file
.manage-page {
width: 100%;
padding: 24px;
font-family: MicrosoftYaHei;
div {
display: inline-block;
}
//用户和用户组切换按钮
.header{
width:100%;
.btns{
width: 260px;
height: 40px;
.btn{
text-align: center;
width: 129px;
height: 32px;
font-size: 14px;
color: #282F3C;
background: #F6F8FA;
border-radius: 2px;
line-height: 32px;
cursor: pointer;
&.active{
background: #055FE7;
color: #FFFFFF;
}
}
}
}
// 用户
.user{
width: 100%;
height: 870px;
.search {
width: 100%;
height: 50px;
.search-item {
width: auto;
height: 32px;
margin: 5px 16px 5px 0;
.label {
width: auto;
height: 32px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #333333;
line-height: 32px;
margin: 8px;
}
.search-info {
width: 155px;
height: 32px;
background: #ffffff;
border-radius: 4px;
//border: 1px solid #e6e6e8;
//margin-top: 8px;
}
}
.btn {
position:absolute;
top: 125px;
right: 24px;
width: 95px;
height: 32px;
background: #055fe7;
border-radius: 4px;
line-height: 32px;
color: #ffffff;
font-size: 14px;
text-align: center;
cursor: pointer;
}
}
.table{
height: 750px;
width: 100%;
margin-top: 10px;
.tags{
width: 100px;
height: 24px;
background: #F0F3F6;
border-radius: 4px;
text-align: center;
margin-right: 3px;
}
.circle-red{
width: 8px; height: 8px; background-color:#FE0000; border-radius: 50%; -moz-border-radius: 50%; -webkit-border-radius: 50%;
}
.circle-blue{
width: 8px; height: 8px; background-color:#055FE7; border-radius: 50%; -moz-border-radius: 50%; -webkit-border-radius: 50%;
}
}
.footer {
width: 1544px;
//width: calc(100vw - 367px);
position: absolute;
bottom: 27px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
.count {
font-size: 14px;
font-family: MicrosoftYaHei;
color: #666666;
}
.paging {
float: right;
}
/deep/.el-pager {
.number {
background-color: transparent;
}
.number.active {
background-color: #055fe7 !important;
box-shadow: 0px 12px 16px 1px rgba(0, 21, 51, 0.03);
border-radius: 6px;
}
.el-icon.more.btn-quicknext.el-icon-more,
.el-icon.more.btn-quickprev.el-icon-more {
background-color: transparent !important;
}
}
/deep/ .btn-prev,
/deep/ .btn-next {
background-color: transparent !important;
}
/deep/ .el-pagination__sizes {
position: absolute;
right: 0;
}
/deep/ .btn-next {
//margin-right: 120px !important;
}
}
}
// 用户组
.group{
width: 100%;
height: 870px;
.search {
width: 100%;
height: 50px;
.search-item {
width: auto;
height: 32px;
margin: 5px 16px 5px 0;
.label {
width: auto;
height: 32px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #333333;
line-height: 32px;
margin: 8px;
}
.search-info {
width: 155px;
height: 32px;
background: #ffffff;
border-radius: 4px;
//border: 1px solid #e6e6e8;
//margin-top: 8px;
}
}
.clear{
width: 38px;
border: none;
height: 22px;
padding: 0;
margin: 0 12px 0 12px;
font-size: 14px;
font-weight: 350;
color: #333333;
text-align: center;
position:absolute;
top: 130px;
right: 124px;
cursor: pointer;
&:hover {
color: #055fe7;
}
&:active {
color: #055fe7;
}
}
.btn {
position:absolute;
top: 125px;
right: 24px;
width: 95px;
height: 32px;
background: #055fe7;
border-radius: 4px;
line-height: 32px;
color: #ffffff;
font-size: 14px;
text-align: center;
cursor: pointer;
}
}
.table{
height: 750px;
width: 100%;
margin-top: 10px;
.tags{
width: 100px;
height: 24px;
background: #F0F3F6;
border-radius: 4px;
text-align: center;
margin-right: 3px;
}
.circle-red{
width: 8px; height: 8px; background-color:#FE0000; border-radius: 50%; -moz-border-radius: 50%; -webkit-border-radius: 50%;
}
.circle-blue{
width: 8px; height: 8px; background-color:#055FE7; border-radius: 50%; -moz-border-radius: 50%; -webkit-border-radius: 50%;
}
.group-item{
width: 70px;
height: 24px;
background: #F0F3F6;
border-radius: 12px;
font-size: 16px;
font-weight: bold;
color: #282F3C;
line-height: 24px;
text-align: center;
margin-right: 12px;
}
.set-btn{
width: 56px;
height: 22px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #055FE7;
line-height: 22px;
cursor: pointer;
//position: absolute;
//right: 100px;
}
}
.footer {
width: 1544px;
//width: calc(100vw - 367px);
position: absolute;
bottom: 27px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
.count {
font-size: 14px;
font-family: MicrosoftYaHei;
color: #666666;
}
.paging {
float: right;
}
/deep/.el-pager {
.number {
background-color: transparent;
}
.number.active {
background-color: #055fe7 !important;
box-shadow: 0px 12px 16px 1px rgba(0, 21, 51, 0.03);
border-radius: 6px;
}
.el-icon.more.btn-quicknext.el-icon-more,
.el-icon.more.btn-quickprev.el-icon-more {
background-color: transparent !important;
}
}
/deep/ .btn-prev,
/deep/ .btn-next {
background-color: transparent !important;
}
/deep/ .el-pagination__sizes {
position: absolute;
right: 0;
}
/deep/ .btn-next {
//margin-right: 120px !important;
}
}
}
//表格表头样式
/deep/.el-table th,
.el-table tr {
height: 48px;
background: #f6f8fa;
font-size: 14px;
color: #282f3c;
}
//表格内容样式
/deep/.el-table td,
.el-table tr {
height: 55px;
background: #ffffff;
font-size: 14px;
color: #333333;
padding: 0;
font-weight: 400;
}
}
\ No newline at end of file
......@@ -81,9 +81,8 @@
//border: saddlebrown 1px solid;
width: 215px;
height: 366px;
display: flex;
flex-direction: column;
padding-top: 10px;
//display: flex;
//flex-direction: column;
overflow:scroll;
.diy-role-item{
width: 190px;
......@@ -93,7 +92,8 @@
font-size: 14px;
color: #333333;
line-height: 40px;
margin-bottom: 10px;
margin-top: 10px;
margin-left: -22px;
cursor: pointer;
overflow: hidden;
&.active{
......
.manage-page {
width: 100%;
padding: 24px;
font-family: MicrosoftYaHei;
div {
display: inline-block;
}
.header{
width: 1544px;
height: 54px;
border-radius: 8px;
overflow: hidden;
&.down{
background: #FEF5F6;
}
&.up{
background: #f2f7fe;
}
.title{
width: 96px;
height: 96px;
border-radius: 16px;
transform: rotate(40deg);
position: relative;
left: -23px;
top: -17px;
&.down{
background: #FAE1E4;
}
&.up{
background: #DDEBFF;
}
.title-status{
position: relative;
top: 28px;
left: 30px;
transform: rotate(-40deg);
.circle-red{
width: 8px;
height: 8px;
background-color:#FE0000;
border-radius: 50%;
-moz-border-radius: 50%;
-webkit-border-radius: 50%;
z-index: 100;
}
.circle-blue{
width: 8px;
height: 8px;
background-color:#055FE7;
border-radius: 50%;
-moz-border-radius: 50%;
-webkit-border-radius: 50%;
z-index: 100;
}
}
}
.info{
//border: 1px solid hotpink; width: auto;
.info-item{
padding:0 20px 0 20px;
border-right: 1px solid #E6E6E8;
.info-title{
width: auto;
height: 22px;
font-size: 14px;
color: #999999;
line-height: 22px;
}
.info-value{
width: auto;
height: 22px;
font-size: 14px;
color: #333333;
line-height: 22px;
}
.info-value1{
width: auto;
height: 22px;
font-size: 14px;
color: #333333;
line-height: 22px;
.tags{
}
}
}
.info-item1{
padding:0 20px 0 20px;
.info-title{
width: auto;
height: 22px;
font-size: 14px;
color: #999999;
line-height: 22px;
}
.info-value{
width: auto;
height: 22px;
font-size: 14px;
color: #333333;
line-height: 22px;
.tags{
width: 100px;
height: 24px;
background: #FFFFFF;
border-radius: 4px;
text-align: center;
margin-right: 16px;
}
}
}
}
}
.main {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
.header {
height: 55px;
margin: 0 auto;
//margin-bottom: 3px;
.btns {
width: 224px;
height: 48px;
background: #f6f8fa;
border-radius: 8px;
text-align: center;
.btn {
margin-top: 8px;
width: 104px;
height: 32px;
line-height: 32px;
color: #666666;
cursor: pointer;
//&:hover{
// background: #FFFFFF;
// color: #055FE7;
// box-shadow: 0px 6px 8px 1px rgba(0, 21, 51, 0.05);
// border-radius: 6px;
//}
&.active {
background: #ffffff;
color: #055fe7;
box-shadow: 0px 6px 8px 1px rgba(0, 21, 51, 0.05);
border-radius: 6px;
}
}
}
.save {
.btn {
position: absolute;
right: 30px;
top: 150px;
width: 72px;
height: 32px;
background: #055fe7;
border-radius: 4px;
line-height: 32px;
color: #ffffff;
text-align: center;
}
}
}
.role-info {
width: 100%;
height: 690px;
background: #ffffff;
box-shadow: 1px 0px 3px 0px rgba(5, 95, 231, 0.3),
-1px 1px 3px 0px rgba(5, 95, 231, 0.24);
border-radius: 10px;
display: flex;
flex-direction: row;
.menus {
width: 155px;
height: 100%;
border-right: 1px solid #eeeeee;
.div3 {
width: 100%;
height: 130px;
border-bottom: 1px solid #eeeeee;
.el-checkbox {
margin: 12px 20px 0 20px;
}
}
.div2 {
width: 100%;
height: 90px;
border-bottom: 1px solid #eeeeee;
.el-checkbox {
margin: 25px 20px 0 25px;
}
}
.div1 {
width: 100%;
height: 70px;
border-bottom: 1px solid #eeeeee;
.el-checkbox {
margin: 25px 20px 0 25px;
}
}
// 未选中字体颜色
/deep/ .el-checkbox {
font-size: 14px;
color: #333333;
font-weight: 400;
}
/deep/ .el-checkbox__input .el-checkbox__inner:hover {
border-color: #055fe7;
}
// 选中样式
/deep/.el-checkbox__input.is-checked + .el-checkbox__label {
font-size: 14px;
font-weight: 400;
color: #333333;
}
/deep/ .el-checkbox__input.is-checked .el-checkbox__inner {
background: #055fe7;
border-color: #055fe7;
}
}
.content {
width: 100%;
height: 725px;
.div3 {
width: 100%;
height: 130px;
border-bottom: 1px solid #eeeeee;
padding-left: 30px;
padding-top: 8px;
.line {
height: 40px;
}
}
.div2 {
width: 100%;
height: 90px;
border-bottom: 1px solid #eeeeee;
.el-checkbox {
margin: 10px 20px 0 25px;
}
.line {
height: 35px;
}
}
.div1 {
width: 100%;
height: 70px;
border-bottom: 1px solid #eeeeee;
.el-checkbox {
margin: 25px 20px 0 25px;
}
}
// 未选中字体颜色
/deep/ .el-checkbox {
//border: 1px darkblue solid;
width: 140px;
font-size: 14px;
color: #666666;
font-weight: 400;
margin-right: 50px;
}
/deep/ .el-checkbox__input .el-checkbox__inner:hover {
border-color: #055fe7;
}
// 选中样式
/deep/.el-checkbox__input.is-checked + .el-checkbox__label {
font-size: 14px;
font-weight: 400;
color: #333333;
}
/deep/ .el-checkbox__input.is-checked .el-checkbox__inner {
background: #055fe7;
border-color: #055fe7;
}
}
}
}
}
\ No newline at end of file
......@@ -87,7 +87,11 @@
</div>
<div class="bzitem">
<div class="bzname">比中人联系电话:</div>
<el-input class="bzphone" v-model="phone" placeholder="请输入内容"></el-input>
<el-input
class="bzphone"
v-model="phone"
placeholder="请输入内容"
></el-input>
<div class="input-error" v-show="isPhoneError">
<!-- <img src="@/assets/img/inputerror.png" alt=""> -->
<svg-icon icon-class="error" class="icon" />
......@@ -100,7 +104,12 @@
<div class="line"></div>
<div class="bzfooter">
<div class="footer-title">备注</div>
<el-input type="textarea" :rows="5" placeholder="在此输入备注信息" v-model="textarea">
<el-input
type="textarea"
:rows="5"
placeholder="在此输入备注信息"
v-model="textarea"
>
</el-input>
</div>
<div class="bzbtns">
......@@ -111,7 +120,11 @@
</div>
<!-- 认定完成确认框 -->
<div class="rdwcDialog" v-show="isShowrdwcDialogBg" @click="cancelrdwc"></div>
<div
class="rdwcDialog"
v-show="isShowrdwcDialogBg"
@click="cancelrdwc"
></div>
<div class="rdwccontent" v-show="isShowrdwcDialog">
<div class="title">当前候选未全部查看,是否确认认定完成?</div>
<div class="rdwcbtns">
......@@ -136,7 +149,7 @@ export default {
LTCandidate,
ImageEd
},
data () {
data() {
return {
qid: null,
radio: 6,
......@@ -161,12 +174,12 @@ export default {
isShowrdwcDialog: false
};
},
created () {
created() {
this.qid = this.$route.query.rowData;
console.log("源qid====>", this.qid);
},
watch: {
phone (newValue, oldValue) {
phone(newValue, oldValue) {
if (newValue.length < 7) {
this.isPhoneError = true;
document
......@@ -186,7 +199,7 @@ export default {
* @param {*}
* @return {*}
*/
confirmrdwc () {
confirmrdwc() {
let self = this;
this.isShowrdwcDialogBg = false;
this.isShowrdwcDialog = false;
......@@ -228,7 +241,7 @@ export default {
* @param {*}
* @return {*}
*/
cancelrdwc () {
cancelrdwc() {
this.isShowrdwcDialogBg = false;
this.isShowrdwcDialog = false;
},
......@@ -237,7 +250,7 @@ export default {
* @param {*}
* @return {*}
*/
cancelbz () {
cancelbz() {
this.isShowbzDialogBg = false;
this.isShowbzDialog = false;
},
......@@ -246,7 +259,7 @@ export default {
* @param {*}
* @return {*}
*/
confirmbz () {
confirmbz() {
let self = this;
console.log("比中");
let affirmstatus = "1";
......@@ -302,7 +315,7 @@ export default {
* @param {*}
* @return {*}
*/
getUserInfo2 () {
getUserInfo2() {
let self = this;
let destbarcode = sessionStorage.getItem("destbarcode") || "";
console.log(destbarcode);
......@@ -323,7 +336,7 @@ export default {
* @param {*} id
* @return {*}
*/
getUserInfo (id = 1234) {
getUserInfo(id = 1234) {
let self = this;
this.$axios({
method: "post",
......@@ -354,7 +367,7 @@ export default {
* @param {*}
* @return {*}
*/
Bz () {
Bz() {
this.getUserInfo();
this.getUserInfo2();
this.asjbh = sessionStorage.getItem("srcbarcode");
......@@ -369,7 +382,7 @@ export default {
* @param {*}
* @return {*}
*/
Rdwc () {
Rdwc() {
console.log("认定完成");
let qqid = sessionStorage.getItem("qqid") || "";
......@@ -396,7 +409,7 @@ export default {
* @param {*} code
* @return {*}
*/
judgeZw (code) {
judgeZw(code) {
console.log(code);
switch (code) {
case 1:
......@@ -462,7 +475,7 @@ export default {
}
}
},
beforeDestroy () {
beforeDestroy() {
//组件销毁前需要解绑事件。否则会出现重复触发事件的问题
this.$bus.$off("updateFinderSource");
}
......@@ -508,7 +521,7 @@ div {
height: 22px;
font-size: 16px;
font-weight: bold;
color: #00ccb5;
color: #00b47a;
line-height: 22px;
margin-top: 14px;
}
......
......@@ -156,11 +156,11 @@
<el-button type="info" @click="batch">批量操作</el-button>
<div class="middle">
<div class="font" @click="clearAll()">
全部数据&nbsp>
全部数据&nbsp;>
<!-- <span>共找到{{ reqParam.page.total }}</span>-->
</div>
<el-tag
style="margin-right: 10px;"
style="margin-right: 10px"
:key="index"
v-for="(tag, index) in dynamicTags"
closable
......@@ -209,18 +209,21 @@
</div>
</div>
<el-tag
style="width:100%;color:#666666;margin-top:1rem;"
style="width: 100%; color: #666666; margin-top: 1rem"
v-show="isShowTip"
>
<i class="el-icon-info" style="color:#055FE7;font-size:.9375rem"></i>
<i
class="el-icon-info"
style="color: #055fe7; font-size: 0.9375rem"
></i>
已选择
<span style="color:#055FE7">{{ selectionData.length }}</span> 项​
<span style="color: #055fe7">{{ selectionData.length }}</span> 项​
<span v-html="'&nbsp;&nbsp;'"></span>
​服务调用总计:<span v-html="'&nbsp;&nbsp;'"></span>36.4万
<el-link
type="primary"
:underline="false"
style="margin-left:1.25rem;"
style="margin-left: 1.25rem"
@click="toggleSelection()"
>清除</el-link
>
......@@ -249,13 +252,22 @@
<el-table-column prop="" label="任务号/查询号" :width="cxyrdWidth1">
<template slot-scope="scope">
<svg-icon
style="width: .875rem;height: .6875rem;margin-bottom: .125rem ;margin-left: .3125rem ;"
style="
width: 0.875rem;
height: 0.6875rem;
margin-bottom: 0.125rem;
margin-left: 0.3125rem;
"
v-if="scope.row.children || scope.row.children === null"
icon-class="tree_f"
>
</svg-icon>
<svg-icon
style="width: .8125rem;height: .375rem;margin: 0 0 .1875rem 0 ;"
style="
width: 0.8125rem;
height: 0.375rem;
margin: 0 0 0.1875rem 0;
"
v-else-if="!scope.row.children || scope.row.children !== null"
icon-class="tree_c"
></svg-icon>
......@@ -279,27 +291,32 @@
:label="item.colume"
:prop="item.prop"
:width="item.width"
:sortable="
item.prop == 'affirmtime' || item.prop == 'requestdatetime'
? true
: false
"
>
<template slot-scope="scope">
<template v-if="item.prop === 'querytype'">
<div v-if="scope.row.querytype === '3'" style="color: #FFA219">
<div v-if="scope.row.querytype === '3'" style="color: #ffa219">
{{ scope.row.queryTypeName }}
</div>
<div
v-else-if="scope.row.querytype === '0'"
style="color: #005FE7"
style="color: #005fe7"
>
{{ scope.row.queryTypeName }}
</div>
<div
v-else-if="scope.row.querytype === '1'"
style="color:#E60012 "
style="color: #e60012"
>
{{ scope.row.queryTypeName }}
</div>
<div
v-else-if="scope.row.querytype === '2'"
style="color:#08BD9E"
style="color: #00b47a"
>
{{ scope.row.queryTypeName }}
</div>
......@@ -348,12 +365,12 @@
class="img"
@click="edit(scope.row)"
type="text"
style="font-size:1.5rem"
style="font-size: 1.5rem"
v-if="scope.row.barcode"
>
<i>
<img
style="width:1rem;height:1rem;cursor: pointer;"
style="width: 1rem; height: 1rem; cursor: pointer"
:src="editUrl"
alt
/>
......@@ -364,11 +381,11 @@
class="img"
@click.stop="delOne(scope.row.qqid)"
type="text"
style="font-size:1.5rem"
style="font-size: 1.5rem"
>
<i>
<img
style="width:.75rem;height:.875rem;cursor: pointer;"
style="width: 0.75rem; height: 0.875rem; cursor: pointer"
:src="delUrl"
alt
/>
......@@ -631,6 +648,18 @@ export default {
item => item.value !== value
);
} else {
//点击优先级先清除优先级的按钮在添加
if (type == "queryclasss") {
this.queryClassBtns.forEach(i => {
let listIndex = list.findIndex(j => j == i.value);
let dynamicTagsIndex = this.dynamicTags.findIndex(
j => j.name == i.name
);
if (listIndex >= 0) list.splice(listIndex, 1);
if (dynamicTagsIndex >= 0)
this.dynamicTags.splice(dynamicTagsIndex, 1);
});
}
list.push(value);
this.dynamicTags.push(data);
}
......@@ -921,7 +950,7 @@ export default {
}
});
this.dynamicTags = newdynamicTags;
this.reqParam.contrastCustomSearchReq.querytypes = [];
this.$set(this.reqParam.contrastCustomSearchReq, "querystates", []);
this.search();
},
showHistory() {
......
......@@ -62,8 +62,8 @@ $phone: var(--phone, #606266); //#ff4242;
color: #055fe7;
}
&:active {
border: 1px solid #044CB9;
color: #044CB9;
border: 1px solid #044cb9;
color: #044cb9;
}
}
.rdwccancel {
......@@ -71,12 +71,12 @@ $phone: var(--phone, #606266); //#ff4242;
background: #055fe7;
color: #ffffff;
&:hover {
background: #377FEC;
color: #FFFFFF;
background: #377fec;
color: #ffffff;
}
&:active {
background: #044CB9;
color: #FFFFFF;
background: #044cb9;
color: #ffffff;
}
}
}
......@@ -144,14 +144,14 @@ $phone: var(--phone, #606266); //#ff4242;
font-size: 14px;
font-family: MicrosoftYaHei-Bold, MicrosoftYaHei;
font-weight: bold;
color: #FFA219;
color: #ffa219;
}
.dot {
margin-bottom: 2px;
margin-right: 5px;
width: 6px;
height: 6px;
background: #FFA219;
background: #ffa219;
border-radius: 50%;
}
}
......@@ -196,7 +196,7 @@ $phone: var(--phone, #606266); //#ff4242;
right: 36px;
font-size: 12px;
font-family: MicrosoftYaHei;
color: #FF3745;
color: #ff3745;
}
.input-error {
position: absolute;
......@@ -257,7 +257,8 @@ $phone: var(--phone, #606266); //#ff4242;
align-items: center;
margin-left: 287px;
margin-top: 30px;
.bzconfirm,.bzcancel {
.bzconfirm,
.bzcancel {
cursor: pointer;
display: flex;
justify-content: center;
......@@ -273,14 +274,14 @@ $phone: var(--phone, #606266); //#ff4242;
}
.bzcancel {
margin-left: 24px;
background: #055FE7;
color: #FFFFFF;
background: #055fe7;
color: #ffffff;
}
}
}
}
.detail{
.detail {
z-index: 1000;
position: absolute;
display: flex;
......@@ -288,21 +289,24 @@ $phone: var(--phone, #606266); //#ff4242;
text-align: center;
//justify-content:center;
//top: auto;
top: calc(50% - 470px);
left: calc(50% - 225px);
.head-title{
width: 450px;
height: 28px;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
height: 100vh;
.head-title {
width: calc(50vh - 35px);
height: 30px;
font-size: 16px;
font-family: MicrosoftYaHei-Bold, MicrosoftYaHei;
font-weight: bold;
color: #333333;
line-height: 28px;
line-height: 30px;
}
.finger{
.finger {
box-sizing: border-box;
border: #001e33 1px solid;
width: 450px;
height: 450px;
width: calc(50vh - 35px);
height: calc(50vh - 35px);;
margin-bottom: 20px;
}
}
<template>
<div class="tt">
<div class="tt" v-loading="screenLoading" element-loading-text="拼命加载中">
<div class="header">
<div class="label">查重</div>
<div class="btns">
......@@ -19,7 +19,11 @@
<div class="count">
<img
src="../../assets/img/TT/ttcount.png"
style="width: .875rem;height: .875rem;margin:0 .3125rem .1875rem 0"
style="
width: 0.875rem;
height: 0.875rem;
margin: 0 0.3125rem 0.1875rem 0;
"
/>已认定:{{ rdcount }}
<!-- />已认定:{{ qid }}条-->
</div>
......@@ -32,15 +36,13 @@
<!-- 1 认定完成 蓝色-->
<!-- 2 比中 红色-->
<!-- 3 认定+比中-->
<div class="label">
查询ID:
</div>
<div class="label">查询ID:</div>
<div
class="value"
:class="{
bz:
item.affirmStatus === '2' || item.affirmStatus === '3',
rd: item.affirmStatus === '1'
rd: item.affirmStatus === '1',
}"
>
{{ currentQqid }}
......@@ -53,7 +55,7 @@
:class="{
bz:
item.affirmStatus === '2' || item.affirmStatus === '3',
rd: item.affirmStatus === '1'
rd: item.affirmStatus === '1',
}"
>
{{ sourcebarcode }}
......@@ -64,12 +66,12 @@
<img
v-show="index === 0"
@click="last(index)"
style=" cursor: pointer;"
style="cursor: pointer"
src="../../assets/img/TT/last.png"
/>
<img
v-show="index > 0"
style=" cursor: pointer;"
style="cursor: pointer"
src="../../assets/img/TT/last-active.png"
@click="last(index)"
/>
......@@ -77,13 +79,13 @@
<div class="next">
<img
v-show="index === sourcedatas.length - 1"
style=" cursor: pointer;"
style="cursor: pointer"
src="../../assets/img/TT/next.png"
@click="next(index)"
/>
<img
v-show="index < sourcedatas.length - 1"
style=" cursor: pointer;"
style="cursor: pointer"
src="../../assets/img/TT/next-active.png"
@click="next(index)"
/>
......@@ -187,13 +189,23 @@
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div v-else>
<div class="relative" v-else>
<!-- 有指纹图片 -->
<img
v-if="item.img"
v-if="item.img && screenLoading == false"
:src="'data:image/jpeg;base64,' + item.img"
/>
<div v-else>未查到相关记录</div>
<img
v-if="screenLoading == true"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="!item.img && screenLoading == false"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
......@@ -213,13 +225,23 @@
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div v-else>
<div class="relative" v-else>
<!-- 有指纹图片 -->
<img
v-if="item.img"
v-if="item.img && screenLoading == false"
:src="'data:image/jpeg;base64,' + item.img"
/>
<div v-else>未查到相关记录</div>
<img
v-if="screenLoading == true"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="!item.img && screenLoading == false"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
......@@ -241,14 +263,23 @@
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div v-else>
<div class="relative" v-else>
<!-- 有指纹图片 -->
<img
v-if="item.img"
v-if="item.img && screenLoading == false"
:src="'data:image/jpeg;base64,' + item.img"
/>
<!-- 无指纹图片 -->
<div v-else>未查到相关记录</div>
<img
v-if="screenLoading == true"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="!item.img && screenLoading == false"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
......@@ -267,14 +298,23 @@
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div v-else>
<div class="relative" v-else>
<!-- 有指纹图片 -->
<img
v-if="item.img"
v-if="item.img && screenLoading == false"
:src="'data:image/jpeg;base64,' + item.img"
/>
<!-- 无指纹图片 -->
<div v-else>未查到相关记录</div>
<img
v-if="screenLoading == true"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="!item.img && screenLoading == false"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
......@@ -305,13 +345,23 @@
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div v-else>
<div class="relative" v-else>
<!-- 有指纹图片 -->
<img
v-if="item.img"
v-if="item.img && screenLoading == false"
:src="'data:image/jpeg;base64,' + item.img"
/>
<div v-else>未查到相关记录</div>
<img
v-if="screenLoading == true"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="!item.img && screenLoading == false"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
......@@ -331,14 +381,23 @@
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div v-else>
<div class="relative" v-else>
<!-- 有指纹图片 -->
<img
v-if="item.img"
v-if="item.img && screenLoading == false"
:src="'data:image/jpeg;base64,' + item.img"
/>
<!-- 无指纹图片 -->
<div v-else>未查到相关记录</div>
<img
v-if="screenLoading == true"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="!item.img && screenLoading == false"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
......@@ -360,14 +419,23 @@
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div v-else>
<div class="relative" v-else>
<!-- 有指纹图片 -->
<img
v-if="item.img"
v-if="item.img && screenLoading == false"
:src="'data:image/jpeg;base64,' + item.img"
/>
<!-- 无指纹图片 -->
<div v-else>未查到相关记录</div>
<img
v-if="screenLoading == true"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="!item.img && screenLoading == false"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
......@@ -386,14 +454,23 @@
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div v-else>
<div class="relative" v-else>
<!-- 有指纹图片 -->
<img
v-if="item.img"
v-if="item.img && screenLoading == false"
:src="'data:image/jpeg;base64,' + item.img"
/>
<!-- 无指纹图片 -->
<div v-else>未查到相关记录</div>
<img
v-if="screenLoading == true"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="!item.img && screenLoading == false"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
......@@ -421,7 +498,7 @@
<img
v-if="sourceImgdetail"
:src="'data:image/jpeg;base64,' + sourceImgdetail"
style="width: 28rem;height: 28rem;"
style="width: 100%; height: 100%"
/>
<div v-else>没有指纹详情</div>
</div>
......@@ -429,7 +506,7 @@
<img
v-if="destImgdetail"
:src="'data:image/jpeg;base64,' + destImgdetail"
style="width: 28rem;height: 28rem;"
style="width: 100%; height: 100%"
/>
<div v-else>没有指纹详情</div>
</div>
......@@ -562,7 +639,7 @@ export default {
TTPlam,
TTFace,
swiper,
swiperSlide
swiperSlide,
},
data() {
return {
......@@ -576,11 +653,11 @@ export default {
// autoplay: true,
speed: 1000,
pagination: {
el: ".swiper-pagination"
el: ".swiper-pagination",
},
scrollbar: {
el: ".swiper-scrollbar"
}
el: ".swiper-scrollbar",
},
},
swiperOption1: {
//swiper3
......@@ -590,11 +667,11 @@ export default {
// autoplay: true,
speed: 1000,
pagination: {
el: ".swiper-pagination"
el: ".swiper-pagination",
},
scrollbar: {
el: ".swiper-scrollbar"
}
el: ".swiper-scrollbar",
},
},
activeIndex3: 0,
dataType: null,
......@@ -627,56 +704,56 @@ export default {
{ name: "食", code: 7, img: null },
{ name: "中", code: 8, img: null },
{ name: "环", code: 9, img: null },
{ name: "小", code: 10, img: null }
{ name: "小", code: 10, img: null },
],
sourceFingersRightR: [
{ name: "拇", code: 1, img: null },
{ name: "食", code: 2, img: null },
{ name: "中", code: 3, img: null },
{ name: "环", code: 4, img: null },
{ name: "小", code: 5, img: null }
{ name: "小", code: 5, img: null },
],
sourceFingersLeftL: [
{ name: "拇", code: 16, img: null },
{ name: "食", code: 17, img: null },
{ name: "中", code: 18, img: null },
{ name: "环", code: 19, img: null },
{ name: "小", code: 20, img: null }
{ name: "小", code: 20, img: null },
],
sourceFingersRightL: [
{ name: "拇", code: 11, img: null },
{ name: "食", code: 12, img: null },
{ name: "中", code: 13, img: null },
{ name: "环", code: 14, img: null },
{ name: "小", code: 15, img: null }
{ name: "小", code: 15, img: null },
],
destFingersLeftR: [
{ name: "拇", code: 6, img: null },
{ name: "食", code: 7, img: null },
{ name: "中", code: 8, img: null },
{ name: "环", code: 9, img: null },
{ name: "小", code: 10, img: null }
{ name: "小", code: 10, img: null },
],
destFingersRightR: [
{ name: "拇", code: 1, img: null },
{ name: "食", code: 2, img: null },
{ name: "中", code: 3, img: null },
{ name: "环", code: 4, img: null },
{ name: "小", code: 5, img: null }
{ name: "小", code: 5, img: null },
],
destFingersLeftL: [
{ name: "拇", code: 16, img: null },
{ name: "食", code: 17, img: null },
{ name: "中", code: 18, img: null },
{ name: "环", code: 19, img: null },
{ name: "小", code: 20, img: null }
{ name: "小", code: 20, img: null },
],
destFingersRightL: [
{ name: "拇", code: 11, img: null },
{ name: "食", code: 12, img: null },
{ name: "中", code: 13, img: null },
{ name: "环", code: 14, img: null },
{ name: "小", code: 15, img: null }
{ name: "小", code: 15, img: null },
],
rdcount: 0, // 认定条数
// 指纹图片加载
......@@ -695,7 +772,10 @@ export default {
isdestAffirmStatus: -1,
index: 0,
flag: false,
colors: 1
colors: 1,
screenLoading: false,
loadingIndex: 0,
timer: null,
};
},
created() {
......@@ -726,8 +806,20 @@ export default {
.getElementsByTagName("body")[0]
.style.setProperty("--phone", "#606266");
}
},
loadingIndex(val,oldval) {
console.log(val,oldval,'watch')
if(val == 1 && oldval == 0){
this.screenLoading = true;
}
if (this.timer) clearTimeout(this.timer);
if (val == 0) {
this.timer = setTimeout(() => {
this.screenLoading = false;
}, 200);
}
},
},
methods: {
// 滚动平面选择切换
handleSelect(index) {
......@@ -790,20 +882,33 @@ export default {
// 获取源数据
getSourceList() {
let me = this;
this.screenLoading = true;
this.loadingIndex++;
if (me.dataType == "father") {
me.$axios
.post("/api/queryque/standardAll", {
contrastCustomSearchReq: { qid: me.qid }
})
.then(res => {
.post(
"/api/queryque/standardAll",
{
contrastCustomSearchReq: { qid: me.qid },
},
{ loading: false }
)
.then((res) => {
me.loadingIndex--;
if (res.data.code === 0) {
me.sourcedatas = res.data.ret;
me.sourcedatasLength = res.data.ret.length;
me.sourcebarcode = res.data.ret[0].barcode;
me.currentQqid = res.data.ret[0].qqid;
me.getMatchcandList(me.currentQqid);
this.getSourceRollFingerPrintDetail(res.data.ret[0].barcode);
this.getSourcePlainFingerPrintDetail(res.data.ret[0].barcode);
this.getSourceRollFingerPrintDetail(
res.data.ret[0].barcode,
"yes"
);
this.getSourcePlainFingerPrintDetail(
res.data.ret[0].barcode,
"yes"
);
// 认定条数
let count = 0;
me.sourcedatas.forEach((item, index) => {
......@@ -813,20 +918,30 @@ export default {
});
this.rdcount = count;
}
console.info("源数据", this.sourcedatas);
});
} else {
me.$axios
.post("/api/queryque/standardAll", {
contrastCustomSearchReq: { qqid: me.currentQqid }
})
.then(res => {
.post(
"/api/queryque/standardAll",
{
contrastCustomSearchReq: { qqid: me.currentQqid },
},
{ loading: false }
)
.then((res) => {
me.loadingIndex--;
if (res.data.code === 0) {
me.sourcedatas = res.data.ret;
me.sourcedatasLength = res.data.ret.length;
me.sourcebarcode = res.data.ret[0].barcode;
this.getSourceRollFingerPrintDetail(res.data.ret[0].barcode);
this.getSourcePlainFingerPrintDetail(res.data.ret[0].barcode);
this.getSourceRollFingerPrintDetail(
res.data.ret[0].barcode,
"yes"
);
this.getSourcePlainFingerPrintDetail(
res.data.ret[0].barcode,
"yes"
);
me.getMatchcandList(me.currentQqid);
if (me.sourcedatas[0].affirmStatus === "1") {
this.rdcount = 1;
......@@ -843,12 +958,15 @@ export default {
// 获取候选列表
getMatchcandList() {
let me = this;
this.loadingIndex++;
if (me.currentQqid !== null) {
me.$axios
.get(
"/api/query/matchcand/" + me.currentQqid + "/" + me.sourcebarcode
"/api/query/matchcand/" + me.currentQqid + "/" + me.sourcebarcode,
{ loading: false }
)
.then(res => {
.then((res) => {
me.loadingIndex--;
if (res.data.code === 0) {
me.tableData = res.data.ret;
me.$nextTick(() => {
......@@ -861,95 +979,103 @@ export default {
},
// 获取源平面指纹图
getSourcePlainFingerPrintDetail(barcode) {
getSourcePlainFingerPrintDetail(barcode, type) {
let self = this;
this.loadingIndex++;
// 平面
this.$axios
.post("/api/org/plainByBarcode/barcode", {
barcode: this.sourcebarcode
})
.then(function(response) {
.post(
"/api/org/plainByBarcode/barcode",
{
barcode: this.sourcebarcode,
},
{ loading: false }
)
.then(function (response) {
self.loadingIndex--;
if (response.data.code === 0) {
console.info("源plan", response.data.ret);
response.data.ret.forEach((element, index) => {
// 源 左手 平面
self.sourceFingersLeftL.forEach(item => {
self.sourceFingersLeftL.forEach((item) => {
if (item.code === element.seq) {
item.img = element.image;
}
});
// 源 右手 平面
self.sourceFingersRightL.forEach(item => {
self.sourceFingersRightL.forEach((item) => {
if (item.code === element.seq) {
item.img = element.image;
}
});
// 去掉加载状态
self.fingerLoading = false;
});
} else if (response.data.code === 4) {
// 去掉加载状态
self.fingerLoading = false;
}
})
.catch(function(error) {
.catch(function (error) {
console.log(error);
});
},
// 获取源滚动指纹图
getSourceRollFingerPrintDetail(barcode) {
getSourceRollFingerPrintDetail(barcode, type) {
this.loadingIndex++;
let self = this;
// 滚动 源数据
this.$axios
.post("/api/org/rollByBarcode/barcode", { barcode: barcode })
.then(function(response) {
.post(
"/api/org/rollByBarcode/barcode",
{ barcode: barcode },
{ loading: false }
)
.then(function (response) {
self.loadingIndex--;
if (response.data.code === 0) {
console.info("源roll", response.data.ret);
response.data.ret.forEach((element, index) => {
// 源 左手 滚动
self.sourceFingersLeftR.forEach(item => {
self.sourceFingersLeftR.forEach((item) => {
if (item.code === element.seq) {
item.img = element.image;
}
});
// 源 右手 滚动
self.sourceFingersRightR.forEach(item => {
self.sourceFingersRightR.forEach((item) => {
if (item.code === element.seq) {
item.img = element.image;
}
});
});
// 去掉加载状态
self.fingerLoading = false;
} else if (response.data.code === 4) {
// 去掉加载状态
self.fingerLoading = false;
}
})
.catch(function(error) {
.catch(function (error) {
console.log(error);
});
},
// 获取目标的滚动指纹图
getDestRollFingerPrintDetail(barcode) {
let self = this;
this.loadingIndex++;
// 平面 目标
this.$axios
.post("/api/org/plainByBarcode/barcode", {
barcode: this.destbarcode
})
.then(function(response) {
.post(
"/api/org/plainByBarcode/barcode",
{
barcode: this.destbarcode,
},
{ loading: false }
)
.then(function (response) {
self.loadingIndex--;
if (response.data.code === 0) {
console.info("目标plan", response.data.ret);
response.data.ret.forEach((element, index) => {
// 目标 左手 平面
self.destFingersLeftL.forEach(item => {
self.destFingersLeftL.forEach((item) => {
if (item.code === element.seq) {
item.img = element.image;
}
});
// 目标 右手 平面
self.destFingersRightL.forEach(item => {
self.destFingersRightL.forEach((item) => {
if (item.code === element.seq) {
item.img = element.image;
}
......@@ -962,41 +1088,44 @@ export default {
self.fingerLoading = false;
}
})
.catch(function(error) {
.catch(function (error) {
console.log(error);
});
},
// 获取目标的平面指纹图
getDestPlainFingerPrintDetail(barcode) {
let self = this;
this.loadingIndex++;
// 滚动 目标数据
this.$axios
.post("/api/org/rollByBarcode/barcode", { barcode: this.destbarcode })
.then(function(response) {
.post(
"/api/org/rollByBarcode/barcode",
{ barcode: this.destbarcode },
{ loading: false }
)
.then(function (response) {
self.loadingIndex--;
if (response.data.code === 0) {
response.data.ret.forEach((element, index) => {
console.info("目标roll", response.data.ret);
// 目标 左手 滚动
self.destFingersLeftR.forEach(item => {
self.destFingersLeftR.forEach((item) => {
if (item.code === element.seq) {
item.img = element.image;
}
});
// 目标 右手 滚动
self.destFingersRightR.forEach(item => {
self.destFingersRightR.forEach((item) => {
if (item.code === element.seq) {
item.img = element.image;
}
});
}); // 去掉加载状态
self.fingerLoading = false;
} else if (response.data.code === 4) {
// 去掉加载状态
self.fingerLoading = false;
}
console.log(response);
})
.catch(function(error) {
.catch(function (error) {
console.log(error);
});
},
......@@ -1035,19 +1164,23 @@ export default {
// 获取用户信息
getUserInfo(id = 1) {
let self = this;
this.loadingIndex++;
this.$axios({
method: "post",
url: "/api/user/searchByUserid",
loading: false,
data: {
id: id
}
}).then(async res => {
id: id,
},
}).then(async (res) => {
self.loadingIndex--;
if (res.data.code == 0) {
let data = res.data.ret[0];
console.log("userInfo===>", data);
let dw = await self.$axios({
method: "get",
url: "/api/code/unit/one/" + data.userunit
url: "/api/code/unit/one/" + data.userunit,
loading: false,
});
let time = new Date(data.updatetime);
self.bzsj = Utils.timeStampTurnTime2(time);
......@@ -1071,11 +1204,16 @@ export default {
// 认定完成
Rdwc() {
console.info("认定完成");
this.loadingIndex++;
// 认定之前的操作
this.$axios
.post("/api/matchcand/affirm/confirm", { qqid: this.currentQqid })
.then(res => {
.post(
"/api/matchcand/affirm/confirm",
{ qqid: this.currentQqid },
{ loading: false }
)
.then((res) => {
this.loadingIndex--;
console.log(res);
if (!res.data.ret) {
this.isShowrdwcDialogBg = true;
......@@ -1091,17 +1229,23 @@ export default {
let self = this;
this.isShowrdwcDialogBg = false;
this.isShowrdwcDialog = false;
this.loadingIndex++;
// 1:倒查
let querytype = 0;
this.$axios
.post("/api/matchcand/affirm/finish", {
.post(
"/api/matchcand/affirm/finish",
{
srcbarcode: self.sourcebarcode,
destbarcode: self.destbarcode,
qqid: self.currentQqid,
qid: self.qid,
querytype: querytype
})
.then(response => {
querytype: querytype,
},
{ loading: false }
)
.then((response) => {
this.loadingIndex--;
// 跟新列表数据
self.$bus.emit("updateTTSourceData");
console.log(response);
......@@ -1138,21 +1282,27 @@ export default {
confirmbz() {
let self = this;
console.log("比中");
this.loadingIndex++;
let querytype = 0;
this.$axios
.post("/api/matchcand/affirm/hit", {
.post(
"/api/matchcand/affirm/hit",
{
srcbarcode: self.sourcebarcode,
destbarcode: self.destbarcode,
// affirmstatus: "1"
querytype: "0",
qqid: self.currentQqid
})
.then(response => {
qqid: self.currentQqid,
},
{ loading: false }
)
.then((response) => {
this.loadingIndex--;
// 跟新列表数据
self.$bus.emit("updateTTSourceData");
console.log(response);
})
.catch(err => {
.catch((err) => {
this.$message.error("比中失败!");
});
self.isShowbzDialogBg = false;
......@@ -1210,28 +1360,28 @@ export default {
{ name: "食", code: 7, img: null },
{ name: "中", code: 8, img: null },
{ name: "环", code: 9, img: null },
{ name: "小", code: 10, img: null }
{ name: "小", code: 10, img: null },
]),
(this.sourceFingersRightR = [
{ name: "拇", code: 1, img: null },
{ name: "食", code: 2, img: null },
{ name: "中", code: 3, img: null },
{ name: "环", code: 4, img: null },
{ name: "小", code: 5, img: null }
{ name: "小", code: 5, img: null },
]),
(this.sourceFingersLeftL = [
{ name: "拇", code: 16, img: null },
{ name: "食", code: 17, img: null },
{ name: "中", code: 18, img: null },
{ name: "环", code: 19, img: null },
{ name: "小", code: 20, img: null }
{ name: "小", code: 20, img: null },
]),
(this.sourceFingersRightL = [
{ name: "拇", code: 11, img: null },
{ name: "食", code: 12, img: null },
{ name: "中", code: 13, img: null },
{ name: "环", code: 14, img: null },
{ name: "小", code: 15, img: null }
{ name: "小", code: 15, img: null },
]);
},
// 清空目标指纹图
......@@ -1241,28 +1391,28 @@ export default {
{ name: "食", code: 7, img: null },
{ name: "中", code: 8, img: null },
{ name: "环", code: 9, img: null },
{ name: "小", code: 10, img: null }
{ name: "小", code: 10, img: null },
]),
(this.destFingersRightR = [
{ name: "拇", code: 1, img: null },
{ name: "食", code: 2, img: null },
{ name: "中", code: 3, img: null },
{ name: "环", code: 4, img: null },
{ name: "小", code: 5, img: null }
{ name: "小", code: 5, img: null },
]),
(this.destFingersLeftL = [
{ name: "拇", code: 16, img: null },
{ name: "食", code: 17, img: null },
{ name: "中", code: 18, img: null },
{ name: "环", code: 19, img: null },
{ name: "小", code: 20, img: null }
{ name: "小", code: 20, img: null },
]),
(this.destFingersRightL = [
{ name: "拇", code: 11, img: null },
{ name: "食", code: 12, img: null },
{ name: "中", code: 13, img: null },
{ name: "环", code: 14, img: null },
{ name: "小", code: 15, img: null }
{ name: "小", code: 15, img: null },
]);
},
scrollFunc(e) {
......@@ -1282,7 +1432,7 @@ export default {
if (this.index >= this.colors) this.index = this.colors - 1;
window.scrollTo({
top: 769 * this.index,
behavior: "smooth"
behavior: "smooth",
});
} else if (e.detail) {
e.detail > 0 && this.index--;
......@@ -1291,19 +1441,19 @@ export default {
if (this.index >= this.colors) this.index = this.colors - 1;
window.scrollTo({
top: 769 * this.index,
behavior: "smooth"
behavior: "smooth",
});
}
}
},
},
mounted() {
this.finger();
this.$bus.on("ccbarcode", code => {
this.$bus.on("ccbarcode", (code) => {
this.cleardest();
this.getDestRollFingerPrintDetail(code);
this.getDestPlainFingerPrintDetail(code);
});
}
},
};
</script>
......@@ -1369,7 +1519,24 @@ div {
}
}
}
.relative {
width: 100%;
height: 100%;
position: relative;
.wtx {
position: absolute;
width: 75%;
left: 50%;
top: 45%;
transform: translate(-50%, -50%);
> span {
display: inline-block;
margin-top: 20px;
font-size: 14px;
color: #cccccc;
}
}
}
.main {
width: 100%;
display: flex;
......
......@@ -7,25 +7,25 @@
<div class="faces">
<div class="face_div">
<div class="face">
<img class="img" src="@/assets/img/face.gif" />
<img class="img" src="@/assets/img/zzjz/zmjz.gif" />
</div>
<div class="face_label">正面</div>
</div>
<div class="face_div">
<div class="face">
<img class="img" src="@/assets/img/leftface.gif" />
<img class="img" src="@/assets/img/zzjz/zcjz.gif" />
</div>
<div class="face_label">左侧面</div>
</div>
<div class="face_div">
<div class="face">
<img class="img" src="@/assets/img/rightface.gif" />
<img class="img" src="@/assets/img/zzjz/yljz.gif" />
</div>
<div class="face_label">右侧面</div>
</div>
<div class="face_div">
<div class="face">
<img class="img-idcard" src="@/assets/img/idcard.gif" />
<img class="img-idcard" src="@/assets/img/zzjz/ID.gif" />
</div>
<div class="face_label">身份证照</div>
</div>
......@@ -38,25 +38,25 @@
<div class="faces">
<div class="face_div">
<div class="face">
<img class="img" src="@/assets/img/face.gif" />
<img class="img" src="@/assets/img/zzjz/zmjz.gif" />
</div>
<div class="face_label">正面</div>
</div>
<div class="face_div">
<div class="face">
<img class="img" src="@/assets/img/leftface.gif" />
<img class="img" src="@/assets/img/zzjz/zcjz.gif" />
</div>
<div class="face_label">左侧面</div>
</div>
<div class="face_div">
<div class="face">
<img class="img" src="@/assets/img/rightface.gif" />
<img class="img" src="@/assets/img/zzjz/yljz.gif" />
</div>
<div class="face_label">右侧面</div>
</div>
<div class="face_div">
<div class="face">
<img class="img-idcard" src="@/assets/img/idcard.gif" />
<img class="img-idcard" src="@/assets/img/zzjz/ID.gif" />
</div>
<div class="face_label">身份证照</div>
</div>
......@@ -123,10 +123,10 @@ div {
/*-webkit-text-fill-color: transparent;*/
}
.img {
margin-top: 30%;
margin-top: 15%;
}
.img-idcard {
margin-top: 40%;
margin-top: 5%;
}
.tt_face_dest_label {
width: 40px;
......
<!--
* @Author: your name
* @Date: 2021-10-23 17:43:14
* @LastEditTime: 2021-10-29 21:05:13
* @LastEditors: your name
* @LastEditTime: 2021-11-10 17:38:25
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \指纹系统\founder_vue\src\views\cxyrd\modules\TTPlam.vue
-->
......@@ -12,7 +12,7 @@
<div class="slabel">源数据</div>
<br />
<div class="palm">
<img class="img" src="@/assets/img/handleft.gif" />
<img class="img" src="@/assets/img/zzjz/zsjz.gif" />
</div>
<br />
<div class="left">左掌</div>
......@@ -21,7 +21,7 @@
<div class="dlabel">目标数据</div>
<br />
<div class="palm">
<img class="img" src="@/assets/img/handright.gif" />
<img class="img" src="@/assets/img/zzjz/zsjz.gif" />
</div>
<br />
<div class="palm_label">右掌</div>
......
......@@ -85,8 +85,8 @@
>
</el-table-column>
<el-table-column
prop="name"
label="文件名称"
prop="index"
label="内序"
>
</el-table-column>
<!-- <el-table-column label="条码号">
......@@ -150,8 +150,8 @@
>
</el-table-column>
<el-table-column
prop="name"
label="文件名称"
prop="index"
label="内序"
>
</el-table-column>
<el-table-column
......@@ -225,7 +225,7 @@
<template slot-scope="scope">
<div
v-if='scope.row.type==0'
style="color: #ffa219;"
style="color: #fa9500;"
>{{scope.row.type | typeNum}}</div>
<div
v-if='scope.row.type==1'
......@@ -233,7 +233,7 @@
>{{scope.row.type | typeNum}}</div>
<div
v-if='scope.row.type==2'
style="color: #08BD9E;"
style="color: #00b47a;"
>{{scope.row.type | typeNum}}</div>
<div
v-if='scope.row.type==3'
......@@ -282,7 +282,7 @@
<el-table
height="550"
:data="selectArr"
ref="selection"
ref="dataTable"
@selection-change="checkRightAll"
style="width: 100%"
>
......@@ -306,7 +306,7 @@
<template slot-scope="scope">
<div
v-if='scope.row.type==0'
style="color: #ffa219;"
style="color: #fa9500;"
>{{scope.row.type | typeNum}}</div>
<div
v-if='scope.row.type==1'
......@@ -314,7 +314,7 @@
>{{scope.row.type | typeNum}}</div>
<div
v-if='scope.row.type==2'
style="color: #08BD9E;"
style="color: #00b47a;"
>{{scope.row.type | typeNum}}</div>
<div
v-if='scope.row.type==3'
......@@ -393,10 +393,10 @@
:modal-append-to-body="false"
>
<div v-if="showProgress">
<el-progress
<!-- <el-progress
type="circle"
:percentage="UploadPercent"
></el-progress>
></el-progress> -->
<div style="margin-top:.9375rem; margin-bottom:.9375rem;font-size: .875rem;font-family: MicrosoftYaHei;color: #909090;">正在解析指纹文件,点击“取消”可终止处理</div>
<el-button @click="abort">取 消</el-button>
</div>
......@@ -563,6 +563,16 @@ export default {
onChange (file, fileList) {
// console.log(file.raw, 2222233333)
console.log(fileList[0], 1111)
// 重复文件过滤
let existFile = fileList.slice(0, fileList.length - 1).find(f => f.name === file.name)
if (existFile) {
this.$message.error('当前文件已经存在!');
fileList.pop()
}
// 获取文件夹
// var folder = fileList[0].raw.webkitRelativePath.split("/");
// console.log('fffff', folder[0])
......@@ -574,7 +584,6 @@ export default {
var reader = new FileReader();
reader.readAsText(file);
if (this.drlx == 3) {
console.log('333333')
that.action = '/api/upload/person'
reader.onload = function () {
const reg = /\<ysxt_asjxgrybh\>(.*?)\<\/ysxt_asjxgrybh\>/
......@@ -582,7 +591,7 @@ export default {
that.$set(newlist[i], 'barcode', barcode[1])
}
} else if (this.drlx == 6) {
that.action = '/api/upload/person'
that.action = '/api/upload/case'
reader.onload = function () {
const reg = /\<ysxt_asjbh\>(.*?)\<\/ysxt_asjbh\>/
let barcode = this.result.match(reg)
......@@ -657,10 +666,71 @@ export default {
},
// 上传
submitUpload () {
// 创建一个空的FormData对象:
const formData = new FormData()
// 可以使用FormData.append来添加键/值对到表单里面;
this.nowSelectRightData.forEach((file) => {
formData.append('file', file.raw)
})
// 添加自定义参数,不传可删除
// formData.append('parentId', '49')
// formData.append('uploadType', '备料单')
// formData.append('versions', 'v4.0')
console.log('formData', formData)
// console.log('this.selectArr', this.selectArr)
// console.log('this.nowSelectRightData', this.nowSelectRightData)
this.$refs.upload.uploadFiles = this.nowSelectRightData
this.$refs.upload.submit();
// this.$refs.upload.uploadFiles = formData
// console.log('this.$refs.upload.uploadFiles', this.$refs.upload.uploadFiles)
// this.$refs.upload.submit();
// 自定义上传
// axios
// .post(this.upload.url, formData, { headers: { 'Content-Type': 'multipart/form-data', Authorization: getToken() } })
// .then(response => {
// if (response.code == 200) {
// this.upload.open = false;
// this.upload.isUploading = false;
// this.$refs.upload.clearFiles();
// this.msgSuccess('上传成功!');
// } else {
// this.$message.error(response.msg);
// }
// })
// .catch(error => {
// this.$message.error('上传失败!');
// });
// this.$axios
// .post(this.action, formData, { headers: { 'Content-Type': 'multipart/form-data' }, loading: false })
this.dialogVisible = true;
this.$axios({
method: 'post',
url: this.action,
data: formData,
loading: false
}).then(res => {
if (res.data.code === 0) {
// this.tableDate = response.data.ret.list;
// this.reqParam.page.total = response.data.ret.total;
if (this.drlx == 3 || this.drlx == 6) {
this.successCount = res.data.ret.successCount
this.failCount = res.data.ret.failCount
this.showProgress = false;
} else if (this.drlx == 9) {
this.successCount = res.data.ret.successCount
this.failCount = res.data.ret.failCount
this.showProgress = false;
}
// this.$refs.upload.clearFiles()
this.showProgress = false;
console.info("查询结果===>", res);
// this.userInfo = this.getUserInfo(this.tableDate);
} else {
this.$message.error(res.data.message);
}
});
},
// 删除文件
handleRemove (file, fileList) {
......@@ -742,12 +812,15 @@ export default {
this.nowSelectData = val;
},
checkRightAll (val) {
console.log('val', val)
// console.log('val111', val)
this.nowSelectRightData = val;
},
// 选中
handelSelect () {
// this.checkRightAll(this.nowSelectData)
// this.nowSelectRightData.push(this.nowSelectData)
this.selectArr = this.handleConcatArr(this.selectArr, this.nowSelectData)
this.nowSelectRightData = this.selectArr
this.handleRemoveTabList(this.nowSelectData, this.datas);
this.nowSelectData = [];
},
......
......@@ -8,15 +8,20 @@
class='head'
v-if="showType==1"
>
<el-radio-group v-model="drlx">
<el-radio :label="3">人员</el-radio>
<el-radio :label="6">案件</el-radio>
<el-radio-group
v-model="dataType"
class="chooseType"
>
<el-radio :label="1">人员</el-radio>
<el-radio :label="2">案件</el-radio>
</el-radio-group>
<div class='search tmh'>
<div class='search barcode'>
<div class='item'> 条码号:</div>
<el-input
placeholder="请输入条码号"
v-model="tmh"
v-model="barcode"
maxlength="23"
show-word-limit
clearable
>
</el-input>
......@@ -24,12 +29,11 @@
<div class='search ljfk'>
<div class='item'> 逻辑分库:</div>
<el-select
v-model="value"
clearable
v-model="logicDatabase"
placeholder="请选择逻辑分库"
>
<el-option
v-for="item in options"
v-for="item in logicDatabaseoptions"
:key="item.value"
:label="item.label"
:value="item.value"
......@@ -37,11 +41,13 @@
</el-option>
</el-select>
</div>
<div class='search rwh'>
<div class='search taskNumber'>
<div class='item'> 任务号:</div>
<el-input
placeholder="请输入任务号"
v-model="rwh"
v-model="taskNumber"
maxlength="14"
show-word-limit
clearable
>
</el-input>
......@@ -49,12 +55,11 @@
<div class='search rkzt'>
<div class='item'> 入库状态:</div>
<el-select
v-model="value"
clearable
v-model="status"
placeholder="请选择入库状态"
>
<el-option
v-for="item in options"
v-for="item in statusoptions"
:key="item.value"
:label="item.label"
:value="item.value"
......@@ -77,24 +82,40 @@
class='head'
v-if="showType==2"
>
<div class='search tmh'>
<div class='search barcode'>
<div class='item'> 条码号:</div>
<el-input
placeholder="请输入条码号"
v-model="tmh"
v-model="barcode"
maxlength="23"
show-word-limit
clearable
>
</el-input>
</div>
<div class='search ljfk'>
<div class='item'>查询类型:</div>
<el-select
v-model="queryType"
placeholder="请选择查询类型"
>
<el-option
v-for="item in queryTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</div>
<div class='search ljfk'>
<div class='item'> 逻辑分库:</div>
<el-select
v-model="value"
clearable
v-model="logicDatabase"
placeholder="请选择逻辑分库"
>
<el-option
v-for="item in options"
v-for="item in logicDatabaseoptions"
:key="item.value"
:label="item.label"
:value="item.value"
......@@ -102,24 +123,23 @@
</el-option>
</el-select>
</div>
<div class='search rwh'>
<!-- <div class='search taskNumber'>
<div class='item'> 任务号:</div>
<el-input
placeholder="请输入任务号"
v-model="rwh"
v-model="taskNumber"
clearable
>
</el-input>
</div>
</div> -->
<div class='search rkzt'>
<div class='item'> 入库状态:</div>
<el-select
v-model="value"
clearable
v-model="status"
placeholder="请选择入库状态"
>
<el-option
v-for="item in options"
v-for="item in statusoptions"
:key="item.value"
:label="item.label"
:value="item.value"
......@@ -127,7 +147,7 @@
</el-option>
</el-select>
</div>
<div class='search sjxz'>
<!-- <div class='search sjxz'>
<div class='item'> 时间选择:</div>
<el-date-picker
v-model="value1"
......@@ -136,7 +156,7 @@
end-placeholder="结束日期"
>
</el-date-picker>
</div>
</div> -->
</div>
<!-- 二 -->
<div class="buttons">
......@@ -150,7 +170,7 @@
</el-radio-group>
</div>
<div class='right'>
<el-button>筛选</el-button>
<el-button @click='search'>筛选</el-button>
</div>
</div>
......@@ -204,10 +224,11 @@
>清除</el-link>
</el-tag>
<!-- 五 -->
<div v-if="showType==1">
<el-table
max-height="550"
max-height="500"
ref="multipleTable"
:data="tableDate"
:data="tableDate1"
tooltip-effect="dark"
style="width: 100%"
row-key="sequenceNumber"
......@@ -245,7 +266,7 @@
>
</el-table-column>
<el-table-column
prop="dataType"
prop="logicDatabase"
label="逻辑分库"
width="auto"
>
......@@ -321,6 +342,129 @@
</el-table-column>
</el-table>
</div>
<el-table
v-if="showType==2"
max-height="500"
ref="multipleTable"
:data="tableDate2"
tooltip-effect="dark"
style="width: 100%"
row-key="sequenceNumber"
:tree-props="{children: 'affirmImportRecordGrandchildren', hasChildren: 'hasChildren'}"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="auto"
v-if="isSelected"
>
</el-table-column>
<el-table-column
prop="taskNumber"
label="任务号"
width="200"
>
</el-table-column>
<el-table-column
prop="fileName"
label="文件名"
width="300"
>
</el-table-column>
<el-table-column
prop="queryType"
label="查询类型"
width="auto"
>
</el-table-column>
<el-table-column
prop="barcode"
label="人员编号/案事件编号"
width="300"
>
<template slot-scope="scope">
<div>{{scope.row.srcBarcode}}</div>
<div>{{scope.row.destBarcode}}</div>
</template>
</el-table-column>
<el-table-column
prop="logicDatabase"
label="逻辑分库"
width="auto"
>
</el-table-column>
<el-table-column
prop="status"
label="状态"
width="auto"
>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="100"
>
<template slot-scope="scope">
<div class="ops">
<el-tooltip
class="item"
effect="dark"
content="编辑"
placement="top"
:open-delay='500'
@click="handleClick(scope.row)"
>
<div
class="icon bj"
@click="handleClick(scope.row)"
>
<img
src="../../assets/img/qbryk/bj.svg"
alt=""
>
</div>
</el-tooltip>
<el-tooltip
class="item"
effect="dark"
content="复制数据"
placement="top"
:open-delay='500'
>
<div
class="icon bz"
@click='isShowFztmBtn(scope.row)'
>
<img
src="../../assets/img/qbryk/bz.svg"
alt=""
>
</div>
</el-tooltip>
<el-tooltip
class="item"
effect="dark"
content="发查询"
placement="top"
:open-delay='500'
>
<div
class="icon look"
@click="isShowFcxBtn1(scope.row)"
>
<img
src="../../assets/img/qbryk/search.svg"
alt=""
>
</div>
</el-tooltip>
</div>
</template>
</el-table-column>
</el-table>
<!-- 六 -->
<div class="block">
<span class="record">共{{ reqParam.page.total }}条记录 第{{ reqParam.page.currPage }}/{{ Tpage }}页</span>
......@@ -375,16 +519,51 @@ export default {
},
data () {
return {
drlx: 3,// 导入类型
tmh: '',// 条码号
options: [{
value: '选项1',
label: '黄金糕'
dataType: 1,// 导入类型
barcode: '',// 条码号
logicDatabaseoptions: [{ // 逻辑库
value: '1',
label: '人员逻辑库'
}],
value: '',// 逻辑库
value1: '',
rwh: '',// 任务号
showType: '1',
statusoptions: [
{ // 入库状态
value: '1',
label: '成功'
}, {
value: '0',
label: '失败'
}
],
status: null, // 入库状态
logicDatabase: '',// 逻辑库
value1: '', // 时间
taskNumber: '',// 任务号
showType: '1', // 1:人案 2:比中
queryType: '',// 比中类型
queryTypeOptions: [
{ // 比中类型
value: '0',
label: '查重'
},
{
value: '1',
label: '倒查'
},
{
value: '2',
label: '正查'
},
{
value: '3',
label: '串查'
},
],
tableDate1: [
], // 人员列表数据
tableDate2: [
], // 人员列表数据
......@@ -407,27 +586,66 @@ export default {
checkboxQuery: [], //滚动平面等筛选条件
}
},
tableDate: [
], // 人员列表数据
multipleSelection: [], // 表单选择项目
isShowTip: false,//批量操作提示
selectionData: [],
};
},
watch: {
showType (newNum, oldNum) {
// ...
console.log(newNum, 123)
this.search()
}
},
methods: {
// 获取全部人员列表请求
search () {
let reqUrl = null;
let reqParam = null;
if (this.showType == 1) {
reqUrl = "/api/record/import/pc/search"
reqParam = {
taskNumber: "", // 任务号
dataType: null, // 人员or案件
status: null,// 状态
barcode: '',// 条码号
logicDatabase: '',// 逻辑分库
}
reqParam.taskNumber = this.taskNumber
reqParam.dataType = Number(this.dataType)
// reqParam.status = Number(this.status)
reqParam.status = this.status != null ? Number(this.status) : null
reqParam.barcode = this.barcode
reqParam.logicDatabase = this.logicDatabase
} else if (this.showType == 2) {
// console.log('bizhong bizhong ')
reqUrl = "/api/record/import/affirm/search"
reqParam = {
status: null,// 状态
barcode: '',// 条码号
logicDatabase: '',// 逻辑分库
queryType: '',// 类型
}
reqParam.status = this.status != null ? Number(this.status) : null
reqParam.barcode = this.barcode
reqParam.logicDatabase = this.logicDatabase
reqParam.queryType = this.queryType
}
// console.info("请求===>", this.reqParam);
this.$axios
.get("/api/record/import/pc/search")
.post(reqUrl, reqParam)
.then(response => {
// console.info("查询结果===>", response);
if (response.data.code === 0) {
this.tableDate = response.data.ret.pcImportRecordChildren;
if (this.showType == 1) {
this.tableDate1 = response.data.ret.pcImportRecordChildren;
} else if (this.showType == 2) {
this.tableDate2 = response.data.ret.affirmImportRecordChildren;
}
// this.reqParam.page.total = response.data.ret.total;
console.info("查询结果===>", this.tableDate);
// this.userInfo = this.getUserInfo(this.tableDate);
} else {
this.$message.error(response.data.message);
}
......@@ -628,9 +846,13 @@ export default {
display: flex;
align-items: center;
}
.tmh {
.chooseType {
margin-top: 3px;
margin-right: 24px;
}
.barcode {
// margin-left: 65px;
margin-left: 24px;
// margin-left: 24px;
.item {
width: 60px;
font-size: 14px;
......@@ -661,7 +883,7 @@ export default {
height: 32px;
}
}
.rwh {
.taskNumber {
margin-left: 24px;
.item {
width: 80px;
......@@ -722,11 +944,11 @@ export default {
/deep/.el-button {
width: 72px;
height: 32px;
background: #ecedf1;
background: #055fe7;
border-radius: 4px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #aeafb4;
color: #ffffff;
line-height: 22px;
}
}
......
<template>
<div id="homepage_hero_module" class="homepage_hero_module">
<div class="video_container">
<!-- <div :style="fixStyle" class="filter"></div>-->
<!-- autoplay 自动播放 loop 循环播放 muted 静音播放-->
<!-- <video autoplay loop muted class="fillWidth" v-on:canplay="canplay">-->
<!-- <source :src="barcgroundUrl" type="video/mp4" />-->
<!-- 浏览器不支持 video 标签,建议升级浏览器。-->
<!-- </video>-->
<!-- &lt;!&ndash; todo 视频加载切换为图片加载 &ndash;&gt;-->
<!-- &lt;!&ndash; 考虑视频加载失败 图片背景效果 &ndash;&gt;-->
<!-- <div class="poster hidden" v-if="!vedioCanPlay">-->
<!-- <img :style="fixStyle" :src="barcgroundImgUrl" alt="" />-->
<!-- <div class="video_container">-->
<!-- &lt;!&ndash; <div :style="fixStyle" class="filter"></div>&ndash;&gt;-->
<!-- &lt;!&ndash; autoplay 自动播放 loop 循环播放 muted 静音播放&ndash;&gt;-->
<!-- &lt;!&ndash; <video autoplay loop muted class="fillWidth" v-on:canplay="canplay">&ndash;&gt;-->
<!-- &lt;!&ndash; <source :src="barcgroundUrl" type="video/mp4" />&ndash;&gt;-->
<!-- &lt;!&ndash; 浏览器不支持 video 标签,建议升级浏览器。&ndash;&gt;-->
<!-- &lt;!&ndash; </video>&ndash;&gt;-->
<!-- &lt;!&ndash; &lt;!&ndash; todo 视频加载切换为图片加载 &ndash;&gt;&ndash;&gt;-->
<!-- &lt;!&ndash; &lt;!&ndash; 考虑视频加载失败 图片背景效果 &ndash;&gt;&ndash;&gt;-->
<!-- &lt;!&ndash; <div class="poster hidden" v-if="!vedioCanPlay">&ndash;&gt;-->
<!-- &lt;!&ndash; <img :style="fixStyle" :src="barcgroundImgUrl" alt="" />&ndash;&gt;-->
<!-- &lt;!&ndash; </div>&ndash;&gt;-->
<!-- -->
<!-- </div>-->
<img src="@/assets/img/login/login.gif" />
</div>
<transition name="slide_fade">
<div :style="drawerStyle" class="login_main_layer" v-if="isShow">
<transition name="login_fade">
<div v-if="loginShow">
<img class="video_container" src="@/assets/img/login/login.gif" />
<div :style="drawerStyle" class="login_main_layer" ref="loginWindow">
<div>
<div class=" login_top_layer middle">
<el-image class="login_emblem middle" :src="emblemUrl"></el-image>
<br />
......@@ -42,22 +41,16 @@
</el-button>
</div>
<div>
<accountsLogin
:login-type="loginType.accountStatus"
></accountsLogin>
<accountsLogin :login-type="loginType.accountStatus"></accountsLogin>
</div>
<div>
<keyLogin :login-type="loginType.keyStatus"></keyLogin>
</div>
</div>
</transition>
<div class="login_bottom_layer middle ">
<span class=" font_color"
>Copyright&nbsp;©&nbsp;2021&nbsp;Founder</span
>
<span class=" font_color">Copyright&nbsp;©&nbsp;2021&nbsp;Founder</span>
</div>
</div>
</transition>
</div>
</template>
......@@ -74,8 +67,7 @@ export default {
data() {
return {
isShow: false,
loginShow: false,
isShow: true,
// drawerHeight: null,
barcgroundUrl: require("../../assets/video/login.mp4"),
barcgroundImgUrl: require("../../assets/img/login/background.png"),
......@@ -110,15 +102,18 @@ export default {
},
created() {
var me = this;
console.log(this.$refs.loginWindow);
// 动画加载时间
setTimeout(() => {
me.isShow = true;
}, 1000);
setTimeout(() => {
me.loginShow = true;
}, 3000);
// setTimeout(() => {
// me.isShow = true;
// }, 1000);
},
mounted() {
this.$nextTick(() => {
console.log(this.$refs.loginWindow);
this.$refs.loginWindow.right = "0px";
});
this.loginType.accountStatus = true;
if (localStorage.getItem("token") !== null) {
this.$router.push("/Home/Home");
......@@ -177,6 +172,8 @@ export default {
width: 100vw;
height: 100vh;
overflow: hidden;
background: rgba(36, 54, 76, 0.5);
position: relative;
}
.homepage_hero_module img {
width: 100%;
......@@ -224,6 +221,7 @@ video {
} */
.video_container {
height: 100%;
width: 100%;
}
.video_container .poster img,
.video_container video {
......@@ -238,30 +236,30 @@ video {
/*opacity: 0.5;*/
}
/*滑动进入*/
/* 可以设置不同的进入和离开动画 */
/* 设置动画持续时间和动画函数 */
.slide_fade-enter-active {
transition: all 2s ease;
}
/*!*滑动进入*!*/
/*!* 可以设置不同的进入和离开动画 *!*/
/*!* 设置动画持续时间和动画函数 *!*/
/*.slide_fade-enter-active {*/
/* transition: all 2s ease;*/
/*}*/
.slide_fade-leave-active {
transition: all 0.8s cubic-bezier(1, 0.5, 0.8, 1);
}
/*.slide_fade-leave-active {*/
/* transition: all 0.8s cubic-bezier(1, 0.5, 0.8, 1);*/
/*}*/
.slide_fade-enter, .slide_fade-leave-to
/* .slide-fade-leave-active for below version 2.1.8 */
{
transform: translateX(1000px);
opacity: 0;
}
/*.slide_fade-enter, .slide_fade-leave-to*/
/* !* .slide-fade-leave-active for below version 2.1.8 *!*/
/* {*/
/* !*transform: translateX(100%);*!*/
/* !*opacity: 0;*!*/
/*}*/
/*淡入淡出*/
.login_fade-enter-active,
.login_-leave-active {
/* opacity 透明度 */
transition: opacity 2s;
}
/*!*淡入淡出*!*/
/*.login_fade-enter-active,*/
/*.login_-leave-active {*/
/* !* opacity 透明度 *!*/
/* transition: opacity 2s;*/
/*}*/
/* .fade-leave-active, 2.1.8 版本以下 */
.login_fade-enter,
......@@ -269,33 +267,33 @@ video {
opacity: 0;
}
@keyframes fade-in {
0% {
opacity: 0;
}
/*初始状态 透明度为0*/
40% {
opacity: 0;
}
/*过渡状态 透明度为0*/
100% {
opacity: 1;
}
/*结束状态 透明度为1*/
}
/*@keyframes fade-in {*/
/* 0% {*/
/* opacity: 0;*/
/* }*/
/* !*初始状态 透明度为0*!*/
/* 40% {*/
/* opacity: 0;*/
/* }*/
/* !*过渡状态 透明度为0*!*/
/* 100% {*/
/* opacity: 1;*/
/* }*/
/* !*结束状态 透明度为1*!*/
/*}*/
@-webkit-keyframes fade-in {
/*针对webkit内核*/
0% {
opacity: 0;
}
40% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/*@-webkit-keyframes fade-in {*/
/* !*针对webkit内核*!*/
/* 0% {*/
/* opacity: 0;*/
/* }*/
/* 40% {*/
/* opacity: 0;*/
/* }*/
/* 100% {*/
/* opacity: 1;*/
/* }*/
/*}*/
/*#wrapper {*/
/* animation: fade-in;!*动画名称*!*/
......@@ -307,11 +305,12 @@ video {
height: 100%;
width: 600px;
position: absolute;
right: 0;
right: -600px;
top: 0;
z-index: 4;
/*opacity: 0.5;*/
background: rgba(36, 54, 76, 0.5);
transition: all 2s;
/*background-color: #24364c;*/
}
......@@ -334,6 +333,7 @@ video {
z-index: 10;
margin-bottom: 10px;
opacity: 1;
background: rgba(36, 54, 76, 0);
}
.login_system {
......@@ -341,11 +341,13 @@ video {
height: 55px;
opacity: 1;
z-index: 10;
background: rgba(36, 54, 76, 0);
}
.login_top_layer {
margin-top: 20%;
margin-bottom: 50px;
background: rgba(36, 54, 76, 0);
}
.login_bottom_layer {
......
......@@ -8,13 +8,13 @@
*/
const path = require("path");
// 引入等比适配插件
const px2rem = require('postcss-px2rem')
const px2rem = require("postcss-px2rem");
// 配置基本大小
const postcss = px2rem({
// 基准大小 baseSize,需要和rem.js中相同
remUnit: 16
})
});
// const CompressionPlugin = require('compression-webpack-plugin');
// const productionGzipExtensions = /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i;
......@@ -107,11 +107,20 @@ module.exports = {
},
"/login": {
target: "http://47.92.226.24:3004/", // 登录
// target: "http://192.168.128.109:8765/", // 王
ws: true,
changeOrigin: true,
pathRewrite: {
"^/login": ""
}
},
"/system": {
target: "http://192.168.128.109:8765", // 湖南-王
ws: true,
changeOrigin: true,
pathRewrite: {
"^/system": ""
}
}
// 阿里
// "/api": {
......@@ -127,9 +136,7 @@ module.exports = {
css: {
loaderOptions: {
postcss: {
plugins: [
postcss
]
plugins: [postcss]
}
},
sourceMap: process.env.NODE_ENV === "development" ? true : false // 在开发环境下开启 CSS sourcemaps
......
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