Commit b1ec610c by li_hongchao

工作流串行页面重构,添加顺序标志

逻辑分库用户选择控件优化,添加当前选择个数显示
数据校验添加,如果未选择用户则权限分配给所有用户
数据正则表达式整理 VerifyDataType.js,包括邮箱、url、身份证、电话号码等
parent 52062c5d
......@@ -11,6 +11,7 @@ import './utils/CrashHandle'
import './plugins/axios'
import fHttp from './request/http.js'
import NetUtil from './netmgr/NetUtil'
import VerifyDataType from './utils/verify-data/VerifyDataType.js'
import App from './App.vue'
import router from './router'
import store from './store'
......@@ -42,7 +43,8 @@ Vue.prototype.$moment = moment
import uploader from 'vue-simple-uploader'
Vue.use(uploader)
import md5 from "js-md5";
import md5 from 'js-md5'
Vue.prototype.$md5 = md5
Vue.prototype.$driver = new Driver({
......@@ -71,6 +73,7 @@ window.util = Util
window.logger = LoggerUtil
window.user = UserUtil
window.fHttp = fHttp
window.verifyData = VerifyDataType
window.NetUtil = NetUtil
Vue.use(VueWechatTitle)
Vue.use(VueClipboard)
......
export default {
/**
* Description: 逻辑分库名称正则
* @author: li_hongchao
* @date: 2022/1/9 19:47
*/
_LJFKM: /(([\u4E00-\u9FA5·]{2,})|([a-zA-Z]{4,}))/,
_NUMBER: /^(0|([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$/,
/**
* Description: 自然数
* @author: li_hongchao
* @date: 2022/1/9 19:06
* ^(0|([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"
*/
_NATURAL_NUMBER: /^\\+?[1-9][0-9]*$/,
/**
* Description: 校验中文姓名和英文姓名
* @author: li_hongchao
* @date: 2022/1/9 19:07
*/
_NAME: /(([\u4E00-\u9FA5·]{1,17})|([a-zA-Z]{1,17}))/,
/**
* Description: 18位身份证号
* @author: li_hongchao
* @date: 2022/1/9 19:41
*/
_18_IDCard: /^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X|x)$/,
/**
* Description:15位身份证号
* @author: li_hongchao
* @date: 2022/1/9 19:42
*/
_15_IDCard: /^[1-9]\\d{7}((0\\[1-9])|(1[0-2]))(([0\\[1-9]|1\\d|2\\d])|3[0-1])\\d{2}([0-9]|x|X){1}$/,
/**
* Description: URL
* @author: li_hongchao
* @date: 2022/1/9 19:42
*/
_URL: /(http|https):\/\/([\w.]+\/?)\S*/,
/**
* Description: QQ号
* @author: li_hongchao
* @date: 2022/1/9 19:42
*/
_QQ: /^[1-9]\\d{4,10}$/,
/**
* Description: 一个或多个汉字
* @author: li_hongchao
* @date: 2022/1/9 19:42
*/
_CHINESE: /^[\\u0391-\\uFFE5]+$/,
/**
* Description: 手机号码
* @author: li_hongchao
* @date: 2022/1/9 19:42
*/
_MOBILE_PHONE: /^1[3|4|5|8][0-9]\\d{8}$/,
/**
* Description: 所有电话格式校验
* @author: li_hongchao
* @date: 2022/1/9 19:42
*/
_ALL_PHONE: /^((1[0,1,2,3,4,5,6,7,8,9]))\\d{9}|((\\d{4})?(\\-)?\\d{7})$/,
/**
* Description: 邮箱验证
* @author: li_hongchao
* @date: 2022/1/9 19:43
*/
_MAIL: /^[A-Za-z0-9\\u4e00-\\u9fa5]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$"/,
/**
* Description: 邮政编码
* @author: li_hongchao
* @date: 2022/1/9 19:43
*/
_POST_CODE: /^[1-9]\\d{5}$/,
}
......@@ -53,9 +53,7 @@
<div
v-for="item in scope.row.groups"
:class="{divtext:item.type === 1}"
:title="item.name"
:key="item.id"
>
:title="item.name">
<div v-if="item.type === 1 && item.user && item.user.length >0">
<el-tooltip
class="item"
......
......@@ -18,27 +18,36 @@
<el-dropdown-menu slot="dropdown" class="select-list-content">
<div class="select-list-content-left">
<div :class="{'list-item':true,'list-item-focus':isYh}" @click="toggleYh(true)">用户</div>
<div :class="{'list-item':true,'list-item-focus':!isYh}" @click="toggleYh(false)">用户组</div>
<div :class="{'list-item':true,'list-item-focus':isYh}" @click="toggleYh(true)">
用户
<div v-if="userSelectSet.size > 0" style="position: absolute; right:4px;">
{{userSelectSet.size}}
</div>
</div>
<div :class="{'list-item':true,'list-item-focus':!isYh}" @click="toggleYh(false)">
用户组
<div v-if="userGroupSelectSet.size > 0" style="position: absolute; right:4px;">
{{userGroupSelectSet.size}}
</div>
</div>
</div>
<div class="select-list-content-right">
<div class="top-div">
<div v-for="(item,index) in getItemArr()" class="top-item" @click="selectItem(item)"
<div v-for="(item,index) in getItemArr()" class="top-item" @click.stop="selectItem(item)"
:key="index">
<span v-if='item.name.length > 6'>
<el-tooltip effect="dark" :content="item.name" placement="top">
<div class="span-name">
{{ item.name.slice(0,6) + '...'}}
</div>
</el-tooltip>
</span>
<span v-else>
{{ item.name}}
</span>
<div v-show="isSelect(item)" class="look" style="float: right;margin-right: 17px;">
<i class="iconfont icon-duihao"></i>
<!-- <span v-if='item.name.length > 7'>-->
<!-- <el-tooltip effect="dark" :content="item.name" placement="right">-->
<!-- <div class="span-name">-->
<!-- {{ item.name.slice(0,7) + '...'}}-->
<!-- </div>-->
<!-- </el-tooltip>-->
<!-- </span>-->
<!-- <span v-else>{{ item.name}}</span>-->
<span style="margin-right: 36px;">{{ item.name}}</span>
<div v-show="isSelect(item)" class="look"
style="position: absolute; top:0px; right:16px;">
<i class=" iconfont icon-duihao"></i>
</div>
</div>
......@@ -182,6 +191,29 @@ export default {
})
}
},
getAllUsers() {
let result = []
if (this.userArr.length > 0) {
this.userArr.forEach(item => {
result.push({
id: item.id,
name: item.name,
type: 0
})
})
}
if (this.userGroupArr.length > 0) {
this.userGroupArr.forEach(item => {
result.push({
id: item.id,
name: item.name,
type: 1
})
})
}
return result
},
cancel() {
if (this.$refs.dropdown) {
this.$refs.dropdown.visible = false
......@@ -331,20 +363,21 @@ export default {
color: #333333;
line-height: 19px;
padding: 0px 0px 0px 13px;
padding: 0px 0px 0px 8px;
display: flex;
align-items: center;
justify-content: left;
border: 2px none white;
border-left-style: solid;
border-left: 2px solid white;
position: relative;
}
.list-item-focus {
border: 2px none #055FE7;
border-left-style: solid;
border-left: 2px solid #055FE7;
color: #055FE7;
}
......@@ -363,14 +396,16 @@ export default {
.top-item {
width: 100%;
height: 40px;
background: #FFFFFF;
/*background: #FFFFFF;*/
background: transparent;
font-size: 14px;
font-family: HarmonyOS_Sans_SC;
color: #333333;
line-height: 40px;
padding-left: 16px;
position: relative;
}
.top-item:hover {
......@@ -378,8 +413,8 @@ export default {
}
.span-name {
overflow: hidden;
float: left;
/*overflow: hidden;*/
/*float: left;*/
}
}
......
......@@ -16,7 +16,7 @@
//margin-bottom: 40px;
top: 50%;
left: 50%;
transform: translate(-40%, -50%);
transform: translate(-50%, -50%);
z-index: 1000;
width: 892px;
//height: 830px;
......@@ -92,11 +92,6 @@
max-height: 600px;
overflow: scroll;
}
.addbtns {
.el-form-item__content {
}
}
}
.info-item {
......@@ -159,7 +154,60 @@
}
}
.dui-lie-ming-cheng-layout {
.GongZuoDuiLieChuanXing { // 串行
display: inline-flex;
align-items: center;
justify-content: center;
position: relative;
float: left;
.itemBox {
min-width: 96px;
height: 32px;
display: inline-block;
float: left;
position: relative;
background: #F6F8FA;
box-shadow: 4px 4px 4px 0px rgba(193, 216, 251, 0.8), -4px -4px 4px 0px #FFFFFF;
border-radius: 4px;
color: #333333;
font-size: 14px;
font-family: MicrosoftYaHei;
line-height: 32px;
.dlIndexBg { // 序号背景
position: absolute;
width: 16px;
height: 19px;
}
.dlIndex { // 序号
position: absolute;
width: 16px;
height: 14px;
font-size: 12px;
font-family: MicrosoftYaHei-Bold, MicrosoftYaHei;
font-weight: bold;
color: #FFFFFF;
line-height: 14px;
text-align: center;
}
.iconChuanXing {
position: absolute;
color: #055fe7;
top: -6px;
right: -6px;
cursor: pointer;
}
}
}
.dlNoSelect {
color: #999999;
}
......@@ -168,17 +216,14 @@
height: 32px;
border-radius: 4px;
border: 1px solid #AEB5C2;
//margin-right: 4px;
margin-right: 4px;
margin-left: 20px;
display: inline-block;
background: #f6f8fa;
//box-shadow: 4px 4px 4px 0px rgba(193, 216, 251, 0.8), -4px -4px 4px 0px #ffffff;
position: relative;
text-align: center;
margin-right: 5px;
//margin-top: 7px;
> div {
line-height: 32px;
......@@ -236,7 +281,7 @@
border: 1px dashed #aeb5c2 !important;
position: relative !important;
display: inline-block;
margin-right: 5px;
margin-right: 4px;
margin-left: 20px;
border-radius: 4px;
}
......@@ -262,145 +307,14 @@
line-height: 22px;
}
.chu-li-dui-lie {
width: 96px;
height: 32px;
background: #F6F8FA;
box-shadow: 4px 4px 4px 0px rgba(193, 216, 251, 0.8), -4px -4px 4px 0px #FFFFFF;
border-radius: 4px;
font-size: 14px;
font-family: HarmonyOS_Sans_SC;
color: #999999;
line-height: 22px;
//-webkit-background-clip: text;
//-webkit-text-fill-color: transparent;
margin-left: 30px;
.jiantou {
width: 14px;
height: 8px;
display: inline-flex;
align-items: center;
justify-content: center;
}
//.gong-zuo-dui-lie-chuanxing { // 串行
// min-width: 96px;
// height: 32px;
// margin-right: 25px;
// display: inline-block;
//
// background: #F6F8FA;
// border: 1px solid #AEB5C2;
// box-shadow: 4px 4px 4px 0px rgba(193, 216, 251, 0.8), -4px -4px 4px 0px #FFFFFF;
// border-radius: 4px;
// position: relative;
// text-align: center;
//
// > div {
// line-height: 32px;
// width: 100%;
// overflow: hidden;
// text-overflow: ellipsis;
// white-space: nowrap;
// box-sizing: border-box;
// padding: 0 10px;
//
// display: flex;
// align-items: center;
// justify-content: center;
//
// .line {
// margin-right: 14px;
// margin-left: 14px;
//
// width: 1px;
// height: 16px;
// background: #D8D8D8;
// border: 1px solid #979797;
// }
//
// //.gztl-tag {
// // width: 32px;
// // height: 20px;
// // background: #D8D8D8;
// // border-radius: 2px;
// //
// // margin-right: 8px;
// // font-size: 12px;
// // font-family: HarmonyOS_Sans_SC;
// // color: #FFFFFF;
// // line-height: 16px;
// //
// // display: inline-flex;
// // align-items: center;
// // justify-content: center;
// //
// //}
// //
// //.zhengcha { /* 案件 正查*/
// // background: #08BD9E;
// //}
// //
// //.chuancha { /* 案件 串查*/
// // background: #055FE7;
// //}
// //
// //.chachong { /* 人员 查重*/
// // background: #FFA219;
// //}
// //
// //.daocha { /* 人员 倒查*/
// // background: #FE0000;
// //}
//
// }
//
// > .icon {
// position: absolute;
// top: -6px;
// right: -6px;
// cursor: pointer;
// }
//}
.gong-zuo-dui-lie-chuanxing { // 串行
min-width: 96px;
height: 32px;
margin-right: 0px;
display: inline-block;
background: #F6F8FA;
border: 1px solid #AEB5C2;
box-shadow: 4px 4px 4px 0px rgba(193, 216, 251, 0.8), -4px -4px 4px 0px #FFFFFF;
border-radius: 4px;
position: relative;
text-align: center;
margin-left: 8px;
> div {
line-height: 32px;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
box-sizing: border-box;
padding: 0 10px;
display: flex;
align-items: center;
justify-content: center;
margin-left: 10px;
margin-right: 10px;
}
> .icon {
position: absolute;
top: -6px;
right: -6px;
cursor: pointer;
}
}
.kk {
margin-left: 73px;
......@@ -408,11 +322,8 @@
.gong-zuo-dui-lie-bingxing-item {
height: 52px;
display: flex;
vertical-align: middle;
//align-items: center;
//justify-content: center; DialogBg
.gong-zuo-dui-lie-bingxing-item-left {
width: 1px;
......@@ -428,39 +339,49 @@
background: transparent;
}
.mid-line {
width: 14px;
height: 2px;
background: linear-gradient(90deg, #7CD5FF 0%, #49AFFF 100%);
}
.mid-line-hide {
background: transparent;
}
.mid-circle {
width: 7px;
height: 7px;
background: #FFFFFF;
border: 1px solid #49AFFF;
border-radius: 100px;
}
.mid-circle-hide {
border: 1px solid transparent;
background: transparent;
}
.gong-zuo-dui-lie-bingxing-item-right {
width: auto;
height: 52px;
/*background: black;*/
display: flex;
align-items: center;
justify-content: center;
.gong-zuo-dui-lie-bingxing { // 并行
min-width: 96px;
height: 32px;
margin-left: 12px;
display: inline-block;
background: #F6F8FA;
border: 1px solid #AEB5C2;
box-shadow: 4px 4px 4px 0px rgba(193, 216, 251, 0.8), -4px -4px 4px 0px #FFFFFF;
border-radius: 4px;
//border: 1px solid #AEB5C2;
border-radius: 4px;
position: relative;
text-align: center;
......@@ -480,6 +401,7 @@
> .icon {
position: absolute;
color: #055fe7;
top: -6px;
right: -6px;
cursor: pointer;
......@@ -491,8 +413,8 @@
.gzdl-line {
margin-right: 14px;
margin-left: 14px;
margin-right: 12px;
margin-left: 12px;
width: 1px;
height: 16px;
......@@ -568,6 +490,11 @@
}
}
.divider-line {
margin: 0px 31px 0px 32px;
height: 2px;
border: 1px solid #E6E6E8;
}
.slide-fade-leave-active,
.slide-fade-enter-active {
......@@ -590,15 +517,15 @@
}
}
.el-form-item__error {
left: 100%;
width: 100%;
top: 50%;
box-sizing: border-box;
transform: translateY(-50%);
padding-left: 10px;
padding-top: 0 !important;
}
//.el-form-item__error {
// left: 0%;
// width: 100%;
// top: 100%;
// box-sizing: border-box;
// transform: translateY(-50%);
// padding-left: 10px;
// padding-top: 0 !important;
//}
.el-form-item__label {
position: relative;
......
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