Commit 3a2b867cd925b9c58f36168326df954de8ea002d
Merge branch 'ft-dev' into 'main'
fix:发现打包问题,原因是ant-design-vue有些样式没找到 See merge request huang/yun-teng-iot-front!73
Showing
13 changed files
with
66 additions
and
56 deletions
@@ -111,14 +111,11 @@ | @@ -111,14 +111,11 @@ | ||
111 | const getPersonalDetailValue: any = ref({}); | 111 | const getPersonalDetailValue: any = ref({}); |
112 | const avatarUrl: any = ref(''); | 112 | const avatarUrl: any = ref(''); |
113 | const getBackendV: any = ref({}); | 113 | const getBackendV: any = ref({}); |
114 | - const retryFormData: any = ref({}); | ||
115 | - // const retryDefaultData: any = ref({}); | ||
116 | const [registerDesc] = useDescription({ | 114 | const [registerDesc] = useDescription({ |
117 | title: '个人详情', | 115 | title: '个人详情', |
118 | schema: schema, | 116 | schema: schema, |
119 | }); | 117 | }); |
120 | 118 | ||
121 | - const [registerModal, { closeModal }] = useModalInner(); | ||
122 | const avatar = computed(() => { | 119 | const avatar = computed(() => { |
123 | const { avatar } = userStore.getUserInfo; | 120 | const { avatar } = userStore.getUserInfo; |
124 | return avatarUrl.value || avatar || defaultImage; | 121 | return avatarUrl.value || avatar || defaultImage; |
@@ -130,25 +127,15 @@ | @@ -130,25 +127,15 @@ | ||
130 | showActionButtonGroup: false, | 127 | showActionButtonGroup: false, |
131 | schemas: formSchema, | 128 | schemas: formSchema, |
132 | }); | 129 | }); |
133 | - //回显数据 | ||
134 | - const retryFieldsValue = async () => { | ||
135 | - try { | ||
136 | - // retryDefaultData.value = await personalGet(getUserInfo.userId); | ||
137 | - const getUserInfo = await userInfo; | ||
138 | - // const getUserInfo = userStore.getUserInfo; | ||
139 | - retryFormData.value = getUserInfo; | ||
140 | - setFieldsValue({ | ||
141 | - realName: retryFormData.value.realName, | ||
142 | - phoneNumber: retryFormData.value.phoneNumber, | ||
143 | - email: retryFormData.value.email, | ||
144 | - }); | ||
145 | - } catch (e) { | ||
146 | - return e; | ||
147 | - } | ||
148 | - }; | ||
149 | - // setTimeout(() => { | ||
150 | - // retryFieldsValue(); | ||
151 | - // }, 3000); | 130 | + |
131 | + const [registerModal, { closeModal }] = useModalInner(async (data) => { | ||
132 | + setFieldsValue({ | ||
133 | + realName: data.userInfo.realName, | ||
134 | + phoneNumber: data.userInfo.phoneNumber, | ||
135 | + email: data.userInfo.email, | ||
136 | + }); | ||
137 | + getPersonalDetailValue.value = data.userInfo; | ||
138 | + }); | ||
152 | const handleSubmit = async () => { | 139 | const handleSubmit = async () => { |
153 | const getUserInfo = await userInfo; | 140 | const getUserInfo = await userInfo; |
154 | getPersonalValue.value = await validate(); | 141 | getPersonalValue.value = await validate(); |
@@ -160,29 +147,10 @@ | @@ -160,29 +147,10 @@ | ||
160 | closeModal(); | 147 | closeModal(); |
161 | resetFields(); | 148 | resetFields(); |
162 | }; | 149 | }; |
163 | - | ||
164 | - const getPersonalDetail = async () => { | ||
165 | - try { | ||
166 | - const getUserInfo = await userInfo; | ||
167 | - getPersonalDetailValue.value = getUserInfo; | ||
168 | - setTimeout(() => { | ||
169 | - setFieldsValue({ | ||
170 | - realName: getPersonalDetailValue.value.realName, | ||
171 | - phoneNumber: getPersonalDetailValue.value.phoneNumber, | ||
172 | - email: getPersonalDetailValue.value.email, | ||
173 | - }); | ||
174 | - }, 1000); | ||
175 | - } catch (e) { | ||
176 | - return e; | ||
177 | - } | ||
178 | - }; | ||
179 | - getPersonalDetail(); | ||
180 | - | ||
181 | const compHeight = computed(() => { | 150 | const compHeight = computed(() => { |
182 | return 1000; | 151 | return 1000; |
183 | }); | 152 | }); |
184 | return { | 153 | return { |
185 | - retryFieldsValue, | ||
186 | uploadApi, | 154 | uploadApi, |
187 | compHeight, | 155 | compHeight, |
188 | updateAvatar, | 156 | updateAvatar, |
@@ -53,13 +53,13 @@ | @@ -53,13 +53,13 @@ | ||
53 | import { useI18n } from '/@/hooks/web/useI18n'; | 53 | import { useI18n } from '/@/hooks/web/useI18n'; |
54 | import { useDesign } from '/@/hooks/web/useDesign'; | 54 | import { useDesign } from '/@/hooks/web/useDesign'; |
55 | import { useModal } from '/@/components/Modal'; | 55 | import { useModal } from '/@/components/Modal'; |
56 | - | ||
57 | import headerImg from '/@/assets/images/header.jpg'; | 56 | import headerImg from '/@/assets/images/header.jpg'; |
58 | import { propTypes } from '/@/utils/propTypes'; | 57 | import { propTypes } from '/@/utils/propTypes'; |
59 | import { openWindow } from '/@/utils'; | 58 | import { openWindow } from '/@/utils'; |
60 | - | ||
61 | import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; | 59 | import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; |
62 | - | 60 | + import { USER_INFO_KEY } from '/@/enums/cacheEnum'; |
61 | + import { getAuthCache } from '/@/utils/auth'; | ||
62 | + import { useUserStore } from '/@/store/modules/user'; | ||
63 | type MenuEvent = 'logout' | 'doc' | 'lock' | 'personal'; | 63 | type MenuEvent = 'logout' | 'doc' | 'lock' | 'personal'; |
64 | 64 | ||
65 | export default defineComponent({ | 65 | export default defineComponent({ |
@@ -75,6 +75,7 @@ | @@ -75,6 +75,7 @@ | ||
75 | theme: propTypes.oneOf(['dark', 'light']), | 75 | theme: propTypes.oneOf(['dark', 'light']), |
76 | }, | 76 | }, |
77 | setup() { | 77 | setup() { |
78 | + const userInfo = getAuthCache(USER_INFO_KEY); | ||
78 | const { proxy } = getCurrentInstance(); | 79 | const { proxy } = getCurrentInstance(); |
79 | const personalRef = ref(null); | 80 | const personalRef = ref(null); |
80 | const { prefixCls } = useDesign('header-user-dropdown'); | 81 | const { prefixCls } = useDesign('header-user-dropdown'); |
@@ -123,8 +124,9 @@ | @@ -123,8 +124,9 @@ | ||
123 | 124 | ||
124 | const openPersonalFunc = () => { | 125 | const openPersonalFunc = () => { |
125 | setTimeout(() => { | 126 | setTimeout(() => { |
126 | - openModalPersonal(true); | ||
127 | - proxy.$refs.personalRef.retryFieldsValue(); | 127 | + openModalPersonal(true, { |
128 | + userInfo, | ||
129 | + }); | ||
128 | }, 10); | 130 | }, 10); |
129 | }; | 131 | }; |
130 | 132 |
@@ -128,6 +128,8 @@ | @@ -128,6 +128,8 @@ | ||
128 | import { columns } from './props'; | 128 | import { columns } from './props'; |
129 | import { isAdmin } from '/@/enums/roleEnum'; | 129 | import { isAdmin } from '/@/enums/roleEnum'; |
130 | import { getTenantExpireTimeList } from '/@/api/dashboard'; | 130 | import { getTenantExpireTimeList } from '/@/api/dashboard'; |
131 | + import 'ant-design-vue/es/anchor-link/style/index'; | ||
132 | + | ||
131 | export default defineComponent({ | 133 | export default defineComponent({ |
132 | components: { | 134 | components: { |
133 | Card, | 135 | Card, |
@@ -25,6 +25,7 @@ export const step1Schemas: FormSchema[] = [ | @@ -25,6 +25,7 @@ export const step1Schemas: FormSchema[] = [ | ||
25 | component: 'Input', | 25 | component: 'Input', |
26 | componentProps: { | 26 | componentProps: { |
27 | placeholder: '设备名称', | 27 | placeholder: '设备名称', |
28 | + maxLength: 30, | ||
28 | }, | 29 | }, |
29 | rules: DeviceNameMaxLength, | 30 | rules: DeviceNameMaxLength, |
30 | }, | 31 | }, |
@@ -268,7 +269,7 @@ export const step2Schemas: FormSchema[] = [ | @@ -268,7 +269,7 @@ export const step2Schemas: FormSchema[] = [ | ||
268 | required: true, | 269 | required: true, |
269 | ifShow: false, | 270 | ifShow: false, |
270 | componentProps: { | 271 | componentProps: { |
271 | - maxLength: 64, | 272 | + maxLength: 0, |
272 | }, | 273 | }, |
273 | }, | 274 | }, |
274 | { | 275 | { |
@@ -298,6 +299,9 @@ export const step2Schemas: FormSchema[] = [ | @@ -298,6 +299,9 @@ export const step2Schemas: FormSchema[] = [ | ||
298 | required: true, | 299 | required: true, |
299 | rules: DeviceUserNameMaxLength, | 300 | rules: DeviceUserNameMaxLength, |
300 | ifShow: false, | 301 | ifShow: false, |
302 | + componentProps: { | ||
303 | + maxLength: 255, | ||
304 | + }, | ||
301 | }, | 305 | }, |
302 | { | 306 | { |
303 | label: '密码', | 307 | label: '密码', |
@@ -446,7 +450,7 @@ export const TokenSchemas: FormSchema[] = [ | @@ -446,7 +450,7 @@ export const TokenSchemas: FormSchema[] = [ | ||
446 | required: true, | 450 | required: true, |
447 | ifShow: false, | 451 | ifShow: false, |
448 | componentProps: { | 452 | componentProps: { |
449 | - maxLength: 64, | 453 | + maxLength: 0, |
450 | }, | 454 | }, |
451 | }, | 455 | }, |
452 | { | 456 | { |
@@ -476,6 +480,9 @@ export const TokenSchemas: FormSchema[] = [ | @@ -476,6 +480,9 @@ export const TokenSchemas: FormSchema[] = [ | ||
476 | required: true, | 480 | required: true, |
477 | ifShow: false, | 481 | ifShow: false, |
478 | rules: DeviceUserNameMaxLength, | 482 | rules: DeviceUserNameMaxLength, |
483 | + componentProps: { | ||
484 | + maxLength: 255, | ||
485 | + }, | ||
479 | }, | 486 | }, |
480 | { | 487 | { |
481 | label: '密码', | 488 | label: '密码', |
@@ -203,6 +203,9 @@ export const alarmSchemasForm: FormSchema[] = [ | @@ -203,6 +203,9 @@ export const alarmSchemasForm: FormSchema[] = [ | ||
203 | field: 'details', | 203 | field: 'details', |
204 | label: '详情', | 204 | label: '详情', |
205 | component: 'InputTextArea', | 205 | component: 'InputTextArea', |
206 | + componentProps: { | ||
207 | + maxLength: 255, | ||
208 | + }, | ||
206 | }, | 209 | }, |
207 | ]; | 210 | ]; |
208 | 211 | ||
@@ -213,12 +216,18 @@ export const childDeviceSchemas: FormSchema[] = [ | @@ -213,12 +216,18 @@ export const childDeviceSchemas: FormSchema[] = [ | ||
213 | label: '设备配置', | 216 | label: '设备配置', |
214 | component: 'Select', | 217 | component: 'Select', |
215 | colProps: { span: 12 }, | 218 | colProps: { span: 12 }, |
219 | + componentProps: { | ||
220 | + maxLength: 255, | ||
221 | + }, | ||
216 | }, | 222 | }, |
217 | { | 223 | { |
218 | field: 'icon', | 224 | field: 'icon', |
219 | label: '设备名称', | 225 | label: '设备名称', |
220 | component: 'Input', | 226 | component: 'Input', |
221 | colProps: { span: 12 }, | 227 | colProps: { span: 12 }, |
228 | + componentProps: { | ||
229 | + maxLength: 255, | ||
230 | + }, | ||
222 | }, | 231 | }, |
223 | ]; | 232 | ]; |
224 | export const childDeviceColumns: BasicColumn[] = [ | 233 | export const childDeviceColumns: BasicColumn[] = [ |
@@ -88,5 +88,8 @@ export const searchFormSchema: FormSchema[] = [ | @@ -88,5 +88,8 @@ export const searchFormSchema: FormSchema[] = [ | ||
88 | component: 'Input', | 88 | component: 'Input', |
89 | colProps: { span: 7 }, | 89 | colProps: { span: 7 }, |
90 | rules: DeviceQueryUserNameMaxLength, | 90 | rules: DeviceQueryUserNameMaxLength, |
91 | + componentProps: { | ||
92 | + maxLength: 255, | ||
93 | + }, | ||
91 | }, | 94 | }, |
92 | ]; | 95 | ]; |
@@ -42,6 +42,8 @@ | @@ -42,6 +42,8 @@ | ||
42 | import { Steps, Step } from 'ant-design-vue'; | 42 | import { Steps, Step } from 'ant-design-vue'; |
43 | import { useMessage } from '/@/hooks/web/useMessage'; | 43 | import { useMessage } from '/@/hooks/web/useMessage'; |
44 | import { credentialTypeEnum } from '../../config/data'; | 44 | import { credentialTypeEnum } from '../../config/data'; |
45 | + import 'ant-design-vue/es/step/style/index'; | ||
46 | + | ||
45 | export default defineComponent({ | 47 | export default defineComponent({ |
46 | name: 'DeviceModal', | 48 | name: 'DeviceModal', |
47 | components: { | 49 | components: { |
@@ -117,6 +117,7 @@ | @@ -117,6 +117,7 @@ | ||
117 | import { formSchema as enableClearSchema } from './step/cpns/enablerule/config'; | 117 | import { formSchema as enableClearSchema } from './step/cpns/enablerule/config'; |
118 | import { formSchema as detailClearSchema } from './step/cpns/detailtemplate/config'; | 118 | import { formSchema as detailClearSchema } from './step/cpns/detailtemplate/config'; |
119 | import { formSchema as echoFormClearSchema } from './step/cpns/alarmruleconditions/cpns/config'; | 119 | import { formSchema as echoFormClearSchema } from './step/cpns/alarmruleconditions/cpns/config'; |
120 | + import 'ant-design-vue/es/tab-pane/style/index.css'; | ||
120 | 121 | ||
121 | export default defineComponent({ | 122 | export default defineComponent({ |
122 | name: 'ConfigDrawer', | 123 | name: 'ConfigDrawer', |
@@ -2,6 +2,17 @@ | @@ -2,6 +2,17 @@ | ||
2 | <div class="step1"> | 2 | <div class="step1"> |
3 | <div class="step1-form"> | 3 | <div class="step1-form"> |
4 | <BasicForm @register="register" /> | 4 | <BasicForm @register="register" /> |
5 | + <div> | ||
6 | + <span>请上传图片</span> | ||
7 | + <CropperAvatar | ||
8 | + :uploadApi="uploadApi" | ||
9 | + :value="avatar" | ||
10 | + btnText="更换头像" | ||
11 | + :btnProps="{ preIcon: 'ant-design:cloud-upload-outlined' }" | ||
12 | + @change="updateAvatar" | ||
13 | + width="150" | ||
14 | + /> | ||
15 | + </div> | ||
5 | </div> | 16 | </div> |
6 | </div> | 17 | </div> |
7 | </template> | 18 | </template> |
@@ -10,6 +21,8 @@ | @@ -10,6 +21,8 @@ | ||
10 | import { BasicForm, useForm } from '/@/components/Form'; | 21 | import { BasicForm, useForm } from '/@/components/Form'; |
11 | import { step1Schemas } from './data'; | 22 | import { step1Schemas } from './data'; |
12 | import { Select, Input, Divider } from 'ant-design-vue'; | 23 | import { Select, Input, Divider } from 'ant-design-vue'; |
24 | + import { CropperAvatar } from '/@/components/Cropper'; | ||
25 | + import { uploadApi } from '/@/api/personal/index'; | ||
13 | 26 | ||
14 | export default defineComponent({ | 27 | export default defineComponent({ |
15 | components: { | 28 | components: { |
@@ -18,6 +31,7 @@ | @@ -18,6 +31,7 @@ | ||
18 | [Input.name]: Input, | 31 | [Input.name]: Input, |
19 | [Input.Group.name]: Input.Group, | 32 | [Input.Group.name]: Input.Group, |
20 | [Divider.name]: Divider, | 33 | [Divider.name]: Divider, |
34 | + CropperAvatar, | ||
21 | }, | 35 | }, |
22 | emits: ['next', 'resetFunc'], | 36 | emits: ['next', 'resetFunc'], |
23 | setup(_, { emit }) { | 37 | setup(_, { emit }) { |
@@ -45,7 +59,7 @@ | @@ -45,7 +59,7 @@ | ||
45 | const customResetFunc = async () => { | 59 | const customResetFunc = async () => { |
46 | await resetFields(); | 60 | await resetFields(); |
47 | }; | 61 | }; |
48 | - return { register, resetFieldsFunc, customResetFunc }; | 62 | + return { register, resetFieldsFunc, customResetFunc, uploadApi }; |
49 | }, | 63 | }, |
50 | }); | 64 | }); |
51 | </script> | 65 | </script> |
@@ -48,7 +48,7 @@ export const step1Schemas: FormSchema[] = [ | @@ -48,7 +48,7 @@ export const step1Schemas: FormSchema[] = [ | ||
48 | // span: 8, | 48 | // span: 8, |
49 | // }, | 49 | // }, |
50 | // componentProps: { | 50 | // componentProps: { |
51 | - // // api: uploadApi, | 51 | + // api: uploadApi, |
52 | // }, | 52 | // }, |
53 | // }, | 53 | // }, |
54 | { | 54 | { |
@@ -16,6 +16,7 @@ | @@ -16,6 +16,7 @@ | ||
16 | import SmsLog from './item/SmsLog.vue'; | 16 | import SmsLog from './item/SmsLog.vue'; |
17 | import EmailLog from './item/EmailLog.vue'; | 17 | import EmailLog from './item/EmailLog.vue'; |
18 | import { achieveList } from './data'; | 18 | import { achieveList } from './data'; |
19 | + import 'ant-design-vue/es/tab-pane/style/index.css'; | ||
19 | 20 | ||
20 | export default defineComponent({ | 21 | export default defineComponent({ |
21 | components: { | 22 | components: { |
@@ -97,6 +97,7 @@ export const formSchema: FormSchema[] = [ | @@ -97,6 +97,7 @@ export const formSchema: FormSchema[] = [ | ||
97 | component: 'Input', | 97 | component: 'Input', |
98 | componentProps: { | 98 | componentProps: { |
99 | placeholder: '请输入标题', | 99 | placeholder: '请输入标题', |
100 | + maxLength: 200, | ||
100 | }, | 101 | }, |
101 | rules: NotificationTitleMaxLength, | 102 | rules: NotificationTitleMaxLength, |
102 | }, | 103 | }, |
@@ -11,9 +11,9 @@ | @@ -11,9 +11,9 @@ | ||
11 | <a-button @click="fireResourceError" type="primary"> | 11 | <a-button @click="fireResourceError" type="primary"> |
12 | {{ t('sys.errorLog.fireResourceError') }} | 12 | {{ t('sys.errorLog.fireResourceError') }} |
13 | </a-button> | 13 | </a-button> |
14 | - <a-button @click="fireAjaxError" type="primary"> | 14 | + <!-- <a-button @click="fireAjaxError" type="primary"> |
15 | {{ t('sys.errorLog.fireAjaxError') }} | 15 | {{ t('sys.errorLog.fireAjaxError') }} |
16 | - </a-button> | 16 | + </a-button> --> |
17 | </template> | 17 | </template> |
18 | <template #action="{ record }"> | 18 | <template #action="{ record }"> |
19 | <TableAction | 19 | <TableAction |
@@ -36,7 +36,7 @@ | @@ -36,7 +36,7 @@ | ||
36 | import { useMessage } from '/@/hooks/web/useMessage'; | 36 | import { useMessage } from '/@/hooks/web/useMessage'; |
37 | import { useI18n } from '/@/hooks/web/useI18n'; | 37 | import { useI18n } from '/@/hooks/web/useI18n'; |
38 | import { useErrorLogStore } from '/@/store/modules/errorLog'; | 38 | import { useErrorLogStore } from '/@/store/modules/errorLog'; |
39 | - import { fireErrorApi } from '/@/api/demo/error'; | 39 | + // import { fireErrorApi } from '/@/api/demo/error'; |
40 | import { getColumns } from './data'; | 40 | import { getColumns } from './data'; |
41 | import { cloneDeep } from 'lodash-es'; | 41 | import { cloneDeep } from 'lodash-es'; |
42 | 42 | ||
@@ -86,7 +86,7 @@ | @@ -86,7 +86,7 @@ | ||
86 | imgList.value.push(`${new Date().getTime()}.png`); | 86 | imgList.value.push(`${new Date().getTime()}.png`); |
87 | } | 87 | } |
88 | 88 | ||
89 | - async function fireAjaxError() { | ||
90 | - await fireErrorApi(); | ||
91 | - } | 89 | + // async function fireAjaxError() { |
90 | + // await fireErrorApi(); | ||
91 | + // } | ||
92 | </script> | 92 | </script> |