bug修改
This commit is contained in:
+1
-1
@@ -46,7 +46,7 @@ const queryDepartTreeList = (params)=>getAction('/sys/sysDepart/queryTreeList',p
|
||||
const queryIdTree = (params)=>getAction('/sys/sysDepart/queryIdTree',params)
|
||||
const queryParentName = (params)=>getAction('/sys/sysDepart/queryParentName',params)
|
||||
const searchByKeywords = (params)=>getAction('/sys/sysDepart/searchBy',params)
|
||||
const deleteByDepartId = (params)=>deleteAction('/sys/sysDepart/delete',params)
|
||||
const deleteByDepartId = (params)=>getAction('/sys/sysDepart/delete',params)
|
||||
|
||||
//二级部门管理
|
||||
const queryDepartPermission = (params)=>getAction('/sys/permission/queryDepartPermission',params)
|
||||
|
||||
@@ -108,6 +108,7 @@ export default {
|
||||
},
|
||||
close() {
|
||||
this.visible = false
|
||||
this.selectedCompany = {}
|
||||
},
|
||||
onSelectChange(selectedRowKeys, selectionRows) {
|
||||
this.selectedCompany = selectionRows[0]
|
||||
|
||||
@@ -91,7 +91,6 @@ export default {
|
||||
*/
|
||||
addCompanyOk(value) {
|
||||
let { id, companyName } = value
|
||||
console.log({ id, companyName })
|
||||
this.$emit('change', { id, companyName })
|
||||
}
|
||||
},
|
||||
|
||||
@@ -72,8 +72,9 @@ export default {
|
||||
rules: [
|
||||
{ required: true, message: '请输入新密码!' },
|
||||
{
|
||||
pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,
|
||||
message: '密码由8位数字、大小写字母和特殊符号组成!'
|
||||
//原正则,3种组合时不会提示 /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/
|
||||
pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,30}$/,
|
||||
message: '密码由8位及以上数字、大小写字母和特殊符号组成!'
|
||||
},
|
||||
{ validator: this.validateToNextPassword }
|
||||
]
|
||||
@@ -82,8 +83,8 @@ export default {
|
||||
rules: [
|
||||
{ required: true, message: '请确认新密码!' },
|
||||
{
|
||||
pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,
|
||||
message: '密码由8位数字、大小写字母和特殊符号组成!'
|
||||
pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,30}$/,
|
||||
message: '密码由8位及以上数字、大小写字母和特殊符号组成!'
|
||||
},
|
||||
{ validator: this.validateToNextPassword }
|
||||
]
|
||||
|
||||
@@ -322,7 +322,7 @@ export const JeroListMixin = {
|
||||
}
|
||||
this.loadData()
|
||||
} else {
|
||||
const messageArr = info.file.response.message.split('</br>')
|
||||
const messageArr = info.file.response.message.split('<br/>')
|
||||
let htmlDom = []
|
||||
messageArr.map(tt => {
|
||||
if (tt) {
|
||||
|
||||
@@ -9,10 +9,12 @@ export function isEmail(s) {
|
||||
|
||||
/**
|
||||
* 电话号码 座机
|
||||
* 原正则:/^([0-9]{3,4}-)[0-9]{7,8}$/
|
||||
* 现正则:15位数字、横杠
|
||||
* @param {*} s
|
||||
*/
|
||||
export function isPhone(s) {
|
||||
return /^([0-9]{3,4}-)[0-9]{7,8}$/.test(s)
|
||||
return /^([0-9-]{0,15})$/.test(s)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,8 +3,8 @@ import {phoneReg, isEmail, chineseReg} from '@/utils/validate'
|
||||
|
||||
// 手机校验的错误信息提示
|
||||
const phoneErrMsg = {
|
||||
err1: '请输入手机号',
|
||||
err2: '请输入正确格式的手机号'
|
||||
err1: '请输入手机号码',
|
||||
err2: '请输入正确格式的手机号码'
|
||||
}
|
||||
// 邮箱校验错误提示信息
|
||||
const emailErrMsg = {
|
||||
@@ -13,7 +13,7 @@ const emailErrMsg = {
|
||||
}
|
||||
// 用户名校验信息提示
|
||||
const usernameErrMsg = {
|
||||
err1: '请输入用户名'
|
||||
err1: '请输入用户账号'
|
||||
}
|
||||
// 角色编码校验信息提示
|
||||
const roleCodeErrMsg = {
|
||||
|
||||
@@ -41,8 +41,8 @@
|
||||
<a-form-item label="公司电话" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入公司电话"
|
||||
v-decorator="['companyPhone', validatorRules.companyPhone]"
|
||||
:maxLength='15'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
:maxLength='16'
|
||||
@change="e => e.target.value = (e.target.value.replace(/[^0-9-]/g, '')).trim()"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
@@ -340,31 +340,34 @@ export default {
|
||||
* @param callback
|
||||
*/
|
||||
checkPhone(rules, value, callback) {
|
||||
if (phoneReg(value)) {
|
||||
// 是否编辑
|
||||
if (this.model.id) {
|
||||
// 编辑前后手机号是否一致,一致则不进行验重
|
||||
if (value === this.model.phone) {
|
||||
callback()
|
||||
return
|
||||
if (value) {
|
||||
if (phoneReg(value)) {
|
||||
// 是否编辑
|
||||
if (this.model.id) {
|
||||
// 编辑前后手机号是否一致,一致则不进行验重
|
||||
if (value === this.model.phone) {
|
||||
callback()
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
const param = {
|
||||
confusionCode: 'pay_contacts_management_phone',
|
||||
fieldVal: value,
|
||||
encrypt: 1
|
||||
}
|
||||
// 唯一性校验
|
||||
duplicateCheck(param).then(res => {
|
||||
if (res.success) {
|
||||
callback()
|
||||
} else {
|
||||
callback('手机号已存在')
|
||||
const param = {
|
||||
confusionCode: 'pay_contacts_management_phone',
|
||||
fieldVal: value,
|
||||
encrypt: 1
|
||||
}
|
||||
})
|
||||
return
|
||||
// 唯一性校验
|
||||
duplicateCheck(param).then(res => {
|
||||
if (res.success) {
|
||||
callback()
|
||||
} else {
|
||||
callback('手机号已存在')
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
callback('请输入正确的手机号')
|
||||
}
|
||||
callback('请输入正确手机号')
|
||||
callback('请输入手机号')
|
||||
},
|
||||
/**
|
||||
* 邮箱校验
|
||||
@@ -373,11 +376,14 @@ export default {
|
||||
* @param callback
|
||||
*/
|
||||
checkMail(rules, value, callback) {
|
||||
if (isEmail(value)) {
|
||||
callback()
|
||||
} else {
|
||||
callback('请输入正确邮箱')
|
||||
if (value) {
|
||||
if (isEmail(value)) {
|
||||
callback()
|
||||
} else {
|
||||
callback('请输入正确的邮箱')
|
||||
}
|
||||
}
|
||||
callback('请输入邮箱')
|
||||
},
|
||||
/**
|
||||
* 邮政编码校验
|
||||
@@ -386,11 +392,14 @@ export default {
|
||||
* @param callback
|
||||
*/
|
||||
checkPostcode(rules, value, callback) {
|
||||
if (postcode(value)) {
|
||||
callback()
|
||||
} else {
|
||||
callback('请输入正确格式的邮编')
|
||||
if (value) {
|
||||
if (postcode(value)) {
|
||||
callback()
|
||||
} else {
|
||||
callback('请输入正确格式的邮政编码')
|
||||
}
|
||||
}
|
||||
callback('请输入邮政编码')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -244,7 +244,7 @@ export default {
|
||||
],
|
||||
url: {
|
||||
list: '/meeting/workGroupMeeting/page',
|
||||
delete: '//meeting/workGroupMeeting/delete',
|
||||
delete: '/meeting/workGroupMeeting/delete',
|
||||
deleteBatch: '/meeting/workGroupMeeting/deleteBatch',
|
||||
exportXlsUrl: '/meeting/workGroupMeeting/exportXls',
|
||||
},
|
||||
|
||||
@@ -173,6 +173,12 @@ export default {
|
||||
scopedSlots: { customRender: 'action' }
|
||||
}
|
||||
],
|
||||
queryParam: {
|
||||
year: new Date().getFullYear().toString()
|
||||
},
|
||||
lastQueryParam: {
|
||||
year: new Date().getFullYear().toString()
|
||||
},
|
||||
operateData: [] // 进行操作权限校验时使用的数据
|
||||
}
|
||||
},
|
||||
@@ -292,7 +298,16 @@ export default {
|
||||
canOperate: record.canOperate
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
searchReset() {
|
||||
this.lastQueryParam = {
|
||||
year: new Date().getFullYear().toString()
|
||||
}
|
||||
this.queryParam = {
|
||||
year: new Date().getFullYear().toString()
|
||||
}
|
||||
this.loadData(1)
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
@cancel="handleCancel"
|
||||
cancelText="关闭">
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form :form="form" v-if="memberList.length > 0">
|
||||
<a-form :form="form" v-if="memberList[0].children.length > 0">
|
||||
<a-row>
|
||||
<a-col :span="2"></a-col>
|
||||
<a-col :span="20">
|
||||
@@ -66,7 +66,7 @@ export default {
|
||||
default: false
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
watch: {
|
||||
visible(val) {
|
||||
if (val) {
|
||||
this.initData()
|
||||
@@ -87,7 +87,10 @@ export default {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 17 }
|
||||
},
|
||||
memberList: [], // 成员树
|
||||
memberList: [{
|
||||
name: '全选',
|
||||
children: []
|
||||
}], // 成员树
|
||||
checkedKeys: [], // 已选中的成员数组
|
||||
replaceFields: {
|
||||
children: 'children',
|
||||
@@ -97,7 +100,7 @@ export default {
|
||||
},
|
||||
validatorRules: {
|
||||
memberName: {
|
||||
rules: [{ required: true, message: '请选择成员单位'}],
|
||||
rules: [{ required: true, message: '请选择成员单位' }],
|
||||
validateTrigger: 'change'
|
||||
}
|
||||
},
|
||||
@@ -120,7 +123,7 @@ export default {
|
||||
}
|
||||
distributeMemberList(param).then(res => {
|
||||
if (res.success) {
|
||||
this.memberList = res.result
|
||||
this.memberList[0].children = res.result
|
||||
} else {
|
||||
this.$message.warn(res.message)
|
||||
}
|
||||
@@ -141,14 +144,17 @@ export default {
|
||||
close() {
|
||||
this.$emit('update:visible', false)
|
||||
this.$emit('close')
|
||||
this.memberList = []
|
||||
this.memberList = [{
|
||||
name: '全选',
|
||||
children: []
|
||||
}]
|
||||
},
|
||||
handleOk() {
|
||||
if (this.confirmLoading) {
|
||||
return
|
||||
}
|
||||
this.confirmLoading = true
|
||||
if (this.memberList.length === 0) {
|
||||
if (this.memberList[0].children.length === 0) {
|
||||
this.$message.warn('当前工作组暂无成员,无法分发文件')
|
||||
this.confirmLoading = false
|
||||
return
|
||||
@@ -158,16 +164,15 @@ export default {
|
||||
this.confirmLoading = false
|
||||
return
|
||||
}
|
||||
let str = this.checkedKeys.join(',').toString()
|
||||
console.log(str)
|
||||
this.form.setFieldsValue({memberName: str})
|
||||
let str = this.checkedKeys.slice(1).join(',').toString()
|
||||
this.form.setFieldsValue({ memberName: str })
|
||||
this.form.validateFields((err) => {
|
||||
if (!err) {
|
||||
this.confirmLoading = true
|
||||
if (this.isBatch) {
|
||||
// 批量分发
|
||||
const formData = {
|
||||
contactsIds: this.checkedKeys.join(','),
|
||||
contactsIds: str,
|
||||
dataIds: this.recordId,
|
||||
projectId: this.projectId,
|
||||
projectType: this.projectType
|
||||
|
||||
@@ -98,8 +98,15 @@
|
||||
</a-col>
|
||||
<a-col :xl="12" :sm="24" v-if="chargeWayType === 3">
|
||||
<a-form-item label="收费通知号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-radio-group v-decorator="['chargeNoticeNo',validatorRules.chargeNoticeNo]"
|
||||
@change="handleChargeNoticeChange" :options="chargeNoticeList">
|
||||
<a-radio-group
|
||||
class="charge-notice-no"
|
||||
v-decorator="['chargeNoticeNo',validatorRules.chargeNoticeNo]"
|
||||
@change="handleChargeNoticeChange">
|
||||
<a-radio v-for="item in chargeNoticeList" :key="item.value" :value="item.value">
|
||||
<a-tooltip :title="item.label">
|
||||
{{ item.label }}
|
||||
</a-tooltip>
|
||||
</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -271,19 +278,19 @@ export default {
|
||||
model: {},
|
||||
labelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 6 }
|
||||
sm: { span: 8 }
|
||||
},
|
||||
wrapperCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 18 }
|
||||
sm: { span: 16 }
|
||||
},
|
||||
remarksLabelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 3 }
|
||||
sm: { span: 4 }
|
||||
},
|
||||
remarksWrapperCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 21 }
|
||||
sm: { span: 20 }
|
||||
},
|
||||
validatorRules: {
|
||||
workingGroupId: {
|
||||
@@ -641,6 +648,27 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style scoped lang="less">
|
||||
.charge-notice-no {
|
||||
width: 100%;
|
||||
|
||||
/deep/ .ant-radio-wrapper {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
|
||||
span.ant-radio + * {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
|
||||
span {
|
||||
vertical-align: bottom;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -8,7 +8,8 @@
|
||||
<a-row style="margin-left: 14px" class="table-operator">
|
||||
<a-button @click="handleAdd(1)" type="primary" v-has="'sys:depart:add'">新增</a-button>
|
||||
<a-button @click="handleAdd(2)" type="primary" v-has="'sys:depart:addLowerLevel'">添加下级</a-button>
|
||||
<a-button type="primary" icon="download" @click="handleExportXls('部门信息')" v-has="'sys:depart:export'">导出</a-button>
|
||||
<a-button type="primary" icon="download" @click="handleExportXls('部门信息')" v-has="'sys:depart:export'">导出
|
||||
</a-button>
|
||||
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader"
|
||||
:action="importExcelUrl" @change="handleImportExcel" v-has="'sys:depart:import'">
|
||||
<a-button type="primary" icon="import">导入</a-button>
|
||||
@@ -23,7 +24,7 @@
|
||||
<a v-if="this.currSelected.title" style="margin-left: 10px" @click="onClearSelected">取消选择</a>
|
||||
</div>
|
||||
</a-alert>
|
||||
<a-input-search @search="onSearch" style="width:100%;margin-top: 10px" placeholder="请输入部门名称"/>
|
||||
<a-input-search @search="onSearch" allowClear style="width:100%;margin-top: 10px" placeholder="请输入部门名称"/>
|
||||
<!-- 树-->
|
||||
<a-col :md="10" :sm="24">
|
||||
<template>
|
||||
@@ -47,7 +48,7 @@
|
||||
<a-menu slot="overlay">
|
||||
<a-menu-item @click="handleAdd(3)" key="1" v-has="'sys:depart:add'">添加</a-menu-item>
|
||||
<a-menu-item @click="handleDelete" key="2" v-has="'sys:depart:del'">删除</a-menu-item>
|
||||
<a-menu-item @click="closeDrop" key="3">取消</a-menu-item>
|
||||
<!-- <a-menu-item @click="closeDrop" key="3">取消</a-menu-item>-->
|
||||
</a-menu>
|
||||
</a-dropdown>
|
||||
</template>
|
||||
@@ -73,7 +74,7 @@
|
||||
</div>
|
||||
<!---- author:os_chengtgen -- date:20190827 -- for:切换父子勾选模式 =======------>
|
||||
</a-col>
|
||||
<a-col :md="14" :sm="24" style="background: #fff;padding: 24px;">
|
||||
<a-col :md="14" :sm="24" style="background: #fff;padding: 0 24px 24px 24px;">
|
||||
<a-tabs defaultActiveKey="1" @change="callback">
|
||||
<a-tab-pane tab="基本信息" key="1">
|
||||
<a-card :bordered="false" v-if="selectedKeys.length>0">
|
||||
@@ -103,28 +104,28 @@
|
||||
@change="event => event.target.value = event.target.value.trim()" :maxLength="50"
|
||||
v-decorator="['orgCode', validatorRules.orgCode ]"/>
|
||||
</a-form-item>
|
||||
<!-- <a-form-item-->
|
||||
<!-- :labelCol="labelCol"-->
|
||||
<!-- :wrapperCol="wrapperCol"-->
|
||||
<!-- label="机构类型">-->
|
||||
<!-- <template v-if="orgCategoryDisabled">-->
|
||||
<!-- <a-radio-group v-decorator="['orgCategory',validatorRules.orgCategory]" placeholder="请选择机构类型">-->
|
||||
<!-- <a-radio value="1">-->
|
||||
<!-- 公司-->
|
||||
<!-- </a-radio>-->
|
||||
<!-- </a-radio-group>-->
|
||||
<!-- </template>-->
|
||||
<!-- <template v-else>-->
|
||||
<!-- <a-radio-group v-decorator="['orgCategory',validatorRules.orgCategory]" placeholder="请选择机构类型">-->
|
||||
<!-- <a-radio value="2">-->
|
||||
<!-- 部门-->
|
||||
<!-- </a-radio>-->
|
||||
<!-- <a-radio value="3">-->
|
||||
<!-- 岗位-->
|
||||
<!-- </a-radio>-->
|
||||
<!-- </a-radio-group>-->
|
||||
<!-- </template>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- <a-form-item-->
|
||||
<!-- :labelCol="labelCol"-->
|
||||
<!-- :wrapperCol="wrapperCol"-->
|
||||
<!-- label="机构类型">-->
|
||||
<!-- <template v-if="orgCategoryDisabled">-->
|
||||
<!-- <a-radio-group v-decorator="['orgCategory',validatorRules.orgCategory]" placeholder="请选择机构类型">-->
|
||||
<!-- <a-radio value="1">-->
|
||||
<!-- 公司-->
|
||||
<!-- </a-radio>-->
|
||||
<!-- </a-radio-group>-->
|
||||
<!-- </template>-->
|
||||
<!-- <template v-else>-->
|
||||
<!-- <a-radio-group v-decorator="['orgCategory',validatorRules.orgCategory]" placeholder="请选择机构类型">-->
|
||||
<!-- <a-radio value="2">-->
|
||||
<!-- 部门-->
|
||||
<!-- </a-radio>-->
|
||||
<!-- <a-radio value="3">-->
|
||||
<!-- 岗位-->
|
||||
<!-- </a-radio>-->
|
||||
<!-- </a-radio-group>-->
|
||||
<!-- </template>-->
|
||||
<!-- </a-form-item>-->
|
||||
<a-form-item
|
||||
:labelCol="labelCol"
|
||||
:wrapperCol="wrapperCol"
|
||||
@@ -154,7 +155,7 @@
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
<div class="anty-form-btn">
|
||||
<a-button @click="emptyCurrForm" class="reset-button" htmlType="button" icon="sync">重置</a-button>
|
||||
<a-button @click="emptyCurrForm" class="reset-button" htmlType="button" icon="sync">重置</a-button>
|
||||
<a-button @click="submitCurrForm" :disabled="disabledStatus" type="primary" htmlType="button"
|
||||
icon="form">保存
|
||||
</a-button>
|
||||
@@ -189,6 +190,7 @@ import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||
import { checkDepartName } from '@/utils/validateOnly'
|
||||
import PageHeaderTitle from '../../components/layouts/PageHeaderTitle'
|
||||
import IconImg from '@/assets/imgs/icon/icon_system.png'
|
||||
import { downloadFile } from '../../api/manage'
|
||||
// 表头
|
||||
const columns = [
|
||||
{
|
||||
@@ -414,6 +416,21 @@ export default {
|
||||
}
|
||||
|
||||
},
|
||||
/**
|
||||
* 导出
|
||||
* @param fileName
|
||||
*/
|
||||
handleExportXls(fileName) {
|
||||
if (!fileName || typeof fileName != 'string') {
|
||||
fileName = '导出文件'
|
||||
}
|
||||
let param = this.getQueryParams()
|
||||
if (this.checkedKeys && this.checkedKeys.length > 0) {
|
||||
param['selections'] = this.checkedKeys.join(',')
|
||||
}
|
||||
console.log('导出参数', param)
|
||||
downloadFile(this.url.exportXlsUrl, fileName + '.xls', param)
|
||||
},
|
||||
nodeModalOk() {
|
||||
this.loadTree()
|
||||
},
|
||||
@@ -655,6 +672,11 @@ export default {
|
||||
</script>
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
|
||||
/deep/ .ant-card-body {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
|
||||
.ant-card-body .table-operator {
|
||||
margin: 15px;
|
||||
}
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row :gutter="12">
|
||||
<a-col :md="7" :sm="8">
|
||||
<a-form-item label="字典名称" :labelCol="{span: 6}" :wrapperCol="{span: 14, offset: 1}">
|
||||
<a-form-item label="字典名称" :labelCol="{span: 6}" :wrapperCol="{span: 14}">
|
||||
<a-input placeholder="请输入字典名称" v-model="queryParam.dictName"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="7" :sm="8">
|
||||
<a-form-item label="字典编号" :labelCol="{span: 6}" :wrapperCol="{span: 14, offset: 1}">
|
||||
<a-form-item label="字典编号" :labelCol="{span: 6}" :wrapperCol="{span: 14}">
|
||||
<a-input placeholder="请输入字典编号" v-model="queryParam.dictCode"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
@@ -14,12 +14,12 @@
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row :gutter="24">
|
||||
<a-col :xl="8" :lg="8" :md="8" :sm="24">
|
||||
<a-col :xl="9" :lg="8" :md="8" :sm="24">
|
||||
<a-form-item label="搜索日志">
|
||||
<a-input placeholder="请输入搜索关键词" v-model="queryParam.keyWord"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="8" :lg="8" :md="8" :sm="24">
|
||||
<a-col :xl="9" :lg="8" :md="8" :sm="24">
|
||||
<a-form-item label="创建时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-range-picker
|
||||
style="width: 100%"
|
||||
@@ -31,13 +31,13 @@
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="8" :lg="8" :md="8" :sm="24" v-if="tabKey === '2' ">
|
||||
<a-col :xl="9" :lg="8" :md="8" :sm="24" v-if="tabKey === '2' ">
|
||||
<a-form-item label="操作类型" style="left: 10px">
|
||||
<j-dict-select-tag v-model="queryParam.operateType" placeholder="请选择操作类型" dictCode="operate_type"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
|
||||
<a-col :xl="6" :lg="8" :md="8" :sm="24">
|
||||
<a-col :xl="4" :lg="8" :md="8" :sm="24">
|
||||
<a-button type="primary" style="left: 10px" @click="searchQuery" icon="search" v-has="'sys:log:search'">查询</a-button>
|
||||
<a-button class="reset-button" @click="searchReset" icon="reload"
|
||||
style="margin-left: 8px;left: 10px">重置</a-button>
|
||||
@@ -49,7 +49,7 @@
|
||||
</a-form>
|
||||
</div>
|
||||
<div class="table-operator">
|
||||
<a-button type="danger" @click="batchDel" icon="delete" v-has="'sys:log:batchDelete'"
|
||||
<a-button type="danger" @click="batchDel" icon="delete" v-has="'sys:log:batchDelete'"
|
||||
style="margin-left: 8px;left: 10px">批量删除
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -81,8 +81,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {filterObj} from '@/utils/util'
|
||||
import {JeroListMixin} from '@/mixins/JeroListMixin'
|
||||
import { filterObj } from '@/utils/util'
|
||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||
import JEllipsis from '@/components/jero/JEllipsis'
|
||||
import IconImg from '@/assets/imgs/icon/icon_system.png'
|
||||
import PageHeaderTitle from '../../components/layouts/PageHeaderTitle'
|
||||
@@ -131,14 +131,14 @@ export default {
|
||||
title: '日志内容',
|
||||
align: 'center',
|
||||
dataIndex: 'logContent',
|
||||
scopedSlots: {customRender: 'logContent'},
|
||||
scopedSlots: { customRender: 'logContent' },
|
||||
sorter: true
|
||||
}, {
|
||||
title: '创建时间',
|
||||
dataIndex: 'createTime',
|
||||
align: 'center',
|
||||
sorter: true
|
||||
},
|
||||
}
|
||||
// {
|
||||
// title: '操作人ID',
|
||||
// dataIndex: 'userid',
|
||||
@@ -166,18 +166,18 @@ export default {
|
||||
align: 'center'
|
||||
},
|
||||
labelCol: {
|
||||
xs: {span: 1},
|
||||
sm: {span: 2}
|
||||
xs: { span: 1 },
|
||||
sm: { span: 2 }
|
||||
},
|
||||
wrapperCol: {
|
||||
xs: {span: 10},
|
||||
sm: {span: 16}
|
||||
xs: { span: 10 },
|
||||
sm: { span: 16 }
|
||||
},
|
||||
url: {
|
||||
list: '/sys/log/page',
|
||||
deleteBatch:'/sys/log/deleteBatch',
|
||||
deleteBatch: '/sys/log/deleteBatch'
|
||||
},
|
||||
newColumns: [],
|
||||
newColumns: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@@ -185,7 +185,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
getQueryParams() {
|
||||
var param = Object.assign({}, this.lastQueryParam, this.isorter, {logType: this.tabKey})
|
||||
var param = Object.assign({}, this.lastQueryParam, this.isorter, { logType: this.tabKey })
|
||||
param.field = this.getQueryField()
|
||||
param.pageNo = this.ipagination.current
|
||||
param.pageSize = this.ipagination.pageSize
|
||||
@@ -238,4 +238,8 @@ export default {
|
||||
</script>
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
|
||||
/deep/ .ant-card-body {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -7,19 +7,19 @@
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row :gutter="24">
|
||||
|
||||
<a-col :xl="6" :lg="8" :md="8" :sm="24">
|
||||
<a-col :xl="8" :lg="8" :md="8" :sm="24">
|
||||
<a-form-item label="用户账号">
|
||||
<a-input placeholder="请输入用户账号" v-model="queryParam.username"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xl="6" :lg="8" :md="8" :sm="24">
|
||||
<a-col :xl="8" :lg="8" :md="8" :sm="24">
|
||||
<a-form-item label="用户姓名">
|
||||
<a-input placeholder="请输入用户姓名" v-model="queryParam.realname"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xl="6" :lg="8" :md="8" :sm="24">
|
||||
<a-col :xl="8" :lg="8" :md="8" :sm="24">
|
||||
<a-form-item
|
||||
label="角色类型"
|
||||
:labelCol="labelCol"
|
||||
@@ -39,7 +39,7 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xl="6" :lg="8" :md="8" :sm="24">
|
||||
<a-col :xl="8" :lg="8" :md="8" :sm="24">
|
||||
<a-form-item
|
||||
label="组织机构"
|
||||
:labelCol="labelCol"
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
:labelCol="labelCol"
|
||||
:wrapperCol="wrapperCol"
|
||||
label="电话">
|
||||
<a-input placeholder="请输入电话" @change="event => event.target.value = event.target.value.trim()" :maxLength="50" v-decorator="['mobile',validatorRules.mobile]" />
|
||||
<a-input placeholder="请输入电话" @change="e => e.target.value = (e.target.value.replace(/[^0-9-]/g, '')).trim()" :maxLength="15" v-decorator="['mobile',validatorRules.mobile]" />
|
||||
</a-form-item>
|
||||
<!-- <a-form-item-->
|
||||
<!-- :labelCol="labelCol"-->
|
||||
@@ -97,6 +97,7 @@ import { queryIdTree } from '@/api/api'
|
||||
import pick from 'lodash.pick'
|
||||
import ATextarea from 'ant-design-vue/es/input/TextArea'
|
||||
import {checkDepartName} from '@/utils/validateOnly'
|
||||
import { isPhone } from '../../../utils/validate'
|
||||
|
||||
export default {
|
||||
name: 'SysDepartModal',
|
||||
@@ -225,10 +226,10 @@ export default {
|
||||
})
|
||||
},
|
||||
validateMobile(rule, value, callback) {
|
||||
if (!value || new RegExp(/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/).test(value)) {
|
||||
if (!value || isPhone(value)) {
|
||||
callback()
|
||||
} else {
|
||||
callback('您的手机号码格式不正确!')
|
||||
callback('您的电话格式不正确!')
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
:wrapperCol="wrapperCol"
|
||||
label="排序值">
|
||||
<a-input-number :min="1" :max="99999" v-decorator="['sortOrder',{'initialValue':1}]"/>
|
||||
值越小越靠前,支持小数
|
||||
值越小越靠前
|
||||
</a-form-item>
|
||||
|
||||
<!-- <a-form-item-->
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
confirmLoading: false,
|
||||
form: this.$form.createForm(this),
|
||||
validatorRules: {
|
||||
dictName: { rules: [{ required: true, message: '请输入字典名称!' }], validateTrigger: 'blur' },
|
||||
dictName: { rules: [{ required: true, message: '请输入字典名称' }], validateTrigger: 'blur' },
|
||||
dictCode: {
|
||||
rules: [{ required: true,validator: this.validateDictCode },
|
||||
],
|
||||
|
||||
@@ -91,7 +91,7 @@ export default {
|
||||
validatorRules: {
|
||||
roleName: {
|
||||
rules: [
|
||||
{required: true, message: '请输入角色名称!'},
|
||||
{required: true, message: '请输入角色名称'},
|
||||
{min: 2, max: 30, message: '长度在 2 到 30 个字符', trigger: 'blur'}
|
||||
],
|
||||
validateTrigger: 'blur'
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
<a-form-item label="用户账号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入用户账号" @change="event => event.target.value = event.target.value.trim()" :maxLength="50" v-decorator.trim="[ 'username', validatorRules.username]"
|
||||
:readOnly="!!model.id" :disabled="disableSubmit" />
|
||||
:readOnly="!!model.id" :disabled="disableSubmit || disabledEdit" />
|
||||
</a-form-item>
|
||||
|
||||
<template v-if="!model.id">
|
||||
@@ -227,7 +227,7 @@ export default {
|
||||
password: {
|
||||
rules: [{
|
||||
required: true,
|
||||
message: '请输入密码'
|
||||
message: '请输入登录密码'
|
||||
}, {
|
||||
validator: this.validateToNextPassword,
|
||||
}],
|
||||
@@ -235,13 +235,13 @@ export default {
|
||||
},
|
||||
confirmpassword: {
|
||||
rules: [{
|
||||
required: true, message: '请输入确认密码!',
|
||||
required: true, message: '请输入确认密码',
|
||||
}, {
|
||||
validator: this.compareToFirstPassword,
|
||||
}],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
realname: {rules: [{required: true, message: '请输入用户名称!'}], validateTrigger: 'blur'},
|
||||
realname: {rules: [{required: true, message: '请输入用户姓名'}], validateTrigger: 'blur'},
|
||||
phone: {rules: [{required: true,validator: this.validatePhone}], validateTrigger: 'blur'},
|
||||
email: {
|
||||
rules: [{
|
||||
@@ -286,7 +286,8 @@ export default {
|
||||
tenantList: [],
|
||||
currentTenant: [],
|
||||
// 公钥
|
||||
rsaPublicKey:''
|
||||
rsaPublicKey:'',
|
||||
disabledEdit: false, // 用户账号是否可编辑
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@@ -357,7 +358,6 @@ export default {
|
||||
this.edit({activitiSync: '1'})
|
||||
},
|
||||
edit(record) {
|
||||
|
||||
this.resetScreenSize() // 调用此方法,根据屏幕宽度自适应调整抽屉的宽度
|
||||
// 加载组织机构数据
|
||||
this.loadDepartTreeData()
|
||||
@@ -381,6 +381,11 @@ export default {
|
||||
that.userId = record.id
|
||||
that.visible = true
|
||||
that.model = Object.assign({}, record)
|
||||
if (that.model.id) {
|
||||
that.disabledEdit = true
|
||||
} else {
|
||||
that.disabledEdit = false
|
||||
}
|
||||
// 组织机构修改成了单选,此处不需要了
|
||||
if(record.departIds !== '' && record.id){
|
||||
// 部门是数组的时候以逗号拼接
|
||||
@@ -614,7 +619,7 @@ export default {
|
||||
if(res.success){
|
||||
callback()
|
||||
}else {
|
||||
callback(res.code === 500 ? '用户已存在': res)
|
||||
callback(res.code === 500 ? '用户账号已存在': res)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -82,10 +82,10 @@
|
||||
},
|
||||
methods: {
|
||||
onTreeNodeSelect(id){
|
||||
if(id && id.length>0){
|
||||
this.selectedKeys = id
|
||||
}
|
||||
this.$refs.datarule.show(this.selectedKeys[0],this.roleId)
|
||||
// if(id && id.length>0){
|
||||
// this.selectedKeys = id
|
||||
// }
|
||||
// this.$refs.datarule.show(this.selectedKeys[0],this.roleId)
|
||||
},
|
||||
onCheck (o) {
|
||||
if(this.checkStrictly){
|
||||
|
||||
Reference in New Issue
Block a user