diff --git a/.gitignore b/.gitignore
index f79edbc..c798cef 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,5 +12,6 @@ dist
*.map
*.rar
+*.zip
*.d.ts
\ No newline at end of file
diff --git a/public/imgs/login_logo.png b/public/imgs/login_logo.png
index 7989cd6..a31f22a 100644
Binary files a/public/imgs/login_logo.png and b/public/imgs/login_logo.png differ
diff --git a/src/api/perms/admin.ts b/src/api/perms/admin.ts
index b387b42..45c3b0d 100644
--- a/src/api/perms/admin.ts
+++ b/src/api/perms/admin.ts
@@ -44,4 +44,9 @@ export function getLeaderList(type) {
export function listByCurrentDept(query) {
return request.get({ url: '/system/admin/listByCurrentDept', query})
+}
+
+// 重置密码
+export function resetPassword(params: any) {
+ return request.post({ url: '/system/resetPassword', params })
}
\ No newline at end of file
diff --git a/src/components/MailCategorySelect.vue b/src/components/MailCategorySelect.vue
index 483a17e..55f4c0b 100644
--- a/src/components/MailCategorySelect.vue
+++ b/src/components/MailCategorySelect.vue
@@ -1,9 +1,8 @@
@@ -13,21 +12,6 @@ const mailStore = useMailStore();
// 信件分类
mailStore.getMailCategorys();
-const val = ref('');
-
-const props = defineProps({
- value: {
- type: String,
- default: ''
- }
-})
-
-const emit = defineEmits(['update:value', 'change'])
-
-const handleCategoryChange = (data, node) => {
- emit('update:value', data.label)
- emit('change', data, node)
-}
\ No newline at end of file
diff --git a/src/layout/components/Header.vue b/src/layout/components/Header.vue
index 01dad4e..36d5baf 100644
--- a/src/layout/components/Header.vue
+++ b/src/layout/components/Header.vue
@@ -4,37 +4,46 @@
- 长沙公安局长信箱即接即办系统
+ 长沙市公安局局长信箱即接即办系统
-
-
- {{ userStore.userInfo.fullName }}
-
+
+
+
+ {{
+ userStore.userInfo.deptName + " " + userStore.userInfo.name
+ }}
+
+
+
+
退出
+
+
+
+
-
- -
-
- 修改密码
-
- -
-
- 退出登录
-
-
-
@@ -49,6 +58,7 @@ header {
font-size: 3.89vh;
font-weight: 700;
letter-spacing: 4px;
+
a {
text-decoration: none;
color: inherit;
@@ -58,28 +68,49 @@ header {
}
}
}
- .userinfo {
- margin-right: 8px;
- }
+ .gap{
+ position: relative;/* 设置相对定位 */
+ display: inline-block;/* 让元素具有块级元素和行内元素的特性,即将块级元素转化为内联元素 */
+
+ .dropdown-content {
+ border-radius: 20px 20px 20px 20px;
+ display: none;
+ position: absolute;
+ background-color: #f9f9f9;
+ z-index: 100;
+ min-width: 160px;
+ box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
+ padding: 12px 16px;
+ a{
+ display: inline-block;
+ z-index: 289;
+ color: black;
+ font-size: 2.4vh;
+ cursor:pointer;
+ }
+ }
+}
+
+.gap:hover .dropdown-content {
+ display: block;
+}
+
+.nav2 a {
+ color: black;
+ padding: 12px 16px;
+ display: block;/* 将a标签设置为块级标签 */
+}
+.gap:hover .nav2 {
+ display: block;
}
-.userinfo-dropdown {
- position: fixed;
- right: 16px;
- top: calc(var(--header-height) - 8px);
- background: #FFFFFF;
- box-shadow: 0px 9px 28px 8px rgba(0,0,0,0.05), 0px 6px 16px 0px rgba(0,0,0,0.08), 0px 3px 6px -4px rgba(0,0,0,0.12);
- border-radius: 8px;
- margin: 0;
- padding: 12px 0;
- z-index: 999;
- overflow: hidden;
- li {
- padding: 12px 16px;
- font-size: 16px;
+ .el-button {
+ --el-font-size-base: 18px;
+ --el-button-bg-color: #283aac;
+ --el-button-border-color: #586eff;
+ height: 36px;
&:hover {
- cursor: pointer;
- font-weight: 700;
- color: var(--primary-color);
+ --el-button-hover-bg-color: var(--el-button-bg-color);
+ --el-button-hover-border-color: #fff;
}
}
}
diff --git a/src/layout/components/edit.vue b/src/layout/components/edit.vue
new file mode 100644
index 0000000..84caca5
--- /dev/null
+++ b/src/layout/components/edit.vue
@@ -0,0 +1,155 @@
+
+
+
+
diff --git a/src/views/permission/admin/edit.vue b/src/views/permission/admin/edit.vue
index 7856bf9..fc39946 100644
--- a/src/views/permission/admin/edit.vue
+++ b/src/views/permission/admin/edit.vue
@@ -49,12 +49,13 @@
:data="optionsData.dept"
:default-expanded-keys="getExpandedKeys()"
clearable
+ check-strictly
node-key="id"
:props="{
value: 'id',
label: 'name'
}"
- placeholder="请选择上级部门"
+ placeholder="请选择归属部门"
filterable
/>
diff --git a/src/views/permission/admin/index.vue b/src/views/permission/admin/index.vue
index a2e898c..2f2bf55 100644
--- a/src/views/permission/admin/index.vue
+++ b/src/views/permission/admin/index.vue
@@ -28,7 +28,7 @@
-
+
{
- if (!value) {
- callback(new Error("请输入姓名"));
- } else if (value.length < 2) {
- callback(new Error("姓名长度不能少于2位"));
- } else if (!/^[a-zA-Z\u4e00-\u9fa5]+$/.test(value)) {
- callback(new Error("请输入中文姓名"));
- } else {
- callback();
- }
-};
+
const rules = reactive>({
source: [{ required: true, message: "请选择途径来源" }],
contactName: [
- { required: true, validator: validateName },
+ { required: true, message: "请输入姓名" },
],
contactIdCard: [
{ required: true, validator: validatorIdCard },
@@ -253,7 +243,7 @@ const rules = reactive>({
required: true,
message:
"请您尽量完整的描述您的信件内容,如发生事件、涉及单位、设计对象姓名、警号以及具体事项",
- trigger: "blur",
+ trigger: "blur"
},
],
});
diff --git a/src/views/work/components/ConfirmedCompletion.vue b/src/views/work/components/ConfirmedCompletion.vue
index 815d893..66ed407 100644
--- a/src/views/work/components/ConfirmedCompletion.vue
+++ b/src/views/work/components/ConfirmedCompletion.vue
@@ -94,7 +94,7 @@
- 认定办结意见
+ 认定办结意见*
@@ -39,7 +39,10 @@
@@ -74,13 +77,13 @@
label="下发单位"
v-if="form.mailCategory === '感谢信'"
>
-
+
props.mailId, (val) => {
- form = reactive({});
-})
+watch(
+ () => props.mailId,
+ (val) => {
+ formRef.value.resetFields();
+ form.mailFirstCategory = null;
+ form.mailSecondCategory = null;
+ form.mailThreeCategory = null;
+ }
+);
const formRef = ref();
@@ -159,12 +168,9 @@ const rules = {
],
};
-
-
const emits = defineEmits(["update:data"]);
function handleCategoryChange(data, node) {
- form.mailCategory = data.label;
if (node.level === 1) {
form.mailFirstCategory = data.label;
form.mailSecondCategory = null;
@@ -195,7 +201,7 @@ function getSecondDepts() {
function getThreeDepts(secondDeptId) {
listThree({
- secondDeptId
+ secondDeptId,
}).then((data) => {
threeDepts.value = data;
});
@@ -203,7 +209,7 @@ function getThreeDepts(secondDeptId) {
function handleChangeDept(val) {
form.threeDeptId = null;
- getThreeDepts(val)
+ getThreeDepts(val);
}
function validate() {
@@ -211,6 +217,7 @@ function validate() {
formRef.value.validate((valid) => {
if (valid) {
emits("update:data", form);
+
resolve(true);
} else {
reject();