Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6c5c442928 | ||
|
|
2380e56266 | ||
|
|
fdce66d761 | ||
|
|
34e1590382 | ||
|
|
7fea1a0d9f | ||
|
|
8cf3ee079b | ||
|
|
388c6bdf4a | ||
|
|
6ca7141c5d |
@@ -6,7 +6,8 @@
|
||||
<!-- onerror="this.src='https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png'"-->
|
||||
<!-- alt=""-->
|
||||
<!-- />-->
|
||||
<img class="avatar" :src="avatarError ? defaultAvatar : (message?.avatar || defaultAvatar)" @error="onAvatarError" alt="" />
|
||||
<img class="avatar" v-if="getSrc(message)" :src="getSrc(message)" alt="" />
|
||||
<img class="avatar" v-else src="@/assets/image/default_avatar.png" alt="" />
|
||||
<main class="message-area">
|
||||
<label class="name" v-if="message.flow === 'in' && message.conversationType === 'GROUP'">
|
||||
{{ message.nameCard || message.nick || message.from }}
|
||||
@@ -85,7 +86,6 @@
|
||||
import MessageReference from './message-reference.vue';
|
||||
import { Message } from '../interface';
|
||||
import { TUIEnv } from '../../../../../TUIKit/TUIPlugin';
|
||||
import defaultAvatar from '@/assets/image/default_avatar.png';
|
||||
import MessageEmojiReact from './message-emoji-react.vue';
|
||||
import TIM from '../../../../TUICore/tim/index';
|
||||
|
||||
@@ -145,15 +145,6 @@
|
||||
needEmojiReact: false,
|
||||
});
|
||||
|
||||
// 追踪头像加载失败状态,避免 watchEffect 重置时覆盖 @error 的修复
|
||||
const avatarError = ref(false);
|
||||
watch(() => (props.data as any)?.ID, () => {
|
||||
avatarError.value = false;
|
||||
});
|
||||
const onAvatarError = () => {
|
||||
avatarError.value = true;
|
||||
};
|
||||
|
||||
watchEffect(() => {
|
||||
data.type = constant;
|
||||
data.messagesList = props.messagesList;
|
||||
@@ -385,9 +376,6 @@
|
||||
|
||||
return {
|
||||
getSrc,
|
||||
defaultAvatar,
|
||||
avatarError,
|
||||
onAvatarError,
|
||||
...toRefs(data),
|
||||
toggleDialog,
|
||||
htmlRefHook,
|
||||
|
||||
@@ -9,7 +9,6 @@ module.exports = {
|
||||
outputDir: '../public/static/im-web',
|
||||
productionSourceMap: false,
|
||||
lintOnSave: false,
|
||||
transpileDependencies: ['element-plus', 'vue-router', '@ctrl/tinycolor'],
|
||||
chainWebpack: (config) => {
|
||||
config.resolve.alias.set('@', resolve('src')).set('tim', resolve('src/tim.js'));
|
||||
// 删除预加载
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"><link rel="icon" href="faviconnew.png"><title>即时通信</title><link href="css/vendors~app.28a73048.css" rel="stylesheet"><link href="css/app.7113887a.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but 腾讯云即时通信 Web-IM doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="./TCaptcha.js"></script><script src="./aegis.min.js"></script><script>/**
|
||||
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"><link rel="icon" href="faviconnew.png"><title>即时通信</title><link href="css/vendors~app.03806786.css" rel="stylesheet"><link href="css/app.12928813.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but 腾讯云即时通信 Web-IM doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="./TCaptcha.js"></script><script src="./aegis.min.js"></script><script>/**
|
||||
* 根据基础字体大小 和 效果图宽度设置 根节点字体大小
|
||||
* @param baseFontSize 浏览器默认字体大小 [注]浏览器最小字体为12像素,所以该值必需大于等于12
|
||||
* @param baseWidth 设计稿的尺寸
|
||||
@@ -53,4 +53,4 @@
|
||||
},
|
||||
false
|
||||
);
|
||||
};</script><script src="js/vendors~app.b38bf4ff.js"></script><script src="js/app.2f662ea4.js"></script></body></html>
|
||||
};</script><script src="js/vendors~app.de88239f.js"></script><script src="js/app.0cb3a231.js"></script></body></html>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+124
-123
File diff suppressed because one or more lines are too long
@@ -3,7 +3,7 @@
|
||||
<BasicModal v-bind="$attrs" @register="register" :title="modalTitle" width="1200px" @ok="handleOk" destroyOnClose @visible-change="visibleChange">
|
||||
<a-row :gutter="10">
|
||||
<a-col :md="7" :sm="24">
|
||||
<a-card :style="{ height: '613px', overflowY: 'auto' }">
|
||||
<a-card :style="{ minHeight: '613px', overflow: 'auto' }">
|
||||
<!--组织机构-->
|
||||
<BasicTree
|
||||
ref="treeRef"
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
import { getToken } from '/@/utils/auth';
|
||||
import { useLoading } from '/@/components/Loading';
|
||||
import { useGlobSetting } from '/@/hooks/setting';
|
||||
import qs from 'qs';
|
||||
const { viteOutUrl, apiUrl } = useGlobSetting();
|
||||
|
||||
export default defineComponent({
|
||||
@@ -134,14 +135,14 @@
|
||||
.get({
|
||||
url: '/health-system/api/sys/encryptInfo',
|
||||
params: {
|
||||
str: {
|
||||
str: qs.stringify({
|
||||
scheme: apiUrl.split('://')[0],
|
||||
host:
|
||||
apiUrl.split('://')[1].indexOf(':') !== -1
|
||||
? apiUrl.split('://')[1].substring(0, apiUrl.split('://')[1].indexOf(':'))
|
||||
: apiUrl.split('://')[1],
|
||||
tokenF: getToken(),
|
||||
},
|
||||
}),
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
fontSize: props.size ?? '30px',
|
||||
opacity: 0.5,
|
||||
transition: 'opacity 0.5s',
|
||||
display: 'block',
|
||||
display: 'none',
|
||||
});
|
||||
|
||||
const bodyStyle = ref({
|
||||
|
||||
@@ -102,7 +102,6 @@ export const formSchema: FormSchema[] = [
|
||||
field: 'image',
|
||||
component: 'JImageUpload',
|
||||
componentProps: {
|
||||
bizPath: 'img',
|
||||
fileMax: 1,
|
||||
},
|
||||
},
|
||||
|
||||
@@ -266,8 +266,6 @@ export const formSchema: FormSchema[] = [
|
||||
component: 'JImageUpload',
|
||||
// rules: [{ required: true, message: '请选择头像' }],
|
||||
componentProps: {
|
||||
text: '上传头像',
|
||||
bizPath: 'avatar',
|
||||
//@ts-ignore
|
||||
maxCount: 1,
|
||||
},
|
||||
|
||||
@@ -190,8 +190,6 @@ export const formSchema: FormSchema[] = [
|
||||
label: '头像',
|
||||
component: 'JImageUpload',
|
||||
componentProps: {
|
||||
text: '上传头像',
|
||||
bizPath: 'avatar',
|
||||
// @ts-ignore
|
||||
maxCount: 1,
|
||||
},
|
||||
|
||||
@@ -169,7 +169,6 @@ export const formSchema: FormSchema[] = [
|
||||
field: 'img',
|
||||
component: 'JImageUpload',
|
||||
componentProps: {
|
||||
bizPath: 'img',
|
||||
fileMax: 1,
|
||||
},
|
||||
rules: [{ required: false }],
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
/>
|
||||
<div class="bottom-top">
|
||||
<div class="top-title"> <img :src="aedP" alt="" /> {{ showWindowInfo?.name }} </div>
|
||||
<div class="top-title-bottom"> 距离{{ formatDistance(showWindowInfo?.dis) }} </div>
|
||||
<div class="top-title-bottom"> 距离{{ showWindowInfo?.dis ? showWindowInfo?.dis : 0 }}m </div>
|
||||
<div class="top-title-describe"> {{ showWindowInfo?.installAddress ? showWindowInfo?.installAddress : '无' }} </div>
|
||||
<div class="table-list">
|
||||
<div class="label-d"> 设备厂家: </div>
|
||||
@@ -411,17 +411,6 @@
|
||||
window.open(getFileAccessHttpUrl(v), '_blank');
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化距离:超过1000米换算为千米,保留两位小数
|
||||
*/
|
||||
function formatDistance(dis) {
|
||||
if (!dis) return '0m';
|
||||
if (dis >= 1000) {
|
||||
return (dis / 1000).toFixed(2) + 'km';
|
||||
}
|
||||
return dis + 'm';
|
||||
}
|
||||
|
||||
function getName(val, list) {
|
||||
if (!val && val !== 0) return '';
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
|
||||
@@ -306,7 +306,6 @@ export const getFormSchema = () => {
|
||||
component: 'JUpload',
|
||||
componentProps: () => {
|
||||
return {
|
||||
bizPath: 'video',
|
||||
maxCount: 1,
|
||||
accept: '.mp4,video/mp4',
|
||||
tipText: '支持MP4格式,最大200M',
|
||||
@@ -320,7 +319,6 @@ export const getFormSchema = () => {
|
||||
component: 'JUpload',
|
||||
componentProps: () => {
|
||||
return {
|
||||
bizPath: 'bizfile',
|
||||
maxCount: 1,
|
||||
accept: 'application/pdf',
|
||||
tipText: '仅支持PDF格式文件,最大200M',
|
||||
|
||||
@@ -212,17 +212,17 @@
|
||||
const [registerTable, { reload, getForm, getDataSource, setTableData }] = tableContext;
|
||||
</script>
|
||||
<style scoped lang="less">
|
||||
//:deep(.ant-table-cell-fix-left, .ant-table-cell-fix-right) {
|
||||
// position: relative;
|
||||
// //border-bottom: none !important;
|
||||
// border-bottom: 2px solid #f0f0f0 !important;
|
||||
// &:after {
|
||||
// position: absolute;
|
||||
// content: '';
|
||||
// width: 100%;
|
||||
// top: 0;
|
||||
// left: 0;
|
||||
// border-bottom: 1px solid #f0f0f0;
|
||||
// }
|
||||
//}
|
||||
:deep(.ant-table-cell-fix-left, .ant-table-cell-fix-right) {
|
||||
position: relative;
|
||||
border-bottom: none !important;
|
||||
|
||||
&:after {
|
||||
position: absolute;
|
||||
content: '';
|
||||
width: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -172,13 +172,7 @@
|
||||
loadingVisible.value = false;
|
||||
};
|
||||
window.onmessage = async (msg) => {
|
||||
if (!msg.data || typeof msg.data !== 'string') return;
|
||||
let result: any;
|
||||
try {
|
||||
result = JSON.parse(msg.data);
|
||||
} catch (e) {
|
||||
return;
|
||||
}
|
||||
const result = JSON.parse(msg.data);
|
||||
switch (result.code) {
|
||||
case 'closeLoading':
|
||||
closeLoading();
|
||||
|
||||
@@ -141,8 +141,6 @@ export const formSchema = function (showGoodAt: boolean): FormSchema[] {
|
||||
component: 'JImageUpload',
|
||||
required: true,
|
||||
componentProps: () => ({
|
||||
text: '上传头像',
|
||||
bizPath: 'avatar',
|
||||
maxCount: 1,
|
||||
}),
|
||||
},
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
</template>
|
||||
</BasicTable>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
<script setup lang="ts" name="bindRecords-name">
|
||||
import BasicTable from '/@/components/Table/src/BasicTable.vue';
|
||||
import { useListPage } from '/@/hooks/system/useListPage';
|
||||
import { bindRecordColumns, bindRecordSchema } from '/@/views/healthMonitor/healMonitorManage/monitorToll/bindRecords/bindRecords.data';
|
||||
|
||||
+2
-5
@@ -7,8 +7,8 @@
|
||||
</BasicForm>
|
||||
<template #footer v-if="title !== '查看'">
|
||||
<a-button @click="handleCanel">取消</a-button>
|
||||
<a-button type="primary" :loading="submitting" :disabled="submitting" @click="handleSubmit(1)">保存并发送</a-button>
|
||||
<a-button type="primary" :loading="submitting" :disabled="submitting" @click="handleSubmit(2)">保存</a-button>
|
||||
<a-button type="primary" @click="handleSubmit(1)">保存并发送</a-button>
|
||||
<a-button type="primary" @click="handleSubmit(2)">保存</a-button>
|
||||
</template>
|
||||
</BasicModal>
|
||||
<ChooseSome
|
||||
@@ -35,7 +35,6 @@
|
||||
// Emits声明
|
||||
const emit = defineEmits(['register', 'success', 'userData']);
|
||||
const isUpdate = ref(true);
|
||||
const submitting = ref(false);
|
||||
const [examinationModal, { openDrawer }] = useDrawer();
|
||||
//设置标题
|
||||
const title = ref(String);
|
||||
@@ -101,7 +100,6 @@
|
||||
//表单提交事件
|
||||
async function handleSubmit(type: number) {
|
||||
try {
|
||||
submitting.value = true;
|
||||
let values = await validate();
|
||||
setModalProps({ confirmLoading: true });
|
||||
//提交表单
|
||||
@@ -111,7 +109,6 @@
|
||||
//刷新列表
|
||||
emit('success');
|
||||
} finally {
|
||||
submitting.value = false;
|
||||
setModalProps({ confirmLoading: false });
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@
|
||||
<notification-news-modal @register="registerModal" @success="handleSuccess" />
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
<script setup lang="ts" name="healthMonitor-notificationNews">
|
||||
import { BasicTable, TableAction } from '/@/components/Table';
|
||||
import { useListPage } from '/@/hooks/system/useListPage';
|
||||
import { list, deleteOne, batchDelete, queryByID, reSend } from './notificationNews.api';
|
||||
|
||||
+5
-5
@@ -218,9 +218,9 @@
|
||||
</style>
|
||||
|
||||
<style>
|
||||
/* 隐藏日历面板中非当前月份的日期格,仅对该 picker 生效 */
|
||||
.personal-data-no-other-month .ant-picker-cell:not(.ant-picker-cell-in-view) {
|
||||
visibility: hidden;
|
||||
pointer-events: none;
|
||||
}
|
||||
/* 隐藏日历面板中非当前月份的日期格,仅对该 picker 生效 */
|
||||
.personal-data-no-other-month .ant-picker-cell:not(.ant-picker-cell-in-view) {
|
||||
visibility: hidden;
|
||||
pointer-events: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
+27
-1
@@ -156,13 +156,39 @@ export const columnsNew: BasicColumn[] = [
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '分配设备数',
|
||||
title: '已分配设备数',
|
||||
dataIndex: ['assignedDeviceNums'],
|
||||
customRender: ({ text }) => {
|
||||
if (!text) return 0;
|
||||
return text;
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '未分配设备数',
|
||||
dataIndex: 'unassignedDeviceNums',
|
||||
customRender: ({ record }) => {
|
||||
const total = record.totalAssignedDeviceNums ?? 0;
|
||||
const assigned = record.assignedDeviceNums ?? 0;
|
||||
return total - assigned;
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '已绑定设备数',
|
||||
dataIndex: ['assignedDeviceNums'],
|
||||
customRender: ({ text }) => {
|
||||
if (!text) return 0;
|
||||
return text;
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '未绑定设备数',
|
||||
dataIndex: 'unassignedDeviceNums',
|
||||
customRender: ({ record }) => {
|
||||
const total = record.totalAssignedDeviceNums ?? 0;
|
||||
const assigned = record.assignedDeviceNums ?? 0;
|
||||
return total - assigned;
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '佩戴人员数',
|
||||
dataIndex: ['assignedUserNums'],
|
||||
|
||||
@@ -168,32 +168,30 @@
|
||||
let xArr: any[] = [];
|
||||
let yArr: any[] = [];
|
||||
res.timePeriods &&
|
||||
res.timePeriods.map((item) => {
|
||||
res.timePeriods.forEach((item) => {
|
||||
switch (item.flag) {
|
||||
case 1:
|
||||
// 浅睡
|
||||
yArr.push(1);
|
||||
yArr.push(1);
|
||||
yArr.push(1, 1, null);
|
||||
break;
|
||||
case 3:
|
||||
// 深睡
|
||||
yArr.push(0);
|
||||
yArr.push(0);
|
||||
yArr.push(0, 0, null);
|
||||
break;
|
||||
case 4:
|
||||
// 清醒
|
||||
yArr.push(3);
|
||||
yArr.push(3);
|
||||
yArr.push(3, 3, null);
|
||||
break;
|
||||
case 5:
|
||||
// 零星小睡
|
||||
yArr.push(2);
|
||||
yArr.push(2);
|
||||
yArr.push(2, 2, null);
|
||||
break;
|
||||
}
|
||||
xArr.push(dayjs(item.start).format('HH:mm'));
|
||||
xArr.push(dayjs(item.end).format('HH:mm'));
|
||||
xArr.push(dayjs(item.start).format('HH:mm'), dayjs(item.end).format('HH:mm'), '');
|
||||
});
|
||||
// 去掉最后多余的 null
|
||||
if (yArr.length > 0) yArr.pop();
|
||||
if (xArr.length > 0) xArr.pop();
|
||||
const option = {
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<user-info-modal @register="registerModal" />
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
<script setup lang="ts" name="userInfoList-name">
|
||||
import BasicTable from '/@/components/Table/src/BasicTable.vue';
|
||||
import { useListPage } from '/@/hooks/system/useListPage';
|
||||
import { columns, searchSchema } from '/@/views/healthMonitor/healMonitorManage/monitorToll/userInfo/userInfo.data';
|
||||
|
||||
@@ -73,7 +73,7 @@ export const formSchema: FormSchema[] = [
|
||||
dynamicDisabled: ({ values }) => {
|
||||
return !!values.id;
|
||||
},
|
||||
dynamicRules: ({ model, schema }) => rules.duplicateCheckRule('QH_SYS_DICT', 'dict_code', model, schema, true),
|
||||
dynamicRules: ({ model, schema }) => rules.duplicateCheckRule('sys_dict', 'dict_code', model, schema, true),
|
||||
},
|
||||
{
|
||||
label: '描述',
|
||||
|
||||
@@ -77,7 +77,7 @@ export const formSchemas: FormSchema[] = [
|
||||
field: 'templateCode',
|
||||
component: 'Input',
|
||||
dynamicRules: ({ model, schema }) => {
|
||||
return [...rules.duplicateCheckRule('QH_SYS_SMS_TEMPLATE', 'template_code', model, schema, true)];
|
||||
return [...rules.duplicateCheckRule('sys_sms_template', 'template_code', model, schema, true)];
|
||||
},
|
||||
// 编辑模式下不可修改编码
|
||||
dynamicDisabled: (params) => !!params.values.id,
|
||||
|
||||
@@ -74,8 +74,6 @@ export const searchFormSchema: FormSchema[] = [
|
||||
},
|
||||
];
|
||||
//表单数据
|
||||
// @ts-ignore
|
||||
// @ts-ignore
|
||||
export const formSchema: FormSchema[] = [
|
||||
{
|
||||
label: '序号',
|
||||
@@ -93,10 +91,6 @@ export const formSchema: FormSchema[] = [
|
||||
label: '图片',
|
||||
field: 'photoUrl',
|
||||
component: 'JImageUpload',
|
||||
componentProps: {
|
||||
bizPath: 'img',
|
||||
maxCount: 1,
|
||||
},
|
||||
rules: [{ required: true, message: '请上传图片' }],
|
||||
},
|
||||
{
|
||||
|
||||
@@ -311,7 +311,7 @@ export const formSchema: (isUpdate: boolean) => FormSchema[] = (isUpdate) => {
|
||||
};
|
||||
},
|
||||
dynamicRules: ({ model, schema }) => {
|
||||
let rule = rules.duplicateCheckRuleAndDelFlag('QH_HLT_USER_EMPLOYEE_EX', 'EMP_SYSNO', 'false', model, schema, false);
|
||||
let rule = rules.duplicateCheckRuleAndDelFlag('health_user_employee_ex', 'emp_sysno', 'false', model, schema, false);
|
||||
rule[0] = { ...rule[0], required: false };
|
||||
return rule;
|
||||
},
|
||||
@@ -330,8 +330,6 @@ export const formSchema: (isUpdate: boolean) => FormSchema[] = (isUpdate) => {
|
||||
field: 'avatar',
|
||||
component: 'JImageUpload',
|
||||
componentProps: {
|
||||
text: '上传头像',
|
||||
bizPath: 'avatar',
|
||||
maxCount: 1,
|
||||
},
|
||||
},
|
||||
|
||||
@@ -207,8 +207,6 @@ export const formSchema: FormSchema[] = [
|
||||
label: '头像',
|
||||
component: 'JImageUpload',
|
||||
componentProps: {
|
||||
text: '上传头像',
|
||||
bizPath: 'avatar',
|
||||
maxCount: 1,
|
||||
},
|
||||
},
|
||||
|
||||
@@ -141,8 +141,6 @@ export const formSchema = function (showGoodAt: boolean): FormSchema[] {
|
||||
component: 'JImageUpload',
|
||||
required: true,
|
||||
componentProps: () => ({
|
||||
text: '上传头像',
|
||||
bizPath: 'avatar',
|
||||
maxCount: 1,
|
||||
}),
|
||||
},
|
||||
|
||||
@@ -219,7 +219,7 @@ export const formSchema: FormSchema[] = [
|
||||
},
|
||||
dynamicRules: ({ model, schema }) => {
|
||||
if (model.id) {
|
||||
return rules.duplicateCheckRule('QH_SYS_USER', 'username', model, schema, true);
|
||||
return rules.duplicateCheckRule('sys_user', 'username', model, schema, true);
|
||||
} else {
|
||||
return Promise.resolve();
|
||||
}
|
||||
@@ -266,7 +266,7 @@ export const formSchema: FormSchema[] = [
|
||||
field: 'workNo',
|
||||
required: true,
|
||||
component: 'Input',
|
||||
dynamicRules: ({ model, schema }) => rules.duplicateCheckRule('QH_SYS_USER', 'work_no', model, schema, true),
|
||||
dynamicRules: ({ model, schema }) => rules.duplicateCheckRule('sys_user', 'work_no', model, schema, true),
|
||||
},
|
||||
{
|
||||
label: '职务',
|
||||
@@ -379,7 +379,7 @@ export const formSchema: FormSchema[] = [
|
||||
field: 'email',
|
||||
component: 'Input',
|
||||
dynamicRules: ({ model, schema }) => {
|
||||
return [{ ...rules.duplicateCheckRule('QH_SYS_USER', 'email', model, schema, true)[0] }, { ...rules.rule('email', false)[0] }];
|
||||
return [{ ...rules.duplicateCheckRule('sys_user', 'email', model, schema, true)[0] }, { ...rules.rule('email', false)[0] }];
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -388,7 +388,7 @@ export const formSchema: FormSchema[] = [
|
||||
component: 'Input',
|
||||
dynamicRules: ({ model, schema }) => {
|
||||
return [
|
||||
{ ...rules.duplicateCheckRule('QH_SYS_USER', 'phone', model, schema, true)[0] },
|
||||
{ ...rules.duplicateCheckRule('sys_user', 'phone', model, schema, true)[0] },
|
||||
{ pattern: /^1[3456789]\d{9}$/, message: '手机号码格式有误' },
|
||||
];
|
||||
},
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
const validatorRules: Record<string, Rule[]> = {
|
||||
email: [
|
||||
{ ...rules.duplicateCheckRule('QH_SYS_USER', 'email', formState, { label: '邮箱' })[0] },
|
||||
{ ...rules.duplicateCheckRule('sys_user', 'email', formState, { label: '邮箱' })[0] },
|
||||
{ required: true, type: 'email', message: '邮箱格式不正确' },
|
||||
],
|
||||
};
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
const validatorRules: Record<string, Rule[]> = {
|
||||
phone: [
|
||||
{ ...rules.duplicateCheckRule('QH_SYS_USER', 'phone', formState, { label: '手机号' })[0] },
|
||||
{ ...rules.duplicateCheckRule('sys_user', 'phone', formState, { label: '手机号' })[0] },
|
||||
{ pattern: /^1[3456789]\d{9}$/, message: '手机号码格式有误' },
|
||||
],
|
||||
smscode: [{ required: true, message: '请输入验证码' }],
|
||||
|
||||
@@ -154,7 +154,6 @@ export const itemFormSchema: FormSchema[] = [
|
||||
component: 'JUpload',
|
||||
componentProps: () => {
|
||||
return {
|
||||
bizPath: 'appfile',
|
||||
maxCount: 1,
|
||||
};
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user