From 931571cf9f01c18c06b53688eee11ee80ba668df Mon Sep 17 00:00:00 2001 From: lizijiee <562949697@qq.com> Date: Tue, 26 Mar 2024 00:08:56 +0800 Subject: [PATCH 01/17] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E6=9F=A5=E9=87=8D=E4=BB=BB=E5=8A=A1loading?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/home/content/Content.vue | 8 ++- .../content/modal/QueryRepeatedTasksModal.vue | 50 +++++++++++++++++++ 2 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 src/views/home/content/modal/QueryRepeatedTasksModal.vue diff --git a/src/views/home/content/Content.vue b/src/views/home/content/Content.vue index 1574f02..665bc0b 100644 --- a/src/views/home/content/Content.vue +++ b/src/views/home/content/Content.vue @@ -18,6 +18,7 @@ import { computed, nextTick, onMounted, onUnmounted, onUpdated, reactive, ref, u import GeneratePackageModal from './modal/GeneratePackageModal.vue' import LoginSuccessModal from './modal/LoginSuccessModal.vue' import PackageSettingsModal from './modal/PackageSettingsModal.vue' +import QueryRepeatedTasksModal from './modal/QueryRepeatedTasksModal.vue' import type { PictureSortParam } from "/#/api" const deviceHeight = ref(600) @@ -33,6 +34,7 @@ const pagination = reactive({ const configStore = useConfig() const packageModalRef = ref(null) const generateModalRef = ref(null) +const queryRepeatedTasksModalRef = ref(null) const LoginSuccessModalRef = ref(null) const loading = ref(false) const message = useMessage() @@ -196,6 +198,7 @@ const gridHeight = computed(() => { async function oneCheck() { const asideVal = cloneDeep(configStore.getAsideValue) asideVal.izyear = dayjs(asideVal.izyear[0]).format("YYYY/MM/DD") + '-' + dayjs(asideVal.izyear[1]).format("YYYY/MM/DD") + const tasksLoadingModal = queryRepeatedTasksModalRef.value as any delete asideVal.izsimilarity if (checkDuplicateNo.value) { getCheckDuplicateStatus(checkDuplicateNo.value).then((res) => { @@ -213,14 +216,14 @@ async function oneCheck() { reset() loadMore() } else if (checkTaskStatus.value === 1) { - message.success("请等待,查重任务正在创建中..."); + tasksLoadingModal.showModal() return } } }) return } - message.success("请等待,查重任务正在创建中..."); + tasksLoadingModal.showModal() oneClickCheckTaskPackage(asideVal).then((res) => { if (res.code === "OK") { checkDuplicateNo.value = res.data.checkDuplicateNo @@ -458,6 +461,7 @@ function previewHandler(index: number, event: MouseEvent) { + diff --git a/src/views/home/content/modal/QueryRepeatedTasksModal.vue b/src/views/home/content/modal/QueryRepeatedTasksModal.vue new file mode 100644 index 0000000..f0f2a4a --- /dev/null +++ b/src/views/home/content/modal/QueryRepeatedTasksModal.vue @@ -0,0 +1,50 @@ + + + + + From 07622e3a5aa0258b1480945e08d626197eba5572 Mon Sep 17 00:00:00 2001 From: lizijiee <562949697@qq.com> Date: Tue, 26 Mar 2024 00:09:32 +0800 Subject: [PATCH 02/17] =?UTF-8?q?feat:=20=E7=BB=84=E4=BB=B6=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components.d.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/components.d.ts b/components.d.ts index 3b65693..06ebe68 100644 --- a/components.d.ts +++ b/components.d.ts @@ -21,8 +21,10 @@ declare module 'vue' { NDialogProvider: typeof import('naive-ui')['NDialogProvider'] NDivider: typeof import('naive-ui')['NDivider'] NDropdown: typeof import('naive-ui')['NDropdown'] + NEmpty: typeof import('naive-ui')['NEmpty'] NForm: typeof import('naive-ui')['NForm'] NFormItem: typeof import('naive-ui')['NFormItem'] + NGi: typeof import('naive-ui')['NGi'] NGrid: typeof import('naive-ui')['NGrid'] NGridItem: typeof import('naive-ui')['NGridItem'] NImage: typeof import('naive-ui')['NImage'] @@ -39,7 +41,11 @@ declare module 'vue' { NSpace: typeof import('naive-ui')['NSpace'] NSpin: typeof import('naive-ui')['NSpin'] NSwitch: typeof import('naive-ui')['NSwitch'] + NTabPane: typeof import('naive-ui')['NTabPane'] + NTabs: typeof import('naive-ui')['NTabs'] NTag: typeof import('naive-ui')['NTag'] + NTimeline: typeof import('naive-ui')['NTimeline'] + NTimelineItem: typeof import('naive-ui')['NTimelineItem'] NTooltip: typeof import('naive-ui')['NTooltip'] NUpload: typeof import('naive-ui')['NUpload'] NUploadDragger: typeof import('naive-ui')['NUploadDragger'] From 283491284169b89706a6fc4e143c01fe9d75c280 Mon Sep 17 00:00:00 2001 From: lizijiee <562949697@qq.com> Date: Tue, 26 Mar 2024 00:54:53 +0800 Subject: [PATCH 03/17] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=8C=85=E5=88=9B=E5=BB=BA=E5=AE=8C=E6=88=90=E5=BC=B9?= =?UTF-8?q?=E6=A1=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/home/content/Content.vue | 5 ++ .../home/content/modal/FinishPackageModal.vue | 81 +++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 src/views/home/content/modal/FinishPackageModal.vue diff --git a/src/views/home/content/Content.vue b/src/views/home/content/Content.vue index 665bc0b..3ebc5d2 100644 --- a/src/views/home/content/Content.vue +++ b/src/views/home/content/Content.vue @@ -15,6 +15,7 @@ import { cloneDeep, debounce } from 'lodash-es' import Masonry from 'masonry-layout' import { useMessage } from 'naive-ui' import { computed, nextTick, onMounted, onUnmounted, onUpdated, reactive, ref, unref, watch } from 'vue' +import FinishPackageModal from './modal/FinishPackageModal.vue' import GeneratePackageModal from './modal/GeneratePackageModal.vue' import LoginSuccessModal from './modal/LoginSuccessModal.vue' import PackageSettingsModal from './modal/PackageSettingsModal.vue' @@ -36,6 +37,7 @@ const packageModalRef = ref(null) const generateModalRef = ref(null) const queryRepeatedTasksModalRef = ref(null) const LoginSuccessModalRef = ref(null) +const finishPackageModal = ref(null) const loading = ref(false) const message = useMessage() const totalCount = ref(0) @@ -244,11 +246,13 @@ async function commitHandler(settingParam) { checkDuplicateNo: checkDuplicateNo.value } const modal = generateModalRef.value as any + const finishModal = finishPackageModal.value as any modal.showModal() createPackage(params).then((res) => { if (res.code === "OK") { message.success(res.data); modal.closeModal() + finishModal.showModal() } }) const asideVal = configStore.getAsideValue @@ -463,6 +467,7 @@ function previewHandler(index: number, event: MouseEvent) { + diff --git a/src/views/home/content/modal/FinishPackageModal.vue b/src/views/home/content/modal/FinishPackageModal.vue new file mode 100644 index 0000000..bb0961a --- /dev/null +++ b/src/views/home/content/modal/FinishPackageModal.vue @@ -0,0 +1,81 @@ + + + + + From 01481a3f87f5a6d5c3cf53b111a6553b384d1a5c Mon Sep 17 00:00:00 2001 From: liushilong <2224574157@qq.com> Date: Tue, 26 Mar 2024 09:03:39 +0800 Subject: [PATCH 04/17] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E7=99=BB?= =?UTF-8?q?=E5=BD=95rule=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/login/components/Login.vue | 36 ++++++++++++++-------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/views/login/components/Login.vue b/src/views/login/components/Login.vue index 768d96d..beb8f13 100644 --- a/src/views/login/components/Login.vue +++ b/src/views/login/components/Login.vue @@ -58,12 +58,12 @@ const rules = { trigger: ["blur","input","change"], level: "error", validator(_rule, value) { - if (loginSuccess.value) { - return true; - } if (!value) { return new Error("请输入企业编码"); } + if (loginSuccess.value) { + return true; + } return new Error(loginRejectMessge.value); }, }, @@ -73,12 +73,12 @@ const rules = { trigger: ["blur","input","change"], level: "error", validator(_rule, value) { - if (loginSuccess.value) { - return true; - } if (!value) { return new Error("请输入验证码"); } + if (loginSuccess.value) { + return true; + } return new Error(loginRejectMessge.value); }, }, @@ -88,12 +88,12 @@ const rules = { trigger: ["blur","input","change"], level: "error", validator(_rule, value) { - if (loginSuccess.value) { - return true; - } if (!value) { return new Error("请输入手机号"); } + if (loginSuccess.value) { + return true; + } return new Error(loginRejectMessge.value); }, },], @@ -105,12 +105,12 @@ const rules = { if (value.length < 4 && value.length > 0) { return new Error("请正确填写4位手机短信验证码"); } - if (loginSuccess.value) { - return true; - } if (!value) { return new Error("请输入验证码"); } + if (loginSuccess.value) { + return true; + } return new Error(loginRejectMessge.value); }, }, @@ -120,12 +120,12 @@ const rules = { trigger: ["blur","input","change"], level: "error", validator(_rule, value) { - if (loginSuccess.value) { - return true; - } if (!value) { return new Error("请输入账号"); } + if (loginSuccess.value) { + return true; + } return new Error(loginRejectMessge.value); }, }, @@ -135,12 +135,12 @@ const rules = { trigger: ["blur","input","change"], level: "error", validator(_rule, value) { - if (loginSuccess.value) { - return true; - } if (!value) { return new Error("请输入密码"); } + if (loginSuccess.value) { + return true; + } return new Error(loginRejectMessge.value); }, },], From 7d2a41657e3ec427741efcf1a219fa902b6cbd77 Mon Sep 17 00:00:00 2001 From: lizijiee <562949697@qq.com> Date: Tue, 26 Mar 2024 12:25:23 +0800 Subject: [PATCH 05/17] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=BC=B9?= =?UTF-8?q?=E6=A1=86=E5=85=B3=E9=97=AD=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/home/content/modal/QueryRepeatedTasksModal.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/views/home/content/modal/QueryRepeatedTasksModal.vue b/src/views/home/content/modal/QueryRepeatedTasksModal.vue index f0f2a4a..f954479 100644 --- a/src/views/home/content/modal/QueryRepeatedTasksModal.vue +++ b/src/views/home/content/modal/QueryRepeatedTasksModal.vue @@ -1,5 +1,5 @@ diff --git a/src/views/home/content/modal/CheckingTaskModal.vue b/src/views/home/content/modal/CheckingTaskModal.vue new file mode 100644 index 0000000..6b07726 --- /dev/null +++ b/src/views/home/content/modal/CheckingTaskModal.vue @@ -0,0 +1,92 @@ + + + + + From 8aa8d92176c0432e93c47a98ea7b7331cde8789d Mon Sep 17 00:00:00 2001 From: lizijiee <562949697@qq.com> Date: Tue, 26 Mar 2024 13:38:39 +0800 Subject: [PATCH 07/17] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/home/content/Content.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/views/home/content/Content.vue b/src/views/home/content/Content.vue index e705150..5d50abd 100644 --- a/src/views/home/content/Content.vue +++ b/src/views/home/content/Content.vue @@ -385,11 +385,13 @@ function refresh(val) { oneCheck() } function cancel(val) { - removeCheckDuplicate(checkDuplicateNo.value).then((res) => { + if (checkTaskStatus.value === 1) { + removeCheckDuplicate(checkDuplicateNo.value).then((res) => { if (res.code === "OK") { message.success("查重任务取消成功") } - }) + }) + } } From e5696d8ec0bf421b9039d1bc3033ef574491a71f Mon Sep 17 00:00:00 2001 From: liushilong <2224574157@qq.com> Date: Tue, 26 Mar 2024 13:53:40 +0800 Subject: [PATCH 08/17] =?UTF-8?q?feat:=20=E7=99=BB=E5=BD=95=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E5=85=83=E7=B4=A0=E7=BC=BA=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- patches/naive-ui+2.38.1.patch | 150 ++++++++++++++++++ .../aside/comp/modals/CustomFilterModal.vue | 2 +- src/views/login/components/Forget.vue | 35 +++- src/views/login/components/Login.vue | 65 ++++---- 4 files changed, 207 insertions(+), 45 deletions(-) diff --git a/patches/naive-ui+2.38.1.patch b/patches/naive-ui+2.38.1.patch index 5c4f5c6..8748dc4 100644 --- a/patches/naive-ui+2.38.1.patch +++ b/patches/naive-ui+2.38.1.patch @@ -1,3 +1,32 @@ +diff --git a/node_modules/naive-ui/es/form/src/FormItem.mjs b/node_modules/naive-ui/es/form/src/FormItem.mjs +index 3aacec9..a63ab54 100644 +--- a/node_modules/naive-ui/es/form/src/FormItem.mjs ++++ b/node_modules/naive-ui/es/form/src/FormItem.mjs +@@ -73,8 +73,8 @@ function wrapValidator(validator, async) { + try { + const validateResult = validator(...args); + if (!async && (typeof validateResult === 'boolean' || validateResult instanceof Error || Array.isArray(validateResult)) || ( +- // Error[] +- validateResult === null || validateResult === void 0 ? void 0 : validateResult.then)) { ++ // Error[] ++ validateResult === null || validateResult === void 0 ? void 0 : validateResult.then)) { + return validateResult; + } else if (validateResult === undefined) { + return true; +@@ -479,8 +479,11 @@ export default defineComponent({ + class: `${mergedClsPrefix}-form-item-feedback ${mergedClsPrefix}-form-item-feedback--warning` + }, feedbackNodes) : mergedValidationStatus === 'error' ? h("div", { + key: "controlled-error", +- class: `${mergedClsPrefix}-form-item-feedback ${mergedClsPrefix}-form-item-feedback--error` +- }, feedbackNodes) : mergedValidationStatus === 'success' ? h("div", { ++ class: `${mergedClsPrefix}-form-item-feedback ${mergedClsPrefix}-form-item-feedback--error flex` ++ }, [h('img', { ++ style: { width: '1rem', height: '1rem' }, ++ src: 'http://47.93.59.251/api/upload/ocr/1711419313955_c.png' ++ }), feedbackNodes]) : mergedValidationStatus === 'success' ? h("div", { + key: "controlled-success", + class: `${mergedClsPrefix}-form-item-feedback ${mergedClsPrefix}-form-item-feedback--success` + }, feedbackNodes) : h("div", { diff --git a/node_modules/naive-ui/es/pagination/src/Pagination.mjs b/node_modules/naive-ui/es/pagination/src/Pagination.mjs index 5bd975b..e1c6ebc 100644 --- a/node_modules/naive-ui/es/pagination/src/Pagination.mjs @@ -11,3 +40,124 @@ index 5bd975b..e1c6ebc 100644 default: return null; } +diff --git a/node_modules/naive-ui/lib/form/src/FormItem.js b/node_modules/naive-ui/lib/form/src/FormItem.js +index 4f47aad..6dae078 100644 +--- a/node_modules/naive-ui/lib/form/src/FormItem.js ++++ b/node_modules/naive-ui/lib/form/src/FormItem.js +@@ -24,7 +24,8 @@ const styles_1 = require("../styles"); + const utils_1 = require("./utils"); + const context_1 = require("./context"); + const form_item_cssr_1 = __importDefault(require("./styles/form-item.cssr")); +-exports.formItemProps = Object.assign(Object.assign({}, _mixins_1.useTheme.props), { label: String, labelWidth: [Number, String], labelStyle: [String, Object], labelAlign: String, labelPlacement: String, path: String, first: Boolean, rulePath: String, required: Boolean, showRequireMark: { ++exports.formItemProps = Object.assign(Object.assign({}, _mixins_1.useTheme.props), { ++ label: String, labelWidth: [Number, String], labelStyle: [String, Object], labelAlign: String, labelPlacement: String, path: String, first: Boolean, rulePath: String, required: Boolean, showRequireMark: { + type: Boolean, + default: undefined + }, requireMarkPlacement: String, showFeedback: { +@@ -33,7 +34,8 @@ exports.formItemProps = Object.assign(Object.assign({}, _mixins_1.useTheme.props + }, rule: [Object, Array], size: String, ignorePathChange: Boolean, validationStatus: String, feedback: String, showLabel: { + type: Boolean, + default: undefined +- }, labelProps: Object }); ++ }, labelProps: Object ++}); + exports.formItemPropKeys = (0, _utils_1.keysOf)(exports.formItemProps); + // wrap sync validator + function wrapValidator(validator, async) { +@@ -175,22 +177,22 @@ exports.default = (0, vue_1.defineComponent)({ + })) + .filter(shouldRuleBeApplied) + .map((rule, i) => { +- const shallowClonedRule = Object.assign({}, rule); +- if (shallowClonedRule.validator) { +- shallowClonedRule.validator = wrapValidator(shallowClonedRule.validator, false); +- } +- if (shallowClonedRule.asyncValidator) { +- shallowClonedRule.asyncValidator = wrapValidator(shallowClonedRule.asyncValidator, true); +- } +- if (shallowClonedRule.renderMessage) { +- const rendererKey = `__renderMessage__${i}`; +- originalMessageRendersMessage[rendererKey] = +- shallowClonedRule.message; +- shallowClonedRule.message = rendererKey; +- messageRenderers[rendererKey] = shallowClonedRule.renderMessage; +- } +- return shallowClonedRule; +- }); ++ const shallowClonedRule = Object.assign({}, rule); ++ if (shallowClonedRule.validator) { ++ shallowClonedRule.validator = wrapValidator(shallowClonedRule.validator, false); ++ } ++ if (shallowClonedRule.asyncValidator) { ++ shallowClonedRule.asyncValidator = wrapValidator(shallowClonedRule.asyncValidator, true); ++ } ++ if (shallowClonedRule.renderMessage) { ++ const rendererKey = `__renderMessage__${i}`; ++ originalMessageRendersMessage[rendererKey] = ++ shallowClonedRule.message; ++ shallowClonedRule.message = rendererKey; ++ messageRenderers[rendererKey] = shallowClonedRule.renderMessage; ++ } ++ return shallowClonedRule; ++ }); + const activeErrorRules = activeRules.filter((r) => r.level !== 'warning'); + const activeWarningRules = activeRules.filter((r) => r.level === 'warning'); + const mergedPath = path !== null && path !== void 0 ? path : '__n_no_path__'; +@@ -353,31 +355,37 @@ exports.default = (0, vue_1.defineComponent)({ + const textNode = ((0, vue_1.h)("span", { class: `${mergedClsPrefix}-form-item-label__text` }, labelText)); + const markNode = renderedShowRequireMark ? ((0, vue_1.h)("span", { class: `${mergedClsPrefix}-form-item-label__asterisk` }, mergedRequireMarkPlacement !== 'left' ? '\u00A0*' : '*\u00A0')) : (mergedRequireMarkPlacement === 'right-hanging' && ((0, vue_1.h)("span", { class: `${mergedClsPrefix}-form-item-label__asterisk-placeholder` }, '\u00A0*'))); + const { labelProps } = this; +- return ((0, vue_1.h)("label", Object.assign({}, labelProps, { class: [ ++ return ((0, vue_1.h)("label", Object.assign({}, labelProps, { ++ class: [ + labelProps === null || labelProps === void 0 ? void 0 : labelProps.class, + `${mergedClsPrefix}-form-item-label`, + `${mergedClsPrefix}-form-item-label--${mergedRequireMarkPlacement}-mark`, + this.reverseColSpace && +- `${mergedClsPrefix}-form-item-label--reverse-columns-space` +- ], style: this.mergedLabelStyle, ref: "labelElementRef" }), mergedRequireMarkPlacement === 'left' ++ `${mergedClsPrefix}-form-item-label--reverse-columns-space` ++ ], style: this.mergedLabelStyle, ref: "labelElementRef" ++ }), mergedRequireMarkPlacement === 'left' + ? [markNode, textNode] + : [textNode, markNode])); + }; +- return ((0, vue_1.h)("div", { class: [ ++ return ((0, vue_1.h)("div", { ++ class: [ + `${mergedClsPrefix}-form-item`, + this.themeClass, + `${mergedClsPrefix}-form-item--${this.mergedSize}-size`, + `${mergedClsPrefix}-form-item--${this.mergedLabelPlacement}-labelled`, + this.isAutoLabelWidth && +- `${mergedClsPrefix}-form-item--auto-label-width`, ++ `${mergedClsPrefix}-form-item--auto-label-width`, + !mergedShowLabel && `${mergedClsPrefix}-form-item--no-label` +- ], style: this.cssVars }, ++ ], style: this.cssVars ++ }, + mergedShowLabel && renderLabel(), +- (0, vue_1.h)("div", { class: [ ++ (0, vue_1.h)("div", { ++ class: [ + `${mergedClsPrefix}-form-item-blank`, + this.mergedValidationStatus && +- `${mergedClsPrefix}-form-item-blank--${this.mergedValidationStatus}` +- ] }, $slots), ++ `${mergedClsPrefix}-form-item-blank--${this.mergedValidationStatus}` ++ ] ++ }, $slots), + this.mergedShowFeedback ? ((0, vue_1.h)("div", { key: this.feedbackId, class: `${mergedClsPrefix}-form-item-feedback-wrapper` }, + (0, vue_1.h)(vue_1.Transition, { name: "fade-down-transition", mode: "out-in" }, { + default: () => { +@@ -386,7 +394,9 @@ exports.default = (0, vue_1.defineComponent)({ + var _a; + const { feedback } = this; + const feedbackNodes = children || feedback ? ((0, vue_1.h)("div", { key: "__feedback__", class: `${mergedClsPrefix}-form-item-feedback__line` }, children || feedback)) : this.renderExplains.length ? ((_a = this.renderExplains) === null || _a === void 0 ? void 0 : _a.map(({ key, render }) => ((0, vue_1.h)("div", { key: key, class: `${mergedClsPrefix}-form-item-feedback__line` }, render())))) : null; +- return feedbackNodes ? (mergedValidationStatus === 'warning' ? ((0, vue_1.h)("div", { key: "controlled-warning", class: `${mergedClsPrefix}-form-item-feedback ${mergedClsPrefix}-form-item-feedback--warning` }, feedbackNodes)) : mergedValidationStatus === 'error' ? ((0, vue_1.h)("div", { key: "controlled-error", class: `${mergedClsPrefix}-form-item-feedback ${mergedClsPrefix}-form-item-feedback--error` }, feedbackNodes)) : mergedValidationStatus === 'success' ? ((0, vue_1.h)("div", { key: "controlled-success", class: `${mergedClsPrefix}-form-item-feedback ${mergedClsPrefix}-form-item-feedback--success` }, feedbackNodes)) : ((0, vue_1.h)("div", { key: "controlled-default", class: `${mergedClsPrefix}-form-item-feedback` }, feedbackNodes))) : null; ++ return feedbackNodes ? (mergedValidationStatus === 'warning' ? ((0, vue_1.h)("div", { key: "controlled-warning", class: `${mergedClsPrefix}-form-item-feedback ${mergedClsPrefix}-form-item-feedback--warning` }, feedbackNodes)) : mergedValidationStatus === 'error' ? ((0, vue_1.h)("div", { key: "controlled-error", class: `${mergedClsPrefix}-form-item-feedback ${mergedClsPrefix}-form-item-feedback--error flex` }, [h('img', { ++ style: { width: '1rem', height: '1rem' },src: 'http://47.93.59.251/api/upload/ocr/1711419313955_c.png' ++ }), feedbackNodes])) : mergedValidationStatus === 'success' ? ((0, vue_1.h)("div", { key: "controlled-success", class: `${mergedClsPrefix}-form-item-feedback ${mergedClsPrefix}-form-item-feedback--success` }, feedbackNodes)) : ((0, vue_1.h)("div", { key: "controlled-default", class: `${mergedClsPrefix}-form-item-feedback` }, feedbackNodes))) : null; + }); + } + }))) : null)); diff --git a/src/views/home/aside/comp/modals/CustomFilterModal.vue b/src/views/home/aside/comp/modals/CustomFilterModal.vue index 0d74258..814ca94 100644 --- a/src/views/home/aside/comp/modals/CustomFilterModal.vue +++ b/src/views/home/aside/comp/modals/CustomFilterModal.vue @@ -399,7 +399,7 @@ onMounted(() => { background: #507AFD !important; } .n-button--default-type{ - background: #CAD2DD !important; + background: #fff !important; color: #333333; } } diff --git a/src/views/login/components/Forget.vue b/src/views/login/components/Forget.vue index 8607a51..99ee5e5 100644 --- a/src/views/login/components/Forget.vue +++ b/src/views/login/components/Forget.vue @@ -266,7 +266,7 @@ function forget() { - + 下一步 - +
@@ -347,8 +347,7 @@ function forget() { box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.04); backdrop-filter: blur(12px); position: relative; - padding: 3rem 1.6875rem 2.625rem; - + padding: 3rem 1.6875rem 2rem; .img-close { position: absolute; right: 0; @@ -357,7 +356,6 @@ function forget() { height: 1.75rem; cursor: pointer; } - .tab { font-size: 1.5rem; font-family: PingFang SC, PingFang SC-Medium; @@ -389,8 +387,8 @@ function forget() { height: 2.75rem; background: linear-gradient(234deg, #96aaff 0%, #1c43ff 100%); border-radius: 3px; - margin-top: .625rem; - margin-bottom: .875rem; + margin-top: 1rem; + // margin-bottom: .875rem; font-size: 1rem; &-disabled { opacity: 0.5; @@ -436,4 +434,27 @@ function forget() { line-height: 1.3125rem; cursor: pointer; } + +// 样式适配 +::v-deep(.n-base-clear > .n-base-clear__clear > .n-base-icon > svg) { + color: #c9c9c9; +} +::v-deep(.n-input .n-input__input-el) { + height: 2.75rem !important; + font-size: 1rem !important; +} +::v-deep(.n-input .n-input-wrapper) { + height: 2.75rem !important; +} +.save-btn { + font-size: 0.9375rem; +} +::v-deep(.n-form-item .n-form-item-feedback-wrapper) { + height: 1rem; + padding: 0 !important; + margin: 0 !important; + line-height: normal !important; + min-height: 0 !important; + // margin-bottom: .5rem; +} diff --git a/src/views/login/components/Login.vue b/src/views/login/components/Login.vue index beb8f13..aa3fbc1 100644 --- a/src/views/login/components/Login.vue +++ b/src/views/login/components/Login.vue @@ -8,6 +8,7 @@ import { PageEnum } from "@/enums/pageEnum"; import { useUserStore } from "@/store/modules/user"; import { ResultEnum } from "@/enums/httpEnum"; import { getCode, smsLogin } from "@/api/login/login"; +import SvgIcon from "@/components/Icon/SvgIcon.vue"; const emit = defineEmits(["close", "forget"]); interface FormState { @@ -54,14 +55,12 @@ const tab = ref(0); const countTime = ref("获取验证码"); const rules = { enterprisecode: [ + { required: true, message: "请输入企业编码", trigger: "blur" }, { - trigger: ["blur","input","change"], + trigger: ["blur", "input", "change"], level: "error", validator(_rule, value) { - if (!value) { - return new Error("请输入企业编码"); - } - if (loginSuccess.value) { + if (loginSuccess.value || !value) { return true; } return new Error(loginRejectMessge.value); @@ -69,14 +68,12 @@ const rules = { }, ], agentcode: [ + { required: true, message: "请输入验证码", trigger: "blur" }, { - trigger: ["blur","input","change"], + trigger: ["blur", "input", "change"], level: "error", validator(_rule, value) { - if (!value) { - return new Error("请输入验证码"); - } - if (loginSuccess.value) { + if (loginSuccess.value || !value) { return true; } return new Error(loginRejectMessge.value); @@ -84,31 +81,28 @@ const rules = { }, ], phone: [ - { - trigger: ["blur","input","change"], + { required: true, message: "请输入手机号", trigger: "blur" }, + { + trigger: ["blur", "input", "change"], level: "error", validator(_rule, value) { - if (!value) { - return new Error("请输入手机号"); - } - if (loginSuccess.value) { + if (loginSuccess.value || !value) { return true; } return new Error(loginRejectMessge.value); }, - },], + }, + ], phonecode: [ + { required: true, message: "请输入验证码", trigger: "blur" }, { - trigger: ["blur","input","change"], + trigger: ["blur", "input", "change"], level: "error", validator(_rule, value) { if (value.length < 4 && value.length > 0) { return new Error("请正确填写4位手机短信验证码"); } - if (!value) { - return new Error("请输入验证码"); - } - if (loginSuccess.value) { + if (loginSuccess.value || !value) { return true; } return new Error(loginRejectMessge.value); @@ -116,14 +110,12 @@ const rules = { }, ], username: [ + { required: true, message: "请输入账号", trigger: "blur" }, { - trigger: ["blur","input","change"], + trigger: ["blur", "input", "change"], level: "error", validator(_rule, value) { - if (!value) { - return new Error("请输入账号"); - } - if (loginSuccess.value) { + if (loginSuccess.value || !value) { return true; } return new Error(loginRejectMessge.value); @@ -131,19 +123,18 @@ const rules = { }, ], password: [ - { - trigger: ["blur","input","change"], + { required: true, message: "请输入密码", trigger: "blur" }, + { + trigger: ["blur", "input", "change"], level: "error", validator(_rule, value) { - if (!value) { - return new Error("请输入密码"); - } - if (loginSuccess.value) { + if (loginSuccess.value || !value) { return true; } return new Error(loginRejectMessge.value); }, - },], + }, + ], captcha: [{ required: true, message: "请输入验证码", trigger: "blur" }], }; @@ -506,7 +497,7 @@ function forget() { From aca010ccd1125a0649246811b82af8dfd9168abd Mon Sep 17 00:00:00 2001 From: liushilong <2224574157@qq.com> Date: Tue, 26 Mar 2024 17:24:28 +0800 Subject: [PATCH 11/17] =?UTF-8?q?feat:=20=E5=BC=B9=E6=A1=86=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E8=B0=83=E6=95=B4=E5=8F=8A=E7=BB=86=E8=8A=82=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/components/Header/UserSettings.vue | 4 +- src/views/final/comp/CustomFilterModalVue.vue | 9 +- src/views/final/comp/CustomTabelModal.vue | 52 ++-- src/views/final/comp/FilterModal.vue | 7 +- src/views/final/comp/RepeatTaskTableModal.vue | 231 +++++++++--------- .../aside/comp/modals/CustomFilterModal.vue | 8 +- src/views/message/content/List.vue | 2 +- src/views/task/modal/CustomFieldModal.vue | 28 ++- src/views/task/modal/CustomSettingModal.vue | 8 +- src/views/worksheet/aside/Aside.vue | 2 +- .../worksheet/modal/CustomFieldModal copy.vue | 15 +- .../worksheet/modal/CustomFieldModal.vue | 16 +- 12 files changed, 217 insertions(+), 165 deletions(-) diff --git a/src/layout/components/Header/UserSettings.vue b/src/layout/components/Header/UserSettings.vue index db042e2..f178ac7 100644 --- a/src/layout/components/Header/UserSettings.vue +++ b/src/layout/components/Header/UserSettings.vue @@ -134,10 +134,10 @@ const options = computed(() => { .container { .header{ .user-name{ - font-size: 21px; + font-size: 16px; } .depart-name{ - font-size: 16px; + font-size: 12px; } } } diff --git a/src/views/final/comp/CustomFilterModalVue.vue b/src/views/final/comp/CustomFilterModalVue.vue index 04536db..5728f0e 100644 --- a/src/views/final/comp/CustomFilterModalVue.vue +++ b/src/views/final/comp/CustomFilterModalVue.vue @@ -25,7 +25,7 @@ const offList = ref([]); const onList = ref([]); const allCount = computed(() => { - return `全部筛选(共${offList.value.length - 1}个)`; + return `全部筛选(共${offList.value.length}个)`; }); const selectCount = computed(() => { @@ -389,6 +389,7 @@ const rightInputHandler = debounce((keyword) => { &-info { font-weight: bold; position: relative; + font-size: 14px; &:before { background-color: #1980ff; @@ -446,9 +447,13 @@ const rightInputHandler = debounce((keyword) => { --n-padding-bottom: 12px; } ::v-deep(.n-card > .n-card-header .n-card-header__main){ - font-weight: bolder !important; + font-weight: lighter !important; + font-size: 14px; } ::v-deep(.n-scrollbar){ border-top: none !important; } +::v-deep(.n-button--info-type){ + background: #507AFD !important; +} diff --git a/src/views/final/comp/CustomTabelModal.vue b/src/views/final/comp/CustomTabelModal.vue index 670b393..830dd49 100644 --- a/src/views/final/comp/CustomTabelModal.vue +++ b/src/views/final/comp/CustomTabelModal.vue @@ -52,7 +52,7 @@ onMounted(async () => { }; if (item.fix) { mustList.push(item); - if (!userFieldFixed?.length && !userFieldUnFixed?.length) { + if (!userFieldFixed?.length && !userFieldUnFixed?.length) { fixLeftList.value.push(item); } } @@ -64,7 +64,6 @@ onMounted(async () => { } offList.value.push(item); }); - }); const allCount = computed(() => { @@ -344,7 +343,7 @@ function removeHandler(id: string, type: "fix" | "unfix") { -
+
+ {{ item.name }} @@ -430,15 +426,12 @@ function removeHandler(id: string, type: "fix" | "unfix") { :class="{ fix: item.fix }" class="cursor-move draggable-item" > + {{ item.name }} @@ -467,6 +460,8 @@ function removeHandler(id: string, type: "fix" | "unfix") { .wrapper { display: flex; flex-direction: column; + border-bottom: 1px solid #e8e8e8; + padding-bottom: 32px; &-title { font-weight: bold; @@ -474,7 +469,6 @@ function removeHandler(id: string, type: "fix" | "unfix") { } &-bar { - background-color: #e8e8e8; width: 100%; margin-top: 20px; } @@ -487,6 +481,8 @@ function removeHandler(id: string, type: "fix" | "unfix") { &-info { font-weight: bold; position: relative; + color: #333333; + font-size: 14px; &:before { background-color: #1980ff; @@ -507,8 +503,11 @@ function removeHandler(id: string, type: "fix" | "unfix") { .cardstyle { width: 820px; - --n-padding-bottom: 20px; + // --n-padding-bottom: 20px; --n-padding-left: 24px; + --n-padding-right: 24px; + --n-padding-top: 20px; + // padding: 20px 24px 0 24px !important } .textbtnStyle { @@ -540,10 +539,11 @@ function removeHandler(id: string, type: "fix" | "unfix") { } .draggable-item { - padding: 10px 16px; + padding: 11px 16px; color: #333; display: flex; align-items: center; + border-bottom: 1px solid #e8e8e8; } .disable-check { @@ -551,9 +551,7 @@ function removeHandler(id: string, type: "fix" | "unfix") { } } -::v-deep( - .n-card.n-card--content-segmented > .n-card__content:not(:first-child) - ) { +::v-deep(.n-card.n-card--content-segmented > .n-card__content:not(:first-child)) { border: 0px; } @@ -561,10 +559,20 @@ function removeHandler(id: string, type: "fix" | "unfix") { --n-padding-top: 0px; --n-padding-bottom: 12px; } -::v-deep(.n-card > .n-card-header .n-card-header__main){ - font-weight: bolder !important; +::v-deep(.n-card > .n-card-header .n-card-header__main) { + font-weight: lighter !important; + font-size: 14px; } -::v-deep(.n-scrollbar){ +::v-deep(.n-scrollbar) { border-top: none !important; } +::v-deep(.n-button--info-type) { + background: #507afd !important; +} +.left-wrap{ + border: 1px solid #cbd3de; +} +// ::v-deep(.n-card__content){ +// padding: 20px 24px 0 24px !important; +// } diff --git a/src/views/final/comp/FilterModal.vue b/src/views/final/comp/FilterModal.vue index df8672b..b27a3a4 100644 --- a/src/views/final/comp/FilterModal.vue +++ b/src/views/final/comp/FilterModal.vue @@ -88,7 +88,7 @@ const pagination = reactive({ page: 1, pageCount: 1, pageSize: 10, - showSizePicker:true, + showSizePicker: true, pageSizes: [ { label: "10 每页", @@ -108,6 +108,7 @@ const pagination = reactive({ }, ], showQuickJumper: true, + itemCount:100 }); const tableData = ref>([]); const keyword = ref(""); @@ -204,7 +205,6 @@ async function handlePageSizeChange(currentPageSize) { await query(page, currentPageSize); } - function handleClick() { emit("showNewFilter"); show.value = false; @@ -333,9 +333,8 @@ const inputHandler = debounce((word) => { :pagination="pagination" :row-key="rowKey" @update:page="handlePageChange" -@update-page-size="handlePageSizeChange" + @update-page-size="handlePageSizeChange" @update:checked-row-keys="handleCheck" - />
diff --git a/src/views/final/comp/RepeatTaskTableModal.vue b/src/views/final/comp/RepeatTaskTableModal.vue index 459d666..4f1bdf1 100644 --- a/src/views/final/comp/RepeatTaskTableModal.vue +++ b/src/views/final/comp/RepeatTaskTableModal.vue @@ -1,108 +1,105 @@