Commit 0d3efb551af38b57860917dba7497d72c5662dda

Authored by fengtao
1 parent b4676b5f

fix:修复登录界面后端返回的错误信息,feat:个人中心接口联调,fix:待修复设备配置个别字段回显问题

@@ -5,7 +5,7 @@ import { UploadFileParams } from '/#/axios'; @@ -5,7 +5,7 @@ import { UploadFileParams } from '/#/axios';
5 5
6 enum API { 6 enum API {
7 BaseUploadUrl = '/api/yt/oss/upload', 7 BaseUploadUrl = '/api/yt/oss/upload',
8 - PutPersonalUrl = '/user', 8 + PutPersonalUrl = '/user/center',
9 GetPersonalUrl = '/user/', 9 GetPersonalUrl = '/user/',
10 } 10 }
11 /** 11 /**
@@ -31,7 +31,7 @@ export const personalGet = (id: string) => { @@ -31,7 +31,7 @@ export const personalGet = (id: string) => {
31 }; 31 };
32 32
33 export const personalPut = (params: IPutPersonal) => { 33 export const personalPut = (params: IPutPersonal) => {
34 - return defHttp.post<IPutPersonal>({ 34 + return defHttp.put<IPutPersonal>({
35 url: API.PutPersonalUrl, 35 url: API.PutPersonalUrl,
36 params, 36 params,
37 }); 37 });
@@ -91,7 +91,7 @@ @@ -91,7 +91,7 @@
91 } 91 }
92 ); 92 );
93 93
94 - function handleUploadSuccess({ source }) { 94 + function handleUploadSuccess(source) {
95 sourceValue.value = source; 95 sourceValue.value = source;
96 emit('change', source); 96 emit('change', source);
97 createMessage.success(t('component.cropper.uploadSuccess')); 97 createMessage.success(t('component.cropper.uploadSuccess'));
@@ -2,7 +2,7 @@ import { FormSchema } from '/@/components/Table'; @@ -2,7 +2,7 @@ import { FormSchema } from '/@/components/Table';
2 2
3 export const formSchema: FormSchema[] = [ 3 export const formSchema: FormSchema[] = [
4 { 4 {
5 - field: 'creator', 5 + field: 'nickName',
6 label: '用户昵称', 6 label: '用户昵称',
7 colProps: { span: 13 }, 7 colProps: { span: 13 },
8 required: true, 8 required: true,
@@ -31,24 +31,4 @@ export const formSchema: FormSchema[] = [ @@ -31,24 +31,4 @@ export const formSchema: FormSchema[] = [
31 placeholder: '请输入邮箱', 31 placeholder: '请输入邮箱',
32 }, 32 },
33 }, 33 },
34 - {  
35 - field: 'enabled',  
36 - component: 'RadioGroup',  
37 - label: '性别',  
38 - colProps: {  
39 - span: 13,  
40 - },  
41 - componentProps: {  
42 - options: [  
43 - {  
44 - label: '男',  
45 - value: 'true',  
46 - },  
47 - {  
48 - label: '女',  
49 - value: 'false',  
50 - },  
51 - ],  
52 - },  
53 - },  
54 ]; 34 ];
@@ -68,10 +68,11 @@ @@ -68,10 +68,11 @@
68 import { Description, DescItem, useDescription } from '/@/components/Description/index'; 68 import { Description, DescItem, useDescription } from '/@/components/Description/index';
69 import { CropperAvatar } from '/@/components/Cropper'; 69 import { CropperAvatar } from '/@/components/Cropper';
70 import defaultImage from '/@/assets/images/logo.png'; 70 import defaultImage from '/@/assets/images/logo.png';
71 - import { uploadApi, personalPut, personalGet } from '/@/api/personal/index'; 71 + import { uploadApi, personalPut } from '/@/api/personal/index';
72 import { useMessage } from '/@/hooks/web/useMessage'; 72 import { useMessage } from '/@/hooks/web/useMessage';
73 import { USER_INFO_KEY } from '/@/enums/cacheEnum'; 73 import { USER_INFO_KEY } from '/@/enums/cacheEnum';
74 import { getAuthCache } from '/@/utils/auth'; 74 import { getAuthCache } from '/@/utils/auth';
  75 + import { useUserStore } from '/@/store/modules/user';
75 76
76 const schema: DescItem[] = [ 77 const schema: DescItem[] = [
77 { 78 {
@@ -91,7 +92,7 @@ @@ -91,7 +92,7 @@
91 label: '用户昵称:', 92 label: '用户昵称:',
92 }, 93 },
93 { 94 {
94 - field: 'createTime', 95 + field: 'accountExpireTime',
95 label: '过期时间:', 96 label: '过期时间:',
96 }, 97 },
97 { 98 {
@@ -103,43 +104,54 @@ @@ -103,43 +104,54 @@
103 name: 'index', 104 name: 'index',
104 components: { BasicModal, BasicForm, Description, CropperAvatar }, 105 components: { BasicModal, BasicForm, Description, CropperAvatar },
105 setup() { 106 setup() {
  107 + const userStore = useUserStore();
106 const userInfo = getAuthCache(USER_INFO_KEY); 108 const userInfo = getAuthCache(USER_INFO_KEY);
107 const { createMessage } = useMessage(); 109 const { createMessage } = useMessage();
108 const getPersonalValue: any = ref({}); 110 const getPersonalValue: any = ref({});
109 const getPersonalDetailValue: any = ref({}); 111 const getPersonalDetailValue: any = ref({});
  112 + const avatarUrl: any = ref('');
  113 + const getBackendV: any = ref({});
110 const [registerDesc] = useDescription({ 114 const [registerDesc] = useDescription({
111 title: '个人详情', 115 title: '个人详情',
112 schema: schema, 116 schema: schema,
113 }); 117 });
114 118
115 - const [registerModal] = useModalInner();  
116 - const [registerForm, { validate }] = useForm({ 119 + const [registerModal, { closeModal }] = useModalInner();
  120 + const [registerForm, { validate, resetFields }] = useForm({
117 showActionButtonGroup: false, 121 showActionButtonGroup: false,
118 schemas: formSchema, 122 schemas: formSchema,
119 }); 123 });
120 const avatar = computed(() => { 124 const avatar = computed(() => {
121 - return defaultImage; 125 + const { avatar } = userStore.getUserInfo;
  126 + return avatar || defaultImage;
122 }); 127 });
123 const handleSubmit = async () => { 128 const handleSubmit = async () => {
  129 + // console.log(userStore.getUserInfo);
  130 + const getUserInfo = await userInfo;
  131 + // console.log(getUserInfo);
124 getPersonalValue.value = await validate(); 132 getPersonalValue.value = await validate();
  133 + getPersonalValue.value.id = getUserInfo.userId;
  134 + getPersonalValue.value.username = getBackendV.value.username;
  135 + getPersonalValue.value.avatar = avatarUrl.value;
125 await personalPut(getPersonalValue.value); 136 await personalPut(getPersonalValue.value);
126 createMessage.success('修改成功'); 137 createMessage.success('修改成功');
  138 + closeModal();
  139 + resetFields();
127 }; 140 };
128 const updateAvatar = async (v) => { 141 const updateAvatar = async (v) => {
129 - console.log('v' + v);  
130 - await personalPut({ avatar: v }); 142 + avatarUrl.value = v.data.fileStaticUri;
  143 + console.log(avatarUrl.value);
  144 + // await personalPut({ avatar: v });
131 }; 145 };
132 const getPersonalDetail = async () => { 146 const getPersonalDetail = async () => {
133 try { 147 try {
134 const getUserInfo = await userInfo; 148 const getUserInfo = await userInfo;
135 - const getBackendData = await personalGet(getUserInfo.userId);  
136 - getPersonalDetailValue.value = getBackendData;  
137 - console.log(getPersonalDetailValue.value); 149 + getPersonalDetailValue.value = getUserInfo;
138 } catch (e) { 150 } catch (e) {
139 return e; 151 return e;
140 } 152 }
141 }; 153 };
142 - onMounted(() => { 154 + onMounted(async () => {
143 getPersonalDetail(); 155 getPersonalDetail();
144 }); 156 });
145 const compHeight = computed(() => { 157 const compHeight = computed(() => {
@@ -129,6 +129,7 @@ export const useUserStore = defineStore({ @@ -129,6 +129,7 @@ export const useUserStore = defineStore({
129 try { 129 try {
130 const { goHome = true, mode, ...loginParams } = params; 130 const { goHome = true, mode, ...loginParams } = params;
131 const data = await loginApi(loginParams, mode); 131 const data = await loginApi(loginParams, mode);
  132 + console.log(data);
132 return this.process(data, goHome); 133 return this.process(data, goHome);
133 } catch (error) { 134 } catch (error) {
134 return Promise.reject(error); 135 return Promise.reject(error);
@@ -15,18 +15,53 @@ import { setObjToUrlParams, deepMerge } from '/@/utils'; @@ -15,18 +15,53 @@ import { setObjToUrlParams, deepMerge } from '/@/utils';
15 import { useErrorLogStoreWithOut } from '/@/store/modules/errorLog'; 15 import { useErrorLogStoreWithOut } from '/@/store/modules/errorLog';
16 import { useI18n } from '/@/hooks/web/useI18n'; 16 import { useI18n } from '/@/hooks/web/useI18n';
17 import { joinTimestamp, formatRequestDate } from './helper'; 17 import { joinTimestamp, formatRequestDate } from './helper';
18 -// import { PageEnum } from '/@/enums/pageEnum'; 18 +import { PageEnum } from '/@/enums/pageEnum';
19 import { REFRESH_TOKEN_KEY } from '/@/enums/cacheEnum'; 19 import { REFRESH_TOKEN_KEY } from '/@/enums/cacheEnum';
20 import { router } from '/@/router'; 20 import { router } from '/@/router';
  21 +
21 // import { useUserStore } from '/@/store/modules/user'; 22 // import { useUserStore } from '/@/store/modules/user';
22 // const userStore = useUserStore(); 23 // const userStore = useUserStore();
23 // console.log(userStore.userInfo); 24 // console.log(userStore.userInfo);
24 25
25 // YUNTENG IOT__DEVELOPMENT__2.7.1__COMMON__LOCAL__KEY__ 26 // YUNTENG IOT__DEVELOPMENT__2.7.1__COMMON__LOCAL__KEY__
  27 +
  28 +function timestampToTime(timestamp) {
  29 + const date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
  30 + const Y = date.getFullYear() + '-';
  31 + const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  32 + const D = date.getDate() + ' ';
  33 + const h = date.getHours() + ':';
  34 + const m = date.getMinutes() + ':';
  35 + const s = date.getSeconds();
  36 + return Y + M + D + h + m + s;
  37 +}
  38 +
  39 +function convertToDate() {
  40 + const date = new Date();
  41 + const y = date.getFullYear();
  42 + let m = date.getMonth() + 1;
  43 + let d = date.getDate();
  44 + let h = date.getHours();
  45 + let min = date.getMinutes();
  46 + let s = date.getSeconds();
  47 + m = m < 10 ? '0' + m : m; //月小于10,加0
  48 + d = d < 10 ? '0' + d : d; //day小于10,加0
  49 + h = h < 10 ? '0' + h : h;
  50 + min = min < 10 ? '0' + min : min;
  51 + s = s < 10 ? '0' + s : s;
  52 + return y + '-' + m + '-' + d + ' ' + h + ':' + min + ':' + s;
  53 +}
  54 +
26 const globSetting = useGlobSetting(); 55 const globSetting = useGlobSetting();
27 const urlPrefix = globSetting.urlPrefix; 56 const urlPrefix = globSetting.urlPrefix;
28 const { createMessage, createErrorModal } = useMessage(); 57 const { createMessage, createErrorModal } = useMessage();
29 const getJwtTokenInfo = getAuthCache(REFRESH_TOKEN_KEY); 58 const getJwtTokenInfo = getAuthCache(REFRESH_TOKEN_KEY);
  59 +const getExiper = window.localStorage.getItem(
  60 + 'UNDEFINED__DEVELOPMENT__2.7.1__COMMON__LOCAL__KEY__'
  61 +);
  62 +const getExiperValue = JSON.parse(getExiper);
  63 +const expireTime = timestampToTime(getExiperValue.expire);
  64 +const nowTime = convertToDate();
30 65
31 /** 66 /**
32 * @description: 数据处理,方便区分多种处理方式 67 * @description: 数据处理,方便区分多种处理方式
@@ -130,16 +165,25 @@ const transform: AxiosTransform = { @@ -130,16 +165,25 @@ const transform: AxiosTransform = {
130 165
131 try { 166 try {
132 if (response.data.code === '401' || response.data.msg === 'tenant has expired') { 167 if (response.data.code === '401' || response.data.msg === 'tenant has expired') {
133 - createMessage.error('token已过期,退回登录');  
134 - // router.push(PageEnum.BASE_LOGIN);  
135 - router.beforeEach((to, from, next) => {  
136 - if (getJwtTokenInfo) {  
137 - if (to.path === '/login' || to.path !== '/login') {  
138 - // doRefresh();  
139 - next({ path: '/' });  
140 - } 168 + if (expireTime < nowTime) {
  169 + // console.log('过期');
  170 + createMessage.error('token已经过期,请退回登录');
  171 + } else {
  172 + // console.log('未过期');
  173 + }
  174 + if (getJwtTokenInfo) {
  175 + if (PageEnum.BASE_LOGIN) {
  176 + router.push(PageEnum.BASE_LOGIN);
141 } 177 }
142 - }); 178 + }
  179 + // router.beforeEach((to, from, next) => {
  180 + // if (getJwtTokenInfo) {
  181 + // if (to.path !== '/login') {
  182 + // // doRefresh();
  183 + // next({ path: '/' });
  184 + // }
  185 + // }
  186 + // });
143 } else { 187 } else {
144 // doRefresh(); 188 // doRefresh();
145 } 189 }
@@ -78,12 +78,12 @@ @@ -78,12 +78,12 @@
78 step3ViewHighSetting, 78 step3ViewHighSetting,
79 step3CreateAlarm, 79 step3CreateAlarm,
80 alertContactsSchemas, 80 alertContactsSchemas,
81 - echoFormSchema,  
82 } from './step/data'; 81 } from './step/data';
83 82
84 import { formSchema as conditionFormSchema } from './step/cpns/alarmruleconditions/config'; 83 import { formSchema as conditionFormSchema } from './step/cpns/alarmruleconditions/config';
85 import { formSchema as enableSchema } from './step/cpns/enablerule/config'; 84 import { formSchema as enableSchema } from './step/cpns/enablerule/config';
86 import { formSchema as detailSchema } from './step/cpns/detailtemplate/config'; 85 import { formSchema as detailSchema } from './step/cpns/detailtemplate/config';
  86 + import { formSchema as echoFormSchema } from './step/cpns/alarmruleconditions/cpns/config';
87 87
88 export default defineComponent({ 88 export default defineComponent({
89 name: 'ConfigDrawer', 89 name: 'ConfigDrawer',
@@ -162,86 +162,73 @@ @@ -162,86 +162,73 @@
162 descInfo.value = await deviceConfigGetDetail(data.record.id); 162 descInfo.value = await deviceConfigGetDetail(data.record.id);
163 try { 163 try {
164 await setRegisterDetail({ ...descInfo.value }); 164 await setRegisterDetail({ ...descInfo.value });
165 - // await setRegisterTrans({  
166 - // transportType: descInfo.value.profileData.transportConfiguration.type,  
167 - // });  
168 - // await setRegisterStep3Schemas({  
169 - // alarmType: descInfo.value.profileData.alarms[0].alarmType,  
170 - // });  
171 - // await setRegisterStep3HighSetting({  
172 - // propagate: descInfo.value.profileData.alarms[0].propagate,  
173 - // propagateRelationTypes: descInfo.value.profileData.alarms[0].propagateRelationTypes[0],  
174 - // });  
175 - // await setRegisterStep3CreateAlarm({ ...descInfo.value });  
176 - // await setRegisterStep3RuleAlarm({ ...descInfo.value });  
177 - // await setRegisterContact({ ...descInfo.value });  
178 - // await setRegisterStep3Condition({ ...descInfo.value });  
179 - // await setRegisterStep3Enable({ ...descInfo.value });  
180 - // await setRegisterStep3TemplateDetail({ ...descInfo.value });  
181 } catch (e) { 165 } catch (e) {
182 return e; 166 return e;
183 } 167 }
184 }); 168 });
185 const handleChange = (v) => { 169 const handleChange = (v) => {
186 - switch (v) {  
187 - case '1':  
188 - setRegisterDetail({ ...descInfo.value });  
189 - break;  
190 - case '2':  
191 - setRegisterTrans({  
192 - transportType: descInfo.value.profileData?.transportConfiguration.type,  
193 - });  
194 - break;  
195 - case '3':  
196 - setRegisterStep3Schemas({  
197 - alarmType: descInfo.value.profileData?.alarms[0].alarmType,  
198 - });  
199 - setRegisterStep3HighSetting({  
200 - propagate: descInfo.value.profileData?.alarms[0].propagate,  
201 - propagateRelationTypes: descInfo.value.profileData?.alarms[0].propagateRelationTypes,  
202 - });  
203 - const getKey = Object.keys(descInfo.value.profileData?.alarms[0].createRules);  
204 - console.log(descInfo.value.profileData?.alarms[0].createRules[getKey[0]]);  
205 - // console.log(descInfo.value.profileData.alarms[0].createRules.MAJOR);  
206 - // console.log(descInfo.value.profileData.alarms[0].createRules['MAJOR']);  
207 - setRegisterStep3CreateAlarm({  
208 - WARNING: descInfo.value.profileData?.alarms[0].createRules[getKey[0]],  
209 - });  
210 - setRegisterStep3RuleAlarm({  
211 - type: descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition  
212 - .condition[0].key.type,  
213 - key: descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition  
214 - .condition[0].key.key,  
215 - valueType:  
216 - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition.condition[0]  
217 - .valueType,  
218 - value:  
219 - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition.condition[0]  
220 - .value,  
221 - predicate:  
222 - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition.condition[0]  
223 - .predicate,  
224 - });  
225 - setRegisterStep3Condition({  
226 - conditionType:  
227 - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition.spec.type,  
228 - });  
229 - setRegisterStep3Enable({  
230 - schedule: descInfo.value.profileData?.alarms[0].createRules[getKey[0]].schedule,  
231 - });  
232 - setRegisterStep3TemplateDetail({  
233 - alarmDetails:  
234 - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].alarmDetails,  
235 - });  
236 - break;  
237 - case '4':  
238 - setRegisterContact({  
239 - alarmContactId: descInfo.value.alarmProfile.alarmContactId,  
240 - messageMode: descInfo.value.alarmProfile.messageMode,  
241 - });  
242 - break; 170 + try {
  171 + switch (v) {
  172 + case '1':
  173 + setRegisterDetail({ ...descInfo.value });
  174 + break;
  175 + case '2':
  176 + setRegisterTrans({
  177 + transportType: descInfo.value.profileData?.transportConfiguration.type,
  178 + });
  179 + break;
  180 + case '3':
  181 + setRegisterStep3Schemas({
  182 + alarmType: descInfo.value.profileData?.alarms[0].alarmType,
  183 + });
  184 + setRegisterStep3HighSetting({
  185 + propagate: descInfo.value.profileData?.alarms[0].propagate,
  186 + propagateRelationTypes:
  187 + descInfo.value.profileData?.alarms[0].propagateRelationTypes,
  188 + });
  189 + const getKey = Object.keys(descInfo.value.profileData?.alarms[0].createRules);
  190 + setRegisterStep3CreateAlarm({
  191 + default: getKey[0],
  192 + });
  193 + setRegisterStep3RuleAlarm({
  194 + type: descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition
  195 + .condition[0].key.type,
  196 + key: descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition
  197 + .condition[0].key.key,
  198 + valueType:
  199 + descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition
  200 + .condition[0].valueType,
  201 + value:
  202 + descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition
  203 + .condition[0].value,
  204 + operation:
  205 + descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition
  206 + .condition[0].predicate.operation,
  207 + });
  208 + setRegisterStep3Condition({
  209 + conditionType:
  210 + descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition.spec.type,
  211 + });
  212 + setRegisterStep3Enable({
  213 + schedule: descInfo.value.profileData?.alarms[0].createRules[getKey[0]].schedule,
  214 + });
  215 + setRegisterStep3TemplateDetail({
  216 + alarmDetails:
  217 + descInfo.value.profileData?.alarms[0].createRules[getKey[0]].alarmDetails,
  218 + });
  219 + break;
  220 + case '4':
  221 + setRegisterContact({
  222 + alarmContactId: descInfo.value.alarmProfile.alarmContactId,
  223 + messageMode: descInfo.value.alarmProfile.messageMode,
  224 + });
  225 + break;
  226 + }
  227 + } catch (e) {
  228 + return e;
243 } 229 }
244 }; 230 };
  231 +
245 watch( 232 watch(
246 () => activeKey.value, 233 () => activeKey.value,
247 (v) => { 234 (v) => {
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 <template v-for="(item, index) in profileData" :key="item.id"> 3 <template v-for="(item, index) in profileData" :key="item.id">
4 <CollapseContainer class="border mb-1" :canExpan="false"> 4 <CollapseContainer class="border mb-1" :canExpan="false">
5 <template #action> 5 <template #action>
6 - <div @click="deleteAlarmRule(index)" class="cursor-pointer"> 6 + <div class="cursor-pointer">
7 <img 7 <img
8 style="cursor: pointer" 8 style="cursor: pointer"
9 @click="deleteAlarmRule(index)" 9 @click="deleteAlarmRule(index)"
@@ -78,7 +78,7 @@ @@ -78,7 +78,7 @@
78 <div style="height: 20px"></div> 78 <div style="height: 20px"></div>
79 <p>清除报警规则</p> 79 <p>清除报警规则</p>
80 <template 80 <template
81 - v-for="(childClearItem, createIndex) in item.alarms[0].clearRule" 81 + v-for="(childClearItem, clearIndexItem) in item.alarms[clearIndex].clearRule"
82 :key="childClearItem.id" 82 :key="childClearItem.id"
83 > 83 >
84 <div class="aic mb-1" style="border: 1px solid #bfbfbf"> 84 <div class="aic mb-1" style="border: 1px solid #bfbfbf">
@@ -222,12 +222,13 @@ @@ -222,12 +222,13 @@
222 const ruleClearTemplateData: any = ref(null); 222 const ruleClearTemplateData: any = ref(null);
223 const enableClearTemplateData: any = ref(null); 223 const enableClearTemplateData: any = ref(null);
224 const detailClearTemplateData: any = ref(null); 224 const detailClearTemplateData: any = ref(null);
  225 + const clearIndex = ref(-1);
225 //告警列表 226 //告警列表
226 let profileData = ref<IProfileData[]>([]); 227 let profileData = ref<IProfileData[]>([]);
227 const log = (e) => { 228 const log = (e) => {
228 console.log(e); 229 console.log(e);
229 }; 230 };
230 - // 添加和删除告警配置 231 + //删除告警配置
231 const deleteAlarmRule = (index: number) => { 232 const deleteAlarmRule = (index: number) => {
232 unref(profileData).splice(index, 1); 233 unref(profileData).splice(index, 1);
233 }; 234 };
@@ -235,8 +236,9 @@ @@ -235,8 +236,9 @@
235 const prevStep = () => { 236 const prevStep = () => {
236 emit('prev'); 237 emit('prev');
237 }; 238 };
238 - 239 + //添加报警规则
239 const addAlarmRule = () => { 240 const addAlarmRule = () => {
  241 + clearIndex.value++;
240 unref(profileData).push({ 242 unref(profileData).push({
241 configuration: { 243 configuration: {
242 type: '', 244 type: '',
@@ -319,6 +321,7 @@ @@ -319,6 +321,7 @@
319 setFieldsValue: setRegisterFormCreateAlarm, 321 setFieldsValue: setRegisterFormCreateAlarm,
320 resetFields: resetRegisterFormCreateAlarm, 322 resetFields: resetRegisterFormCreateAlarm,
321 validate: validateRegisterFormCreateAlarm, 323 validate: validateRegisterFormCreateAlarm,
  324 + updateSchema,
322 }, 325 },
323 ] = useForm({ 326 ] = useForm({
324 labelWidth: 120, 327 labelWidth: 120,
@@ -349,8 +352,55 @@ @@ -349,8 +352,55 @@
349 const retryRegisterFormCreateAlarmFunc = (v) => { 352 const retryRegisterFormCreateAlarmFunc = (v) => {
350 setRegisterFormCreateAlarm(v); 353 setRegisterFormCreateAlarm(v);
351 }; 354 };
  355 + const tempValue1: string = ref<string>('');
352 // 添加‘创建条件’ 356 // 添加‘创建条件’
353 const addCreateRole = (index: number) => { 357 const addCreateRole = (index: number) => {
  358 + updateSchema({
  359 + field: 'default',
  360 + componentProps: ({ formModel }) => {
  361 + if (formModel.default == 'CRITICAL') {
  362 + tempValue1.value = formModel.default;
  363 + } else if (formModel.default == 'MAJOR') {
  364 + tempValue1.value = formModel.default;
  365 + } else if (formModel.default == 'MINOR') {
  366 + tempValue1.value = formModel.default;
  367 + } else if (formModel.default == 'WARNING') {
  368 + tempValue1.value = formModel.default;
  369 + } else if (formModel.default == 'INDETERMINATE') {
  370 + tempValue1.value = formModel.default;
  371 + }
  372 + return {
  373 + options: [
  374 + {
  375 + value: 'CRITICAL',
  376 + label: '危险',
  377 + disabled: tempValue1.value == 'CRITICAL',
  378 + },
  379 + {
  380 + value: 'MAJOR',
  381 + label: '重要',
  382 + disabled: tempValue1.value == 'MAJOR',
  383 + },
  384 + {
  385 + value: 'MINOR',
  386 + label: '次要',
  387 + disabled: tempValue1.value == 'MINOR',
  388 + },
  389 + {
  390 + value: 'WARNING',
  391 + label: '警告',
  392 + disabled: tempValue1.value == 'WARNING',
  393 + },
  394 + {
  395 + value: 'INDETERMINATE',
  396 + label: '不确定',
  397 + disabled: tempValue1.value == 'INDETERMINATE',
  398 + },
  399 + ],
  400 + };
  401 + },
  402 + });
  403 +
354 unref(profileData)[index].alarms.push({ 404 unref(profileData)[index].alarms.push({
355 id: Date.now() + Math.random() + '', 405 id: Date.now() + Math.random() + '',
356 alarmType: '', 406 alarmType: '',
@@ -762,7 +812,9 @@ @@ -762,7 +812,9 @@
762 proxy.$refs.getChildData3.resetDataFunc(); 812 proxy.$refs.getChildData3.resetDataFunc();
763 }, 50); 813 }, 50);
764 }; 814 };
  815 +
765 return { 816 return {
  817 + clearIndex,
766 retryRegisterFormFunc, 818 retryRegisterFormFunc,
767 retryRegisterFormHighSettingmFunc, 819 retryRegisterFormHighSettingmFunc,
768 retryRegisterFormCreateAlarmFunc, 820 retryRegisterFormCreateAlarmFunc,
@@ -153,73 +153,31 @@ export const step3CreateAlarm: FormSchema[] = [ @@ -153,73 +153,31 @@ export const step3CreateAlarm: FormSchema[] = [
153 span: 16, 153 span: 16,
154 }, 154 },
155 componentProps({ formModel }) { 155 componentProps({ formModel }) {
156 - const optionsFilter = [  
157 - {  
158 - value: 'CRITICAL',  
159 - label: '危险',  
160 - // disabled: formModel.default == 'CRITICAL',  
161 - },  
162 - {  
163 - value: 'MAJOR',  
164 - label: '重要',  
165 - // disabled: formModel.default == 'MAJOR',  
166 - },  
167 - {  
168 - value: 'MINOR',  
169 - label: '次要',  
170 - // disabled: formModel.default == 'MINOR',  
171 - },  
172 - {  
173 - value: 'WARNING',  
174 - label: '警告',  
175 - // disabled: formModel.default == 'WARNING',  
176 - },  
177 - {  
178 - value: 'INDETERMINATE',  
179 - label: '不确定',  
180 - // disabled: formModel.default == 'INDETERMINATE',  
181 - },  
182 - ];  
183 - const newOptions = optionsFilter.filter((f) => f.value != formModel.default);  
184 return { 156 return {
185 placeholder: '请选择严重程度', 157 placeholder: '请选择严重程度',
186 - options: newOptions.length == 0 ? optionsFilter : newOptions, 158 + options: [
  159 + {
  160 + value: 'CRITICAL',
  161 + label: '危险',
  162 + },
  163 + {
  164 + value: 'MAJOR',
  165 + label: '重要',
  166 + },
  167 + {
  168 + value: 'MINOR',
  169 + label: '次要',
  170 + },
  171 + {
  172 + value: 'WARNING',
  173 + label: '警告',
  174 + },
  175 + {
  176 + value: 'INDETERMINATE',
  177 + label: '不确定',
  178 + },
  179 + ],
187 onChange: (v) => { 180 onChange: (v) => {
188 - // const newFiletr = [  
189 - // {  
190 - // value: 'CRITICAL',  
191 - // label: '危险',  
192 - // // disabled: formModel.default == 'CRITICAL',  
193 - // },  
194 - // {  
195 - // value: 'MAJOR',  
196 - // label: '重要',  
197 - // // disabled: formModel.default == 'MAJOR',  
198 - // },  
199 - // {  
200 - // value: 'MINOR',  
201 - // label: '次要',  
202 - // // disabled: formModel.default == 'MINOR',  
203 - // },  
204 - // {  
205 - // value: 'WARNING',  
206 - // label: '警告',  
207 - // // disabled: formModel.default == 'WARNING',  
208 - // },  
209 - // {  
210 - // value: 'INDETERMINATE',  
211 - // label: '不确定',  
212 - // // disabled: formModel.default == 'INDETERMINATE',  
213 - // },  
214 - // ];  
215 - // const { updateSchema } = formActionType;  
216 - // const newFileterFunc = newFiletr.filter((f) => f.value != v);  
217 - // updateSchema({  
218 - // field: 'default',  
219 - // componentProps: {  
220 - // options: newFileterFunc,  
221 - // },  
222 - // });  
223 isWhereType.value = v ? v : 'INDETERMINATE'; 181 isWhereType.value = v ? v : 'INDETERMINATE';
224 }, 182 },
225 }; 183 };
@@ -280,195 +238,3 @@ export const alertContactsSchemas: FormSchema[] = [ @@ -280,195 +238,3 @@ export const alertContactsSchemas: FormSchema[] = [
280 }, 238 },
281 }, 239 },
282 ]; 240 ];
283 -  
284 -/**  
285 - * 所使用的枚举值  
286 - */  
287 -  
288 -export enum TriggerEnum {  
289 - IS_DEVICE_ACT = '属性',  
290 - IS_TIME_ACT = 'TIME_SERIES',  
291 - IS_SCENE_ACT = '常量',  
292 - IS_STRING = 'STRING',  
293 - IS_NUMERIC = 'NUMERIC',  
294 - IS_BOOLEAN = 'BOOLEAN',  
295 - IS_COMPLEX = 'COMPLEX',  
296 -}  
297 -  
298 -export const isShiDu = (type: string) => {  
299 - return type === TriggerEnum.IS_DEVICE_ACT;  
300 -};  
301 -export const isWenDu = (type: string) => {  
302 - return type === TriggerEnum.IS_TIME_ACT;  
303 -};  
304 -  
305 -export const isTimeAll = (type: string) => {  
306 - return type === TriggerEnum.IS_SCENE_ACT;  
307 -};  
308 -  
309 -export const isString = (type: string) => {  
310 - return type === TriggerEnum.IS_STRING;  
311 -};  
312 -  
313 -export const isNumeric = (type: string) => {  
314 - return type === TriggerEnum.IS_NUMERIC;  
315 -};  
316 -  
317 -export const isBoolean = (type: string) => {  
318 - return type === TriggerEnum.IS_BOOLEAN;  
319 -};  
320 -  
321 -export const isComplex = (type: string) => {  
322 - return type === TriggerEnum.IS_COMPLEX;  
323 -};  
324 -  
325 -export const echoFormSchema: FormSchema[] = [  
326 - {  
327 - field: 'type',  
328 - label: '键类型',  
329 - colProps: { span: 24 },  
330 - component: 'Select',  
331 - componentProps: {  
332 - placeholder: '请选择键类型',  
333 - options: [  
334 - { label: '属性', value: '属性' },  
335 - { label: 'Timeseries', value: 'TIME_SERIES' },  
336 - { label: '常量', value: '常量' },  
337 - ],  
338 - },  
339 - },  
340 - {  
341 - field: 'key',  
342 - label: '键名',  
343 - colProps: { span: 24 },  
344 - component: 'Select',  
345 - componentProps: {  
346 - placeholder: '请选择键名',  
347 - options: [  
348 - { label: 'active', value: 'active' },  
349 - { label: 'inactivityAlarmTime', value: 'inactivityAlarmTime' },  
350 - { label: 'lastActivityTime', value: 'lastActivityTime' },  
351 - { label: 'lastConnectTime', value: 'lastConnectTime' },  
352 - { label: 'lastDisconnectTime', value: 'lastDisconnectTime' },  
353 - ],  
354 - },  
355 - ifShow: ({ values }) => isShiDu(Reflect.get(values, 'type')),  
356 - },  
357 - {  
358 - field: 'key',  
359 - label: '键名',  
360 - colProps: { span: 24 },  
361 - component: 'Select',  
362 - componentProps: {  
363 - placeholder: '请选择键名',  
364 - options: [  
365 - { label: 'CO2', value: 'CO2' },  
366 - { label: 'temp', value: 'temp' },  
367 - { label: 'wet', value: 'wet' },  
368 - ],  
369 - },  
370 - ifShow: ({ values }) => isWenDu(Reflect.get(values, 'type')),  
371 - },  
372 - {  
373 - field: 'key',  
374 - label: '键名',  
375 - colProps: { span: 24 },  
376 - component: 'Input',  
377 - componentProps: {  
378 - placeholder: '请输入键名',  
379 - },  
380 - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),  
381 - },  
382 - {  
383 - field: 'type1',  
384 - label: '值类型',  
385 - colProps: { span: 24 },  
386 - component: 'Select',  
387 - componentProps: {  
388 - placeholder: '请选择值类型',  
389 - options: [  
390 - { label: '字符串', value: 'STRING' },  
391 - { label: '数字', value: 'NUMERIC' },  
392 - { label: '布尔值', value: 'BOOLEAN' },  
393 - { label: '日期时间', value: 'COMPLEX' },  
394 - ],  
395 - },  
396 - },  
397 - {  
398 - field: 'operation',  
399 - label: '操作',  
400 - colProps: { span: 24 },  
401 - component: 'Select',  
402 - componentProps: {  
403 - placeholder: '请选择操作',  
404 - options: [  
405 - { label: '等于', value: 'EQUAL' },  
406 - { label: '不等于', value: 'NOT_EQUAL' },  
407 - { label: '开始于', value: 'STARTS_WITH' },  
408 - { label: '结束于', value: 'ENDS_WITH' },  
409 - { label: '包含', value: 'CONTAINS' },  
410 - { label: '不包含', value: 'NOT_CONTAINS' },  
411 - ],  
412 - },  
413 - ifShow: ({ values }) => isString(Reflect.get(values, 'type1')),  
414 - },  
415 - {  
416 - field: 'operation',  
417 - label: '操作',  
418 - colProps: { span: 24 },  
419 - component: 'Select',  
420 - componentProps: {  
421 - placeholder: '请选择操作',  
422 - options: [  
423 - { label: '等于', value: 'EQUAL' },  
424 - { label: '不等于', value: 'NOT_EQUAL' },  
425 - { label: '大于', value: 'GREATER' },  
426 - { label: '小于', value: 'LESS' },  
427 - { label: '大于或等于', value: 'GREATER_OR_EQUAL' },  
428 - { label: '小于或等于', value: 'LESS_OR_EQUAL' },  
429 - ],  
430 - },  
431 - ifShow: ({ values }) => isNumeric(Reflect.get(values, 'type1')),  
432 - },  
433 - {  
434 - field: 'operation',  
435 - label: '操作',  
436 - colProps: { span: 24 },  
437 - component: 'Select',  
438 - componentProps: {  
439 - placeholder: '请选择操作',  
440 - options: [  
441 - { label: '等于', value: 'EQUAL' },  
442 - { label: '不等于', value: 'NOT_EQUAL' },  
443 - ],  
444 - },  
445 - ifShow: ({ values }) => isBoolean(Reflect.get(values, 'type1')),  
446 - },  
447 - {  
448 - field: 'operation',  
449 - label: '操作',  
450 - colProps: { span: 24 },  
451 - component: 'Select',  
452 - componentProps: {  
453 - placeholder: '请选择操作',  
454 - options: [  
455 - { label: '等于', value: 'EQUAL' },  
456 - { label: '不等于', value: 'NOT_EQUAL' },  
457 - { label: '大于', value: 'GREATER' },  
458 - { label: '小于', value: 'LESS' },  
459 - { label: '大于或等于', value: 'GREATER_OR_EQUAL' },  
460 - { label: '小于或等于', value: 'LESS_OR_EQUAL' },  
461 - ],  
462 - },  
463 - ifShow: ({ values }) => isComplex(Reflect.get(values, 'type1')),  
464 - },  
465 - {  
466 - field: 'value1',  
467 - label: '默认值',  
468 - colProps: { span: 24 },  
469 - component: 'Input',  
470 - componentProps: {  
471 - placeholder: '请输入默认值(数字)',  
472 - },  
473 - },  
474 -];  
@@ -133,7 +133,7 @@ @@ -133,7 +133,7 @@
133 title: t('sys.api.loginFailed'), 133 title: t('sys.api.loginFailed'),
134 content: 134 content:
135 error.response && error.response.status == 401 135 error.response && error.response.status == 401
136 - ? t('sys.api.passwordOrUserNameError') 136 + ? error.response.data.message
137 : error.code == 'ECONNABORTED' 137 : error.code == 'ECONNABORTED'
138 ? t('sys.api.timeoutMessage') 138 ? t('sys.api.timeoutMessage')
139 : t('sys.api.apiRequestFailed'), 139 : t('sys.api.apiRequestFailed'),