|
@@ -756,6 +756,27 @@
|
|
|
<div class="line"></div>
|
|
|
<span>功能配置</span>
|
|
|
</div>
|
|
|
+ <div class="flex">
|
|
|
+ <el-form-item
|
|
|
+ label="进出记录保留时间"
|
|
|
+ prop="faceLogHoldDays"
|
|
|
+ class="form-item-style item-margin-bottom"
|
|
|
+ >
|
|
|
+ <el-tooltip
|
|
|
+ class="item"
|
|
|
+ effect="dark"
|
|
|
+ :manual="false"
|
|
|
+ content="单位:天"
|
|
|
+ placement="bottom"
|
|
|
+ >
|
|
|
+ <el-input-number
|
|
|
+ v-model="user_form.faceLogHoldDays"
|
|
|
+ size="mini"
|
|
|
+ :min="1"
|
|
|
+ />
|
|
|
+ </el-tooltip>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
<div class="flex">
|
|
|
<el-form-item
|
|
|
label="卡号认证"
|
|
@@ -768,14 +789,23 @@
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item
|
|
|
- label="是否开启布控"
|
|
|
- prop="isControlEarlyWarning"
|
|
|
+ label="身份证认证"
|
|
|
class="form-item-style item-margin-bottom"
|
|
|
+ prop="isPush"
|
|
|
+ v-if="user_form.type === 5"
|
|
|
>
|
|
|
- <el-radio-group v-model="user_form.isControlEarlyWarning">
|
|
|
- <el-radio :label="2">否</el-radio>
|
|
|
- <el-radio :label="1">是</el-radio>
|
|
|
- </el-radio-group>
|
|
|
+ <el-tooltip
|
|
|
+ class="item"
|
|
|
+ effect="dark"
|
|
|
+ :manual="false"
|
|
|
+ content="若开启现场刷身份证,人员若在员工白名单中存在,且未认证,则状态改为已认证,并抓拍现场照片补全信息"
|
|
|
+ placement="bottom"
|
|
|
+ >
|
|
|
+ <el-radio-group v-model="user_form.isPush">
|
|
|
+ <el-radio :label="0">停用</el-radio>
|
|
|
+ <el-radio :label="1">开启</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-tooltip>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div class="flex" v-if="user_form.placeType != 1">
|
|
@@ -809,25 +839,17 @@
|
|
|
</el-checkbox-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item
|
|
|
- label="身份证认证"
|
|
|
+ label="二维码类型"
|
|
|
+ prop="codeType"
|
|
|
class="form-item-style item-margin-bottom"
|
|
|
- prop="isPush"
|
|
|
- v-if="user_form.type === 5"
|
|
|
>
|
|
|
- <el-tooltip
|
|
|
- class="item"
|
|
|
- effect="dark"
|
|
|
- :manual="false"
|
|
|
- content="若开启现场刷身份证,人员若在员工白名单中存在,且未认证,则状态改为已认证,并抓拍现场照片补全信息"
|
|
|
- placement="bottom"
|
|
|
- >
|
|
|
- <el-radio-group v-model="user_form.isPush">
|
|
|
- <el-radio :label="0">停用</el-radio>
|
|
|
- <el-radio :label="1">开启</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-tooltip>
|
|
|
+ <el-checkbox-group v-model="user_form.codeType" :min="1">
|
|
|
+ <el-checkbox label="0">通用码</el-checkbox>
|
|
|
+ <el-checkbox label="1">员工码</el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
+
|
|
|
<div v-if="user_form.type === 5">
|
|
|
<div class="flex" v-if="user_form.placeType === 0">
|
|
|
<el-form-item
|
|
@@ -841,7 +863,7 @@
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item
|
|
|
- label="是否开启区域消杀"
|
|
|
+ label="是否开启区域巡查"
|
|
|
class="form-item-style item-margin-bottom"
|
|
|
prop="disinfectFlag"
|
|
|
>
|
|
@@ -875,99 +897,133 @@
|
|
|
</div>
|
|
|
<div class="flex">
|
|
|
<el-form-item
|
|
|
- label="是否零点清除"
|
|
|
- class="form-item-style item-margin-bottom special"
|
|
|
- prop="isOpenVisitorClear"
|
|
|
- >
|
|
|
- <el-radio-group v-model="user_form.isOpenVisitorClear">
|
|
|
- <el-radio :label="false">否</el-radio>
|
|
|
- <el-radio :label="true">是</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="二维码类型"
|
|
|
- prop="codeType"
|
|
|
+ label="是否输入手机号"
|
|
|
class="form-item-style item-margin-bottom"
|
|
|
- v-if="user_form.placeType != 1"
|
|
|
+ prop="mobileAutoInputFlag"
|
|
|
>
|
|
|
- <el-checkbox-group v-model="user_form.codeType" :min="1">
|
|
|
- <el-checkbox label="0">通用码</el-checkbox>
|
|
|
- <el-checkbox label="1">员工码</el-checkbox>
|
|
|
- </el-checkbox-group>
|
|
|
+ <el-radio-group v-model="user_form.mobileAutoInputFlag">
|
|
|
+ <el-radio :label="2">否</el-radio>
|
|
|
+ <el-radio :label="1">是</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
</el-form-item>
|
|
|
- </div>
|
|
|
- <div class="flex">
|
|
|
<el-form-item
|
|
|
- label="进出人员数据统计"
|
|
|
- prop="openInOutStatistics"
|
|
|
+ label="是否开启考试"
|
|
|
class="form-item-style item-margin-bottom"
|
|
|
+ prop="isOpenExam"
|
|
|
>
|
|
|
- <el-radio-group v-model="user_form.openInOutStatistics">
|
|
|
- <el-radio :label="false">停用</el-radio>
|
|
|
- <el-radio :label="true">启用</el-radio>
|
|
|
+ <el-radio-group v-model="user_form.isOpenExam">
|
|
|
+ <el-radio :label="false">否</el-radio>
|
|
|
+ <el-radio :label="true">是</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div class="flex">
|
|
|
<el-form-item
|
|
|
- label="是否输入手机号"
|
|
|
- class="form-item-style special item-margin-bottom"
|
|
|
- prop="mobileAutoInputFlag"
|
|
|
+ v-if="user_form.placeType != 1"
|
|
|
+ label="是否开启布控"
|
|
|
+ prop="isControlEarlyWarning"
|
|
|
+ class="form-item-style item-margin-bottom"
|
|
|
>
|
|
|
- <el-radio-group v-model="user_form.mobileAutoInputFlag">
|
|
|
+ <el-radio-group v-model="user_form.isControlEarlyWarning">
|
|
|
<el-radio :label="2">否</el-radio>
|
|
|
<el-radio :label="1">是</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item
|
|
|
- label="是否开启考试"
|
|
|
- class="form-item-style special item-margin-bottom"
|
|
|
- prop="isOpenExam"
|
|
|
+ label="是否零点清除"
|
|
|
+ class="form-item-style item-margin-bottom"
|
|
|
+ prop="isOpenVisitorClear"
|
|
|
>
|
|
|
- <el-radio-group v-model="user_form.isOpenExam">
|
|
|
+ <el-radio-group v-model="user_form.isOpenVisitorClear">
|
|
|
<el-radio :label="false">否</el-radio>
|
|
|
<el-radio :label="true">是</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
- <el-form-item
|
|
|
- v-if="dialogType != 'add'"
|
|
|
- label="屏保图片配置"
|
|
|
- prop="screenShowPhotos"
|
|
|
- class="form-item-style item-margin-bottom special"
|
|
|
- >
|
|
|
- <el-upload
|
|
|
- class="upload-demo"
|
|
|
- :multiple="false"
|
|
|
- :action="doUpload"
|
|
|
- :file-list="user_form.screenShowPhotos"
|
|
|
- list-type="picture"
|
|
|
- :http-request="doUploadAvatar"
|
|
|
- :before-upload="beforeAvatarUpload"
|
|
|
- accept="image/png,image/gif,image/jpg,image/jpeg"
|
|
|
+ <div class="flex">
|
|
|
+ <el-form-item
|
|
|
+ label="进出人员数据统计"
|
|
|
+ prop="openInOutStatistics"
|
|
|
+ class="form-item-style item-margin-bottom"
|
|
|
>
|
|
|
- <img
|
|
|
- src="../../assets/default-img.png"
|
|
|
- alt=""
|
|
|
- v-if="user_form.screenShowPhotos.length < 1"
|
|
|
- class="upload-img"
|
|
|
- />
|
|
|
+ <el-radio-group v-model="user_form.openInOutStatistics">
|
|
|
+ <el-radio :label="false">停用</el-radio>
|
|
|
+ <el-radio :label="true">启用</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="屏保图片配置"
|
|
|
+ prop="screenShowPhotos"
|
|
|
+ class="item-margin-bottom special form-item-style"
|
|
|
+ v-if="dialogType != 'add'"
|
|
|
+ >
|
|
|
+ <el-upload
|
|
|
+ class="upload-demo"
|
|
|
+ :multiple="false"
|
|
|
+ :action="doUpload"
|
|
|
+ :file-list="user_form.screenShowPhotos"
|
|
|
+ list-type="picture"
|
|
|
+ :http-request="doUploadAvatar"
|
|
|
+ :before-upload="beforeAvatarUpload"
|
|
|
+ accept="image/png,image/gif,image/jpg,image/jpeg"
|
|
|
+ >
|
|
|
+ <img
|
|
|
+ src="../../assets/default-img.png"
|
|
|
+ alt=""
|
|
|
+ v-if="user_form.screenShowPhotos.length < 1"
|
|
|
+ class="upload-img"
|
|
|
+ />
|
|
|
|
|
|
- <div v-else class="upload-img">
|
|
|
- <img :src="user_form.screenShowPhotos[0].url" alt="" />
|
|
|
- <span @click.stop="handleRemove" class="del-img">x</span>
|
|
|
- </div>
|
|
|
- </el-upload>
|
|
|
- </el-form-item>
|
|
|
+ <div v-else class="upload-img">
|
|
|
+ <img :src="user_form.screenShowPhotos[0].url" alt="" />
|
|
|
+ <span @click.stop="handleRemove('')" class="del-img"
|
|
|
+ >x</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-upload>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
<div class="custom-css" v-if="user_form.placeType != 1">
|
|
|
<el-form-item
|
|
|
label="打卡方式"
|
|
|
- class="form-item-style item-margin-bottom special"
|
|
|
+ class="form-item-style item-margin-bottom"
|
|
|
prop="clockWayType"
|
|
|
>
|
|
|
<el-radio-group v-model="user_form.clockWayType">
|
|
|
<el-radio label="0">关闭</el-radio>
|
|
|
- <el-radio label="1">通用</el-radio>
|
|
|
+ <el-radio
|
|
|
+ label="1"
|
|
|
+ :style="{
|
|
|
+ marginRight:
|
|
|
+ user_form.clockWayType === '1' &&
|
|
|
+ !!user_form.clockWayAdminAuthVO
|
|
|
+ ? '10px'
|
|
|
+ : '30px',
|
|
|
+ }">
|
|
|
+ 通用
|
|
|
+ </el-radio>
|
|
|
+ <span
|
|
|
+ v-if="
|
|
|
+ user_form.clockWayType === '1' &&
|
|
|
+ !!user_form.clockWayAdminAuthVO
|
|
|
+ "
|
|
|
+ style="margin-right: 30px"
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ class="el-icon-download form-item-style"
|
|
|
+ type="text"
|
|
|
+ @click="getAppKeyAndAppSecret2(true, user_form)"
|
|
|
+ >
|
|
|
+ 密钥
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ class="el-icon-download form-item-style"
|
|
|
+ type="text"
|
|
|
+ @click="getAppKeyAndAppSecret2(false)"
|
|
|
+ >
|
|
|
+ 文档
|
|
|
+ </el-button>
|
|
|
+ </span>
|
|
|
<el-radio label="2">钉钉</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
@@ -1314,6 +1370,7 @@ import Pagination from "@/components/Pagination";
|
|
|
import { checkRole } from "@/utils/checkRole";
|
|
|
import { uploadAdminInfoExcel, pictureLocal } from "@/api/ordinary_user";
|
|
|
import { batchDownload } from "@/utils/batchDownload";
|
|
|
+import { saveAs } from "file-saver"; //字符串保存成 TXT 文件保存到电脑
|
|
|
|
|
|
// secondary package based on el-pagination
|
|
|
|
|
@@ -1441,7 +1498,8 @@ export default {
|
|
|
password: null,
|
|
|
whiteVisitorType: ["1", "2"],
|
|
|
isControlEarlyWarning: 2,
|
|
|
- openInOutStatistics: false,
|
|
|
+ openInOutStatistics: false, // 是否开启 进出人员数据统计
|
|
|
+ faceLogHoldDays: 60, // 进出记录保留时间
|
|
|
noHideCloumn: ["1", "2", "3"],
|
|
|
isPush: 0,
|
|
|
addCustomList: [], //自定义字段
|
|
@@ -1466,7 +1524,7 @@ export default {
|
|
|
notAllowAgeEnd: 0, //不可预约年龄段-结束年龄
|
|
|
notAllowAgeStart: 0, //不可预约年龄段-开始年龄
|
|
|
screenShowPhotos: [],
|
|
|
- disinfectFlag: 0, //是否开启区域消杀
|
|
|
+ disinfectFlag: 0, //是否开启区域巡查
|
|
|
problemReportFlag: 0, //是否开启问题上报
|
|
|
isNeedRealAuthentication: true, //是否需要实名认证
|
|
|
wxLoginType: 1, //微信小程序登录方式
|
|
@@ -1543,6 +1601,13 @@ export default {
|
|
|
trigger: "change",
|
|
|
},
|
|
|
],
|
|
|
+ faceLogHoldDays: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请选择",
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
tagId: [
|
|
|
{ required: false, message: "请选择账号类别", trigger: "change" },
|
|
|
],
|
|
@@ -1696,6 +1761,13 @@ export default {
|
|
|
isNeedRealAuthentication: [
|
|
|
{ required: true, message: "请选择", trigger: "blur" },
|
|
|
],
|
|
|
+ mobileAutoInputFlag: [
|
|
|
+ { required: true, message: "请选择", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ isOpenExam: [{ required: true, message: "请选择", trigger: "blur" }],
|
|
|
+ isOpenVisitorClear: [
|
|
|
+ { required: true, message: "请选择", trigger: "blur" },
|
|
|
+ ],
|
|
|
topTitle: [
|
|
|
{
|
|
|
required: true,
|
|
@@ -2125,6 +2197,10 @@ export default {
|
|
|
name: "是否开启进出记录统计(true开启 false不开启)",
|
|
|
value: "openInOutStatistics",
|
|
|
},
|
|
|
+ {
|
|
|
+ name: "进出记录保留时间(单位/天)",
|
|
|
+ value: "faceLogHoldDays",
|
|
|
+ },
|
|
|
{ name: "二维码类型(0通用码 1员工码)", value: "codeType" },
|
|
|
{
|
|
|
name: "员工有效期(单位/天)",
|
|
@@ -2207,6 +2283,16 @@ export default {
|
|
|
this.placeAreaCode_list = res.data;
|
|
|
});
|
|
|
},
|
|
|
+ getAppKeyAndAppSecret2(boole, row = {}) {
|
|
|
+ if (boole) {
|
|
|
+ let str = `privateKey: ${row.clockWayAdminAuthVO.privateKey}`;
|
|
|
+ let strData = new Blob([str], { type: "text/plain;charset=utf-8" });
|
|
|
+ saveAs(strData, boole ? "密钥.txt" : "文档.txt");
|
|
|
+ } else {
|
|
|
+ window.location.href =
|
|
|
+ "https://tx.hz-hanghui.com:8088/yx-fyzd/static/浙江通用打卡进出记录推送文档国密SM4ECB模式加密.zip";
|
|
|
+ }
|
|
|
+ },
|
|
|
// 返回列表序号
|
|
|
indexMethod(index) {
|
|
|
return (this.page.pageNum - 1) * this.page.pageSize + index + 1;
|
|
@@ -2218,18 +2304,22 @@ export default {
|
|
|
.table {
|
|
|
margin-top: 15px;
|
|
|
}
|
|
|
+
|
|
|
.flex {
|
|
|
width: 100%;
|
|
|
display: flex;
|
|
|
justify-content: flex-start;
|
|
|
// align-items: center;
|
|
|
}
|
|
|
+
|
|
|
.margin-left {
|
|
|
margin: 10px 0 0 10px;
|
|
|
}
|
|
|
+
|
|
|
.input {
|
|
|
width: 150px;
|
|
|
}
|
|
|
+
|
|
|
/*批量导入按钮*/
|
|
|
.file {
|
|
|
margin: 10px 0 0 10px;
|
|
@@ -2244,6 +2334,7 @@ export default {
|
|
|
text-decoration: none;
|
|
|
text-indent: 0;
|
|
|
}
|
|
|
+
|
|
|
.file input {
|
|
|
position: absolute;
|
|
|
font-size: 14px;
|
|
@@ -2254,40 +2345,50 @@ export default {
|
|
|
opacity: 0;
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
+
|
|
|
.file:hover {
|
|
|
background: #aadffd;
|
|
|
border-color: #78c3f3;
|
|
|
color: #004974;
|
|
|
text-decoration: none;
|
|
|
}
|
|
|
+
|
|
|
.custom-css {
|
|
|
border: 1px solid #d6eaff;
|
|
|
padding: 10px;
|
|
|
border-radius: 10px;
|
|
|
margin-bottom: 10px;
|
|
|
}
|
|
|
+
|
|
|
.custom-css-item {
|
|
|
border-bottom: 2px dashed #e7ebf4;
|
|
|
padding: 20px 5px 45px 20px;
|
|
|
}
|
|
|
+
|
|
|
.custom-css-item:last-child {
|
|
|
border-bottom: none;
|
|
|
}
|
|
|
+
|
|
|
.height {
|
|
|
height: 190px;
|
|
|
}
|
|
|
+
|
|
|
.float {
|
|
|
float: right;
|
|
|
}
|
|
|
+
|
|
|
.margin-right {
|
|
|
margin-right: 8px !important;
|
|
|
}
|
|
|
+
|
|
|
.margin-left-hs {
|
|
|
margin-left: 30px;
|
|
|
}
|
|
|
+
|
|
|
.title {
|
|
|
margin-top: 25px;
|
|
|
margin-bottom: 5px;
|
|
|
+
|
|
|
.line {
|
|
|
width: 4px;
|
|
|
height: 14px;
|
|
@@ -2296,6 +2397,7 @@ export default {
|
|
|
display: inline-block;
|
|
|
margin-right: 8px;
|
|
|
}
|
|
|
+
|
|
|
span {
|
|
|
font-weight: 700;
|
|
|
font-size: 17px;
|
|
@@ -2306,12 +2408,15 @@ export default {
|
|
|
.item-margin-bottom {
|
|
|
margin-bottom: 0px !important;
|
|
|
}
|
|
|
+
|
|
|
::v-deep.el-form-item {
|
|
|
margin-bottom: 15px;
|
|
|
}
|
|
|
+
|
|
|
::v-deep.el-dialog__body {
|
|
|
padding: 0 20px;
|
|
|
}
|
|
|
+
|
|
|
.margin0 {
|
|
|
margin-bottom: 0px;
|
|
|
}
|
|
@@ -2319,21 +2424,26 @@ export default {
|
|
|
.address-width {
|
|
|
width: 33.3%;
|
|
|
}
|
|
|
+
|
|
|
.avatar {
|
|
|
/* width: 100px; */
|
|
|
height: 100px;
|
|
|
}
|
|
|
+
|
|
|
::v-deep.upload-demo {
|
|
|
display: flex;
|
|
|
+
|
|
|
.el-upload-list {
|
|
|
display: none !important;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.upload-img {
|
|
|
width: 100px;
|
|
|
height: 100px;
|
|
|
position: relative;
|
|
|
margin-bottom: 20px;
|
|
|
+
|
|
|
img {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
@@ -2341,18 +2451,21 @@ export default {
|
|
|
// border-radius: 12px;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.upload-img1 {
|
|
|
width: 253px;
|
|
|
height: 91px;
|
|
|
border: 1px solid #d6eaff;
|
|
|
box-sizing: border-box;
|
|
|
}
|
|
|
+
|
|
|
.upload-img2 {
|
|
|
width: 356px;
|
|
|
height: 91px;
|
|
|
border: 1px solid #99d3f5;
|
|
|
box-sizing: border-box;
|
|
|
}
|
|
|
+
|
|
|
.del-img {
|
|
|
display: inline-block;
|
|
|
width: 20px;
|
|
@@ -2373,6 +2486,7 @@ export default {
|
|
|
padding-left: 10px;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.el-dialog__body {
|
|
|
padding: 0 20px 10px;
|
|
|
}
|