From 5aec20bfa04d59849fafa3a6481a89c93ce0bd27 Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Tue, 21 Jun 2022 17:53:49 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=A4=A7=E7=89=88=E6=9C=AC=E5=8F=91?= =?UTF-8?q?=E5=B8=83=EF=BC=8C1.3.0=E7=89=88=E6=9C=AC=E6=BA=90=E7=A0=81?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=EF=BC=88=E5=85=A8=E5=8A=9F=E8=83=BD=E8=B6=8B?= =?UTF-8?q?=E4=BA=8E=E7=A8=B3=E5=AE=9A=E5=81=A5=E5=A3=AE=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + package.json | 18 +- prettier.config.js | 1 + src/api/common/api.ts | 46 ++ src/api/sys/user.ts | 2 +- src/assets/images/panel_cover.png | Bin 0 -> 2351 bytes src/components/Button/index.ts | 4 +- src/components/Button/src/JUploadButton.vue | 41 ++ src/components/Button/src/props.ts | 4 +- src/components/Cropper/src/CopperModal.vue | 5 +- src/components/Form/src/BasicForm.vue | 1 + src/components/Form/src/componentMap.ts | 2 - .../Form/src/components/FormAction.vue | 5 +- src/components/Form/src/hooks/useForm.ts | 5 +- .../Form/src/jeecg/components/JAddInput.vue | 6 +- .../src/jeecg/components/JAreaLinkage.vue | 19 +- .../Form/src/jeecg/components/JAreaSelect.vue | 7 +- .../Form/src/jeecg/components/JCodeEditor.vue | 14 +- .../components/JEasyCron/EasyCronInner.vue | 11 +- .../Form/src/jeecg/components/JEllipsis.vue | 2 +- .../src/jeecg/components/JFormContainer.vue | 60 +++ .../src/jeecg/components/JImageUpload.vue | 2 +- .../Form/src/jeecg/components/JInputPop.vue | 4 +- .../jeecg/components/JOnlineSelectCascade.vue | 220 --------- .../Form/src/jeecg/components/JPopup.vue | 8 +- .../src/jeecg/components/JSearchSelect.vue | 38 +- .../Form/src/jeecg/components/JSelectDept.vue | 19 +- .../src/jeecg/components/JSelectMultiple.vue | 24 +- .../Form/src/jeecg/components/JSelectRole.vue | 8 +- .../Form/src/jeecg/components/JSelectUser.vue | 5 +- .../Form/src/jeecg/components/JSwitch.vue | 2 +- .../Form/src/jeecg/components/JTreeSelect.vue | 18 +- .../src/jeecg/components/JUpload/JUpload.vue | 6 + .../src/jeecg/components/base/JSelectBiz.vue | 8 +- .../components/modal/DeptSelectModal.vue | 15 +- .../components/modal/JPopupOnlReportModal.vue | 24 +- .../components/modal/PositionSelectModal.vue | 19 +- .../components/modal/RoleSelectModal.vue | 13 +- .../components/modal/UserSelectByDepModal.vue | 11 +- .../components/modal/UserSelectModal.vue | 60 ++- .../Form/src/jeecg/hooks/useSelectBiz.ts | 22 +- src/components/Form/src/jeecg/props/props.ts | 7 + src/components/Form/src/types/form.ts | 6 +- src/components/Form/src/types/index.ts | 1 - src/components/Form/src/utils/Area.ts | 5 + src/components/Form/src/utils/formUtils.ts | 8 +- src/components/Icon/src/IconPicker.vue | 3 +- .../src/components/JVxeDepartSelectCell.vue | 51 ++- .../src/components/JVxeUserSelectCell.vue | 23 +- src/components/Markdown/src/Markdown.vue | 46 ++ src/components/Menu/src/BasicMenu.vue | 6 +- .../Menu/src/components/BasicMenuItem.vue | 2 +- .../SimpleMenu/src/components/MenuItem.vue | 21 + .../Table/src/components/TableAction.vue | 50 ++- .../Table/src/components/TableHeader.vue | 2 +- .../src/components/settings/ColumnSetting.vue | 101 ++++- src/components/Table/src/hooks/useColumns.ts | 27 +- .../Table/src/hooks/useColumnsCache.ts | 137 ++++++ .../Table/src/hooks/useTableHeader.ts | 3 +- src/components/Table/src/types/table.ts | 6 + src/components/Tinymce/src/Editor.vue | 4 +- src/components/Tinymce/src/ImgUpload.vue | 28 +- .../src/components/JVxeDetailsModal.vue | 4 +- .../src/components/JVxeSubPopover.vue | 12 +- .../JVxeTable/src/components/JVxeToolbar.vue | 4 +- .../src/components/cells/JVxeTextareaCell.vue | 9 +- .../jeecg/JVxeTable/src/hooks/useColumns.ts | 8 +- .../JVxeTable/src/hooks/useDataSource.ts | 2 +- .../JVxeTable/src/hooks/useJVxeComponent.ts | 23 + .../jeecg/JVxeTable/src/hooks/useMethods.ts | 7 + .../JVxeTable/src/hooks/useValidateRules.ts | 14 +- .../jeecg/JVxeTable/src/utils/authUtils.ts | 10 +- .../JVxeTable/src/utils/registerUtils.ts | 4 +- .../jeecg/OnLine/JPopupOnlReport.vue | 4 +- .../jeecg/OnLine/SearchFormItem.vue | 11 +- .../jeecg/OnLine/hooks/usePopBiz.ts | 72 ++- src/components/registerGlobComp.ts | 12 +- src/hooks/event/useEventListener.ts | 4 +- src/hooks/system/useJvxeMethods.ts | 94 +++- src/hooks/system/useListPage.ts | 42 +- src/hooks/system/useThirdLogin.ts | 6 +- src/hooks/web/usePermission.ts | 60 ++- .../header/components/notify/NoticeList.vue | 9 +- .../header/components/notify/index.vue | 15 +- .../components/user-dropdown/DepartSelect.vue | 5 +- .../header/components/user-dropdown/index.vue | 9 +- src/layouts/default/header/index.vue | 13 +- src/layouts/default/menu/index.vue | 10 +- .../setting/components/SettingFooter.vue | 8 +- .../default/tabs/components/TabContent.vue | 10 +- src/locales/lang/zh-CN/sys.ts | 2 +- src/store/modules/locale.ts | 12 + src/store/modules/permission.ts | 15 + src/store/modules/user.ts | 23 +- src/utils/auth/index.ts | 29 +- src/utils/common/compUtils.ts | 10 + src/utils/common/renderUtils.ts | 45 +- src/utils/common/vxeUtils.ts | 16 +- src/utils/dict/JDictSelectUtil.js | 17 +- src/utils/dict/index.ts | 9 +- src/utils/helper/validator.ts | 33 +- src/utils/index.ts | 123 +++++ src/views/demo/form/index.vue | 9 +- .../demo/jeecg/JVxeTableDemo/JVxeDemo5.vue | 4 +- .../JVxeTableDemo/func-demo/JSBCDemo.vue | 6 +- .../JVxeTableDemo/func-demo/SocketReload.vue | 20 +- .../demo/jeecg/Native/less/TableExpand.less | 102 +++++ .../demo/jeecg/Native/one/OneNativeList.vue | 418 +++++++++++++++++ .../Native/one/components/OneNativeForm.vue | 423 ++++++++++++++++++ .../Native/one/components/OneNativeModal.vue | 59 +++ src/views/demo/page/form/high/index.vue | 6 + src/views/demo/vextable/VexTableModal.vue | 15 +- .../vextable/jvxetable/JVxeTableModal.vue | 19 +- src/views/demo/vextable/modal.vue | 15 +- .../monitor/datalog/DataLogCompareModal.vue | 2 +- .../monitor/datasource/datasource.data.ts | 4 +- src/views/monitor/log/index.vue | 14 +- src/views/monitor/log/log.data.ts | 12 + src/views/monitor/mynews/DynamicNotice.vue | 59 +-- src/views/monitor/quartz/quartz.data.ts | 2 +- src/views/sys/login/LoginForm.vue | 4 + src/views/sys/login/LoginSelect.vue | 3 + .../category/components/CategoryModal.vue | 2 +- src/views/system/category/index.vue | 4 +- src/views/system/dict/dict.data.ts | 2 +- src/views/system/dict/index.vue | 16 +- src/views/system/fillRule/fill.rule.data.ts | 3 + src/views/system/menu/DataRuleList.vue | 7 +- src/views/system/menu/MenuDrawer.vue | 6 +- src/views/system/notice/index.vue | 4 +- src/views/system/notice/notice.api.ts | 17 +- .../role/components/RoleDesignModal.vue | 148 ------ .../system/role/components/RoleIndexModal.vue | 55 --- .../role/components/RolePermissionDrawer.vue | 8 + src/views/system/role/index.vue | 25 -- src/views/system/user/UserDrawer.vue | 10 +- src/views/system/user/index.vue | 8 +- types/store.d.ts | 1 + vite.config.ts | 1 + 139 files changed, 2834 insertions(+), 811 deletions(-) create mode 100644 src/assets/images/panel_cover.png create mode 100644 src/components/Button/src/JUploadButton.vue create mode 100644 src/components/Form/src/jeecg/components/JFormContainer.vue delete mode 100644 src/components/Form/src/jeecg/components/JOnlineSelectCascade.vue create mode 100644 src/components/Table/src/hooks/useColumnsCache.ts create mode 100644 src/views/demo/jeecg/Native/less/TableExpand.less create mode 100644 src/views/demo/jeecg/Native/one/OneNativeList.vue create mode 100644 src/views/demo/jeecg/Native/one/components/OneNativeForm.vue create mode 100644 src/views/demo/jeecg/Native/one/components/OneNativeModal.vue delete mode 100644 src/views/system/role/components/RoleDesignModal.vue delete mode 100644 src/views/system/role/components/RoleIndexModal.vue diff --git a/.gitignore b/.gitignore index ca1015e..a0b9717 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ pnpm-debug.log* /os_del.cmd /.vscode/ /.history/ +/svn clear.bat diff --git a/package.json b/package.json index 80d006e..2817516 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jeecgboot-vue3", - "version": "1.2.0", + "version": "1.3.0", "author": { "name": "jeecg", "email": "jeecgos@163.com", @@ -36,11 +36,12 @@ "dependencies": { "@jeecg/online": "1.0.1", "@iconify/iconify": "^2.0.4", - "@fullcalendar/core": "^5.10.1", - "@fullcalendar/daygrid": "^5.10.1", - "@fullcalendar/interaction": "^5.10.1", - "@fullcalendar/timegrid": "^5.10.1", - "@fullcalendar/vue3": "^5.10.1", + "@fullcalendar/core": "5.10.1", + "@fullcalendar/daygrid": "5.10.1", + "@fullcalendar/interaction": "5.10.1", + "@fullcalendar/resource-timeline": "5.10.1", + "@fullcalendar/timegrid": "5.10.1", + "@fullcalendar/vue3": "5.10.1", "@vueuse/core": "^6.6.2", "@zxcvbn-ts/core": "^1.0.0-beta.0", "ant-design-vue": "2.2.8", @@ -66,6 +67,7 @@ "path-to-regexp": "^6.2.0", "pinia": "2.0.0-rc.14", "print-js": "^1.6.0", + "qiankun": "^2.5.1", "qrcode": "^1.4.4", "qrcodejs2": "0.0.2", "resize-observer-polyfill": "^1.5.1", @@ -81,12 +83,11 @@ "vue-print-nb-jeecg": "^1.0.10", "vue-router": "^4.0.12", "vue-types": "^4.1.1", + "vuedraggable": "^4.1.0", "vxe-table": "4.1.0", "vxe-table-plugin-antd": "^3.0.3", "xe-utils": "^3.3.1", "xlsx": "^0.17.3", - "qiankun": "^2.5.1", - "vuedraggable": "^4.1.0", "vue-json-pretty": "^2.0.4" }, "devDependencies": { @@ -291,6 +292,7 @@ "vue-print-nb-jeecg/src/printarea", "vue-router", "vue-types", + "vuedraggable", "vxe-table", "vxe-table-plugin-antd", "xe-utils", diff --git a/prettier.config.js b/prettier.config.js index 4a88a0c..bd6a55b 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -8,6 +8,7 @@ module.exports = { quoteProps: 'as-needed', bracketSpacing: true, trailingComma: 'es5', + jsxBracketSameLine: false, jsxSingleQuote: false, arrowParens: 'always', insertPragma: false, diff --git a/src/api/common/api.ts b/src/api/common/api.ts index 5dfebb1..1e90d11 100644 --- a/src/api/common/api.ts +++ b/src/api/common/api.ts @@ -1,4 +1,5 @@ import { defHttp } from '/@/utils/http/axios'; +import { message } from 'ant-design-vue'; import { useGlobSetting } from '/@/hooks/setting'; const globSetting = useGlobSetting(); const baseUploadUrl = globSetting.uploadUrl; @@ -95,3 +96,48 @@ export const loadCategoryData = (params) => { export const uploadFile = (params, success) => { return defHttp.uploadFile({ url: uploadUrl }, params, { success }); }; +/** + * 下载文件 + * @param url 文件路径 + * @param fileName 文件名 + * @param parameter + * @returns {*} + */ +export const downloadFile = (url, fileName?, parameter?) => { + return getFileblob(url, parameter).then((data) => { + if (!data || data.size === 0) { + message.warning('文件下载失败'); + return; + } + if (typeof window.navigator.msSaveBlob !== 'undefined') { + window.navigator.msSaveBlob(new Blob([data]), fileName); + } else { + let url = window.URL.createObjectURL(new Blob([data])); + let link = document.createElement('a'); + link.style.display = 'none'; + link.href = url; + link.setAttribute('download', fileName); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); //下载完成移除元素 + window.URL.revokeObjectURL(url); //释放掉blob对象 + } + }); +}; + +/** + * 下载文件 用于excel导出 + * @param url + * @param parameter + * @returns {*} + */ +export const getFileblob = (url, parameter) => { + return defHttp.get( + { + url: url, + params: parameter, + responseType: 'blob', + }, + { isTransformResponse: false } + ); +}; diff --git a/src/api/sys/user.ts b/src/api/sys/user.ts index a152f8d..60554d3 100644 --- a/src/api/sys/user.ts +++ b/src/api/sys/user.ts @@ -80,7 +80,7 @@ export function phoneLoginApi(params: LoginParams, mode: ErrorMessageMode = 'mod export function getUserInfo() { return defHttp.get({ url: Api.GetUserInfo }, { errorMessageMode: 'none' }).catch((e) => { // update-begin--author:zyf---date:20220425---for:【VUEN-76】捕获接口超时异常,跳转到登录界面 - if (e && e.message.includes('timeout')) { + if (e && (e.message.includes('timeout') || e.message.includes('401'))) { //接口不通时跳转到登录界面 const userStore = useUserStoreWithOut(); userStore.setToken(''); diff --git a/src/assets/images/panel_cover.png b/src/assets/images/panel_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..faf0065fcb6c7c9bf7ef6c0e1b459c4621d481eb GIT binary patch literal 2351 zcmeH}YdlnG9LLW&9d%HQ6-mlOX;aL!LrE7WX2@o`$faBwON%Zdw_K)~gO81^S-T;F za#=n~qD8r-nWN97vW+RxOu4lqT^5Uw>u8@B`+9q|`>Hq3^L(EB|M`Fa|KF3kf3MRL z4MPnGf|fY%X1YQUYyjF1v4x;yJeXewDmcQ`$sVd`HF^(0*n4N@F1HwXsGEJ_3Tx@2 zk@RAAak*C+>z)0m+UWycr&qsZEvuMYtb9J)*P2-u*5}$a1uvB>EB-p9FwrFVwiWY7 z_6cdOtlW}$x$y=^UIKLrg&s&i305$i?pU@7Mv&&k6zb1rRKK=hYcm`t zh47a{Kl8j=tEv0-Y$jYKsc&0)t9a{`SvOmvGL!Wwbj`DKlVPJ}+AO0T?(@yPJaf65 z{t?om?OqxLA+f+cGLIlclScK^=b;egA#h)8jjisX7#OY|F@*>`k02gZcVv_IG%;ba zF$|#}&_*pYSxs7NnYQEhdHYz}Ha^owb;BpL{4&qfKlXN4f2X#|snCo8a|f`bFl~6% zW^vp`W&4Ky&@NHt3cB`o!^$cT-uznAL(R*@O8sMVj7T-KL61W3UL_Fd7;td%0{@2! z0W=Ud%RBpXG!h(P_!*{9eRv@Y6!B_jLteh(YSgiEWD!yBXak4|U!x>8MYs>F9*eD5 zbjJNH=O>#nZhdd^`3a7mcsfqv)o;P*{Y3Zg_71$1@Sp+{R?2An$!c+*rA21`Rgc_q zuRKFH@zu6Fb2rSBusW9E>w=T%WD0@=N)A>BA^&uJyeqw9>>Xay$c>*-T+Fwl$=xw4 z3==MFTz#oWrMMW;U*5X2hDm0eb<07!Osq!_yAU`Cr(dvaI9Ba zBWMoD4!ZgGQLG&_*iHf{!3@|b2?B9#4Z{bY9WccUoN?0Xzu9KwQZ}2rU}I0GK#|>Z zrgmH*I(U7`HX#sP!9@|9Bt4oSoJJZi8+RsvhKw3_s>$7KYOEl-c~ zMQte~4A56NVBs^p)4$I#_PqSl+oS=zyq)bsPri*+Nu}ZJ??Hqx=5)+BWXJn+l4`rz zvpx+~y_wIY350j?RvTs(Uf>Dylip7p)jG~Om&P>W*K~!1Ztz!y*H_pV>;ftyRIU7QwKE7y2N(PJC*1Xa$O_lj0=y3plNs%LgrxV06Wwj7W$RYBZ+9TsieYrIM z(ht3fL%n0sGm`0)^q>~iP2ZHM(e!ZDVD7U4zvnFzzYjZgd3_q5(Y9kXGCKC8bzgD4 zFW;s^pl$sF5R=+_Bi`NZqNToM8p5e`)>qzHh1U|*|9{og0W6n0-*cjo47 zPiGnb{2LD2mQnx! literal 0 HcmV?d00001 diff --git a/src/components/Button/index.ts b/src/components/Button/index.ts index 677700a..71bd2e4 100644 --- a/src/components/Button/index.ts +++ b/src/components/Button/index.ts @@ -1,11 +1,11 @@ import { withInstall } from '/@/utils'; import type { ExtractPropTypes } from 'vue'; import button from './src/BasicButton.vue'; -import uploadButton from './src/UploadButton.vue'; +import jUploadButton from './src/JUploadButton.vue'; import popConfirmButton from './src/PopConfirmButton.vue'; import { buttonProps } from './src/props'; export const Button = withInstall(button); -export const UploadButton = withInstall(uploadButton); +export const JUploadButton = withInstall(jUploadButton); export const PopConfirmButton = withInstall(popConfirmButton); export declare type ButtonProps = Partial>; diff --git a/src/components/Button/src/JUploadButton.vue b/src/components/Button/src/JUploadButton.vue new file mode 100644 index 0000000..ec0df2c --- /dev/null +++ b/src/components/Button/src/JUploadButton.vue @@ -0,0 +1,41 @@ + + + + diff --git a/src/components/Button/src/props.ts b/src/components/Button/src/props.ts index 8e1b254..b5026d6 100644 --- a/src/components/Button/src/props.ts +++ b/src/components/Button/src/props.ts @@ -13,9 +13,9 @@ export const buttonProps = { type: { type: String }, /** * preIcon and postIcon icon size. - * @default: 14 + * @default: 15 */ - iconSize: { type: Number, default: 14 }, + iconSize: { type: Number, default: 15 }, isUpload: { type: Boolean, default: false }, onClick: { type: Function as PropType<(...args) => any>, default: null }, }; diff --git a/src/components/Cropper/src/CopperModal.vue b/src/components/Cropper/src/CopperModal.vue index 46c34b6..851c68f 100644 --- a/src/components/Cropper/src/CopperModal.vue +++ b/src/components/Cropper/src/CopperModal.vue @@ -129,7 +129,10 @@ try { setModalProps({ confirmLoading: true }); const result = await uploadApi({ name: 'file', file: blob, filename }); - emit('uploadSuccess', { source: previewSource.value, data: result.data || result.message }); + emit('uploadSuccess', { + source: previewSource.value, + data: result.data || result.message, + }); closeModal(); } finally { setModalProps({ confirmLoading: false }); diff --git a/src/components/Form/src/BasicForm.vue b/src/components/Form/src/BasicForm.vue index 94fc13f..0df3c3b 100644 --- a/src/components/Form/src/BasicForm.vue +++ b/src/components/Form/src/BasicForm.vue @@ -233,6 +233,7 @@ updateSchema, resetSchema, setProps, + getProps, removeSchemaByFiled, appendSchemaByField, clearValidate, diff --git a/src/components/Form/src/componentMap.ts b/src/components/Form/src/componentMap.ts index 2ee9616..75a0c36 100644 --- a/src/components/Form/src/componentMap.ts +++ b/src/components/Form/src/componentMap.ts @@ -42,7 +42,6 @@ import JUpload from './jeecg/components/JUpload/JUpload.vue'; import JSearchSelect from './jeecg/components/JSearchSelect.vue'; import JAddInput from './jeecg/components/JAddInput.vue'; import { Time } from '/@/components/Time'; -import JOnlineSelectCascade from './jeecg/components/JOnlineSelectCascade.vue'; import JRangeNumber from './jeecg/components/JRangeNumber.vue'; const componentMap = new Map(); @@ -110,7 +109,6 @@ componentMap.set('JSelectUserByDept', JSelectUserByDept); componentMap.set('JUpload', JUpload); componentMap.set('JSearchSelect', JSearchSelect); componentMap.set('JAddInput', JAddInput); -componentMap.set('JOnlineSelectCascade', JOnlineSelectCascade); componentMap.set('JRangeNumber', JRangeNumber); export function add(compName: ComponentType, component: Component) { diff --git a/src/components/Form/src/components/FormAction.vue b/src/components/Form/src/components/FormAction.vue index 20c7201..4f7e721 100644 --- a/src/components/Form/src/components/FormAction.vue +++ b/src/components/Form/src/components/FormAction.vue @@ -5,13 +5,11 @@ @@ -89,6 +87,7 @@ return Object.assign( { text: t('common.resetText'), + preIcon: 'ic:baseline-restart-alt', }, props.resetButtonOptions ); @@ -96,8 +95,10 @@ const getSubmitBtnOptions = computed(() => { return Object.assign( + {}, { text: t('common.queryText'), + preIcon: 'ant-design:search-outlined', }, props.submitButtonOptions ); diff --git a/src/components/Form/src/hooks/useForm.ts b/src/components/Form/src/hooks/useForm.ts index e76eae3..af6c4bb 100644 --- a/src/components/Form/src/hooks/useForm.ts +++ b/src/components/Form/src/hooks/useForm.ts @@ -110,17 +110,18 @@ export function useForm(props?: Props): UseFormReturnType { */ validate: async (nameList?: NamePath[]): Promise => { const form = await getForm(); + let getProps = props || form.getProps; let values = form.validate(nameList).then((values) => { for (let key in values) { if (values[key] instanceof Array) { - let valueType = getValueType(props, key); + let valueType = getValueType(getProps, key); if (valueType === 'string') { values[key] = values[key].join(','); } } } //--@updateBy-begin----author:liusq---date:20210916------for:处理区域事件字典信息------ - return handleRangeValue(props, values); + return handleRangeValue(getProps, values); //--@updateBy-end----author:liusq---date:20210916------for:处理区域事件字典信息------ }); return values; diff --git a/src/components/Form/src/jeecg/components/JAddInput.vue b/src/components/Form/src/jeecg/components/JAddInput.vue index 5abb7ff..d63b628 100644 --- a/src/components/Form/src/jeecg/components/JAddInput.vue +++ b/src/components/Form/src/jeecg/components/JAddInput.vue @@ -2,7 +2,7 @@
- +
@@ -26,6 +26,10 @@ name: 'JAddInput', props: { value: propTypes.string.def(''), + //update-begin---author:wangshuai ---date:20220516 for:[VUEN-1043]系统编码规则,最后一个输入框不能删除------------ + //自定义删除按钮多少才会显示 + min: propTypes.integer.def(1), + //update-end---author:wangshuai ---date:20220516 for:[VUEN-1043]系统编码规则,最后一个输入框不能删除-------------- }, emits: ['change', 'update:value'], setup(props, { emit }) { diff --git a/src/components/Form/src/jeecg/components/JAreaLinkage.vue b/src/components/Form/src/jeecg/components/JAreaLinkage.vue index 48819f5..49c8e3f 100644 --- a/src/components/Form/src/jeecg/components/JAreaLinkage.vue +++ b/src/components/Form/src/jeecg/components/JAreaLinkage.vue @@ -1,5 +1,5 @@ + + diff --git a/src/components/Form/src/jeecg/components/JImageUpload.vue b/src/components/Form/src/jeecg/components/JImageUpload.vue index c15121b..ae13d9b 100644 --- a/src/components/Form/src/jeecg/components/JImageUpload.vue +++ b/src/components/Form/src/jeecg/components/JImageUpload.vue @@ -18,7 +18,7 @@
{{ text }}
- + {{ text }} diff --git a/src/components/Form/src/jeecg/components/JInputPop.vue b/src/components/Form/src/jeecg/components/JInputPop.vue index 9b81b3c..555303d 100644 --- a/src/components/Form/src/jeecg/components/JInputPop.vue +++ b/src/components/Form/src/jeecg/components/JInputPop.vue @@ -35,7 +35,7 @@ height: propTypes.number.def(150), disabled: propTypes.bool.def(false), // 弹出框挂载的元素ID - popContainer: propTypes.string.def(''), + popContainer: propTypes.oneOfType([propTypes.string, propTypes.func]).def(''), }); const attrs = useAttrs(); const emit = defineEmits(['change', 'update:value']); @@ -75,6 +75,8 @@ function getPopupContainer(node) { if (!props.popContainer) { return node.parentNode; + } else if (typeof props.popContainer === 'function') { + return props.popContainer(node); } else { return document.getElementById(props.popContainer); } diff --git a/src/components/Form/src/jeecg/components/JOnlineSelectCascade.vue b/src/components/Form/src/jeecg/components/JOnlineSelectCascade.vue deleted file mode 100644 index 12f233b..0000000 --- a/src/components/Form/src/jeecg/components/JOnlineSelectCascade.vue +++ /dev/null @@ -1,220 +0,0 @@ - - - - - diff --git a/src/components/Form/src/jeecg/components/JPopup.vue b/src/components/Form/src/jeecg/components/JPopup.vue index 393275e..5e3d268 100644 --- a/src/components/Form/src/jeecg/components/JPopup.vue +++ b/src/components/Form/src/jeecg/components/JPopup.vue @@ -6,9 +6,11 @@ - + + + diff --git a/src/components/Form/src/jeecg/components/JSearchSelect.vue b/src/components/Form/src/jeecg/components/JSearchSelect.vue index 83e0c2b..6433000 100644 --- a/src/components/Form/src/jeecg/components/JSearchSelect.vue +++ b/src/components/Form/src/jeecg/components/JSearchSelect.vue @@ -117,15 +117,20 @@ options.value = []; loading.value = true; // 字典code格式:table,text,code - defHttp.get({ url: `/sys/dict/loadDict/${props.dict}`, params: { keyword: value, pageSize: props.pageSize } }).then((res) => { - loading.value = false; - if (res && res.length > 0) { - if (currentLoad != unref(lastLoad)) { - return; + defHttp + .get({ + url: `/sys/dict/loadDict/${props.dict}`, + params: { keyword: value, pageSize: props.pageSize }, + }) + .then((res) => { + loading.value = false; + if (res && res.length > 0) { + if (currentLoad != unref(lastLoad)) { + return; + } + options.value = res; } - options.value = res; - } - }); + }); } /** * 初始化value @@ -186,12 +191,17 @@ } else { //异步一开始也加载一点数据 loading.value = true; - defHttp.get({ url: `/sys/dict/loadDict/${dict}`, params: { pageSize: pageSize, keyword: '' } }).then((res) => { - loading.value = false; - if (res && res.length > 0) { - options.value = res; - } - }); + defHttp + .get({ + url: `/sys/dict/loadDict/${dict}`, + params: { pageSize: pageSize, keyword: '' }, + }) + .then((res) => { + loading.value = false; + if (res && res.length > 0) { + options.value = res; + } + }); } } } diff --git a/src/components/Form/src/jeecg/components/JSelectDept.vue b/src/components/Form/src/jeecg/components/JSelectDept.vue index 15235a2..960dad8 100644 --- a/src/components/Form/src/jeecg/components/JSelectDept.vue +++ b/src/components/Form/src/jeecg/components/JSelectDept.vue @@ -37,7 +37,7 @@ //下拉框选项值 const selectOptions = ref([]); //下拉框选中值 - let selectValues = reactive({ + let selectValues = reactive({ value: [], }); // 是否正在加载回显数据 @@ -57,14 +57,16 @@ */ watchEffect(() => { props.value && initValue(); - // update-begin-author:taoyan date:20220401 for:调用表单的 resetFields不会清空当前部门信息,界面显示上一次的数据 - if (props.value === '' || props.value === undefined) { - state.value = []; - selectValues.value = []; - } - // update-end-author:taoyan date:20220401 for:调用表单的 resetFields不会清空当前部门信息,界面显示上一次的数据 }); + //update-begin-author:liusq---date:20220609--for: 为了解决弹窗form初始化赋值问题 --- + watch( + () => props.value, + () => { + initValue(); + } + ); + //update-end-author:liusq---date:20220609--for: 为了解决弹窗form初始化赋值问题 --- /** * 监听selectValues变化 */ @@ -100,6 +102,9 @@ if (value && typeof value === 'string') { state.value = value.split(','); selectValues.value = value.split(','); + } else { + // 【VUEN-857】兼容数组(行编辑的用法问题) + selectValues.value = value; } } diff --git a/src/components/Form/src/jeecg/components/JSelectMultiple.vue b/src/components/Form/src/jeecg/components/JSelectMultiple.vue index cbdcbc7..5673ce6 100644 --- a/src/components/Form/src/jeecg/components/JSelectMultiple.vue +++ b/src/components/Form/src/jeecg/components/JSelectMultiple.vue @@ -1,6 +1,6 @@