From 72341a96a5e5b0efdb47fae9ce96fffaec80a4d2 Mon Sep 17 00:00:00 2001
From: qsh <>
Date: Wed, 13 Nov 2024 16:03:24 +0800
Subject: [PATCH 1/5] asc

---
 src/views/Clue/Order/Comp/AfterSales.vue    | 18 ++++++++++++++++++
 src/views/Clue/Order/Comp/Reback.vue        | 17 +++++++++++++++++
 src/views/Profile/components/UserSocial.vue |  4 ++--
 3 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/src/views/Clue/Order/Comp/AfterSales.vue b/src/views/Clue/Order/Comp/AfterSales.vue
index 0d9d3b4..a578f02 100644
--- a/src/views/Clue/Order/Comp/AfterSales.vue
+++ b/src/views/Clue/Order/Comp/AfterSales.vue
@@ -83,6 +83,18 @@
           style="width: 240px"
         />
       </el-form-item>
+      <template v-if="appStore.getAppInfo?.instanceType == 1">
+        <el-form-item>
+          <el-select v-model="searchForm.area" placeholder="选择区域" clearable filterable>
+            <el-option
+              v-for="item in areaOptions"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            />
+          </el-select>
+        </el-form-item>
+      </template>
       <el-form-item>
         <el-button @click="handleSearch" v-hasPermi="['clue:order:after-sale-search']">
           查询
@@ -189,6 +201,7 @@
 <script setup name="AfterSales">
 import * as AfterSaleApi from '@/api/clue/afterSale'
 import { getSimpleUserList as getUserOption } from '@/api/system/user'
+import { getAreaSimpleList } from '@/api/school/setting/area'
 import { useUserStore } from '@/store/modules/user'
 
 import DialogAfterSaleAudit from './DialogAfterSaleAudit.vue'
@@ -292,7 +305,12 @@ function handleAudit(row) {
   afterSaleAuditDialog.value.open(row)
 }
 
+const areaOptions = ref([])
 function getOptions() {
+  // 区域
+  getAreaSimpleList().then((data) => {
+    areaOptions.value = data
+  })
   getUserOption().then((data) => {
     userOptions.value = data
   })
diff --git a/src/views/Clue/Order/Comp/Reback.vue b/src/views/Clue/Order/Comp/Reback.vue
index 3a3cec7..aa4d9b1 100644
--- a/src/views/Clue/Order/Comp/Reback.vue
+++ b/src/views/Clue/Order/Comp/Reback.vue
@@ -94,6 +94,16 @@
             />
           </el-select>
         </el-form-item>
+        <el-form-item>
+          <el-select v-model="searchForm.area" placeholder="选择区域" clearable filterable>
+            <el-option
+              v-for="item in areaOptions"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            />
+          </el-select>
+        </el-form-item>
       </template>
       <el-form-item v-else-if="appStore.getAppInfo?.instanceType == 2">
         <el-select
@@ -404,6 +414,7 @@ import * as FeebackApi from '@/api/clue/payment'
 import { getSimpleUserList as getUserOption, getAllUserList } from '@/api/system/user'
 import { getPlaceList } from '@/api/school/place'
 import { getClassTypeList } from '@/api/school/class'
+import { getAreaSimpleList } from '@/api/school/setting/area'
 import { DICT_TYPE, getDictOptions } from '@/utils/dict'
 import { useUserStore } from '@/store/modules/user'
 
@@ -471,6 +482,7 @@ function handleReset() {
     signSchool: undefined,
     signPlace: undefined,
     signClass: undefined,
+    area: undefined,
     pageNo: 1,
     pageSize: 20
   }
@@ -541,12 +553,17 @@ function handleAudit(row) {
   feebackDialog.value.open(row)
 }
 
+const areaOptions = ref([])
 function getOptions() {
   // 驾校
   getPlaceList({ placeStatus: 0, schoolStatus: 0, isSearchSchool: true }).then((data) => {
     schoolOptions.value = data.schoolList
     allPlaceOptions.value = data.placeList
   })
+  // 区域
+  getAreaSimpleList().then((data) => {
+    areaOptions.value = data
+  })
   getUserOption().then((data) => {
     userOptions.value = data
   })
diff --git a/src/views/Profile/components/UserSocial.vue b/src/views/Profile/components/UserSocial.vue
index 1af0392..907c762 100644
--- a/src/views/Profile/components/UserSocial.vue
+++ b/src/views/Profile/components/UserSocial.vue
@@ -61,8 +61,8 @@ const bindSocial = () => {
   })
 }
 const bind = (row) => {
-  message.info('暂未开放,敬请期待')
-  return
+  // message.info('暂未开放,敬请期待')
+  // return
   const redirectUri = location.origin + '/user/profile?type=' + row.type
   // 进行跳转
   socialAuthRedirect(row.type, encodeURIComponent(redirectUri)).then((res) => {

From b09ba1547c60294c61e46a559533dce47edeb305 Mon Sep 17 00:00:00 2001
From: qsh <>
Date: Wed, 20 Nov 2024 15:11:16 +0800
Subject: [PATCH 2/5] sc

---
 src/api/system/user/index.ts               |  5 ++--
 src/views/Basic/User/UserForm.vue          | 11 +++++++--
 src/views/Basic/User/index.vue             | 28 +++++++++++++++-------
 src/views/Profile/components/BasicInfo.vue |  5 ++++
 4 files changed, 37 insertions(+), 12 deletions(-)

diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts
index 71f69f4..055b8f5 100644
--- a/src/api/system/user/index.ts
+++ b/src/api/system/user/index.ts
@@ -62,10 +62,11 @@ export const resetUserPwd = (id: number, password: string) => {
 }
 
 // 用户状态修改
-export const updateUserStatus = (id: number, status: number) => {
+export const updateUserStatus = (id: number, status: number, retireDate: string) => {
   const data = {
     id,
-    status
+    status,
+    retireDate
   }
   return request.put({ url: '/admin-api/system/user/update-status', data: data })
 }
diff --git a/src/views/Basic/User/UserForm.vue b/src/views/Basic/User/UserForm.vue
index 967652d..0da1b62 100644
--- a/src/views/Basic/User/UserForm.vue
+++ b/src/views/Basic/User/UserForm.vue
@@ -85,6 +85,11 @@
         </el-col>
       </el-row>
       <el-row :gutter="20">
+        <el-col :span="12" :offset="0">
+          <el-form-item label="微信号" prop="wxAlias">
+            <el-input v-model="formData.wxAlias" placeholder="请输入微信号" />
+          </el-form-item>
+        </el-col>
         <el-col :span="12" :offset="0">
           <el-form-item label="入职日期" prop="hireDate">
             <el-date-picker
@@ -140,7 +145,8 @@ const formData = ref({
   status: CommonStatusEnum.ENABLE,
   roleIds: [],
   hireDate: '',
-  isNewUserConfirm: false
+  isNewUserConfirm: false,
+  wxAlias: ''
 })
 const formRules = ref<any>({
   username: [{ required: true, message: '登录账号不能为空', trigger: 'blur' }],
@@ -228,7 +234,8 @@ const resetForm = () => {
     status: CommonStatusEnum.ENABLE,
     roleIds: [],
     hireDate: formatDate(new Date(), 'YYYY-MM-DD'),
-    isNewUserConfirm: false
+    isNewUserConfirm: false,
+    wxAlias: ''
   }
   formRef.value?.resetFields()
 }
diff --git a/src/views/Basic/User/index.vue b/src/views/Basic/User/index.vue
index ad1753a..3ff35f9 100644
--- a/src/views/Basic/User/index.vue
+++ b/src/views/Basic/User/index.vue
@@ -50,6 +50,7 @@
         <el-table-column label="用户姓名" prop="nickname" />
         <el-table-column label="部门" key="deptName" prop="deptName" />
         <el-table-column label="手机号码" prop="mobile" width="120" />
+        <el-table-column label="微信号" prop="wxAlias" min-width="80" />
         <el-table-column label="状态" key="status" width="180">
           <template #default="scope">
             <el-switch
@@ -63,12 +64,8 @@
             />
           </template>
         </el-table-column>
-        <el-table-column
-          label="创建时间"
-          prop="createTime"
-          width="180"
-          :formatter="dateFormatter"
-        />
+        <el-table-column label="入职日期" prop="hireDate" width="120" :formatter="dateFormatter" />
+        <el-table-column label="离职日期" prop="" width="120" :formatter="dateFormatter" />
         <el-table-column label="操作" width="200">
           <template #default="scope">
             <el-button
@@ -183,9 +180,24 @@ const handleStatusChange = async (row: UserApi.UserVO) => {
   try {
     // 修改状态的二次确认
     const text = row.status === CommonStatusEnum.ENABLE ? '启用' : '停用'
-    await message.confirm('确认要"' + text + '""' + row.username + '"用户吗?')
+    let result = { value: '' }
+    if (text == '启用') {
+      await message.confirm('确认要"' + text + '""' + row.username + '"用户吗?')
+    } else {
+      result = await message.prompt(
+        '请输入年月日,如2024-01-01',
+        '确认要"' + text + '""' + row.username + '"用户吗?'
+      )
+      const regex = /^\d{4}-\d{2}-\d{2}$/
+
+      if (!regex.test(result.value)) {
+        message.error('请输入离职日期')
+        throw new Error()
+      }
+    }
     // 发起修改状态
-    await UserApi.updateUserStatus(row.id, row.status)
+    await UserApi.updateUserStatus(row.id, row.status, result.value)
+    message.success('修改成功')
     // 刷新列表
     await getList()
   } catch {
diff --git a/src/views/Profile/components/BasicInfo.vue b/src/views/Profile/components/BasicInfo.vue
index f3cc81c..178c24b 100644
--- a/src/views/Profile/components/BasicInfo.vue
+++ b/src/views/Profile/components/BasicInfo.vue
@@ -59,6 +59,11 @@ const schema = reactive<FormSchema[]>([
     label: t('profile.user.email'),
     component: 'Input'
   },
+  {
+    field: 'wxAlias',
+    label: '微信号',
+    component: 'Input'
+  },
   {
     field: 'sex',
     label: t('profile.user.sex'),

From beb12193b3214805718e1ded5555751eb811e44b Mon Sep 17 00:00:00 2001
From: qsh <>
Date: Wed, 20 Nov 2024 16:05:52 +0800
Subject: [PATCH 3/5] sc

---
 src/api/system/user/index.ts   |  7 +++--
 src/views/Basic/User/index.vue | 54 +++++++++++++++++++++++++++-------
 2 files changed, 49 insertions(+), 12 deletions(-)

diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts
index 055b8f5..a083baa 100644
--- a/src/api/system/user/index.ts
+++ b/src/api/system/user/index.ts
@@ -12,9 +12,11 @@ export interface UserVO {
   avatar: string
   loginIp: string
   status: number
+  inUse: number
   remark: string
   loginDate: Date
   createTime: Date
+  retireDate: string
 }
 
 // 查询用户管理列表
@@ -62,11 +64,12 @@ export const resetUserPwd = (id: number, password: string) => {
 }
 
 // 用户状态修改
-export const updateUserStatus = (id: number, status: number, retireDate: string) => {
+export const updateUserStatus = (id: number, status: number, retireDate: string, inUse: number) => {
   const data = {
     id,
     status,
-    retireDate
+    retireDate,
+    inUse
   }
   return request.put({ url: '/admin-api/system/user/update-status', data: data })
 }
diff --git a/src/views/Basic/User/index.vue b/src/views/Basic/User/index.vue
index 3ff35f9..607ec08 100644
--- a/src/views/Basic/User/index.vue
+++ b/src/views/Basic/User/index.vue
@@ -45,13 +45,13 @@
         </el-form-item>
       </el-form>
       <el-table v-loading="loading" :data="list">
-        <el-table-column label="用户编号" key="id" prop="id" />
+        <el-table-column label="用户编号" key="id" prop="id" width="100" />
         <el-table-column label="登录账号" prop="username" />
         <el-table-column label="用户姓名" prop="nickname" />
-        <el-table-column label="部门" key="deptName" prop="deptName" />
+        <el-table-column label="部门" key="deptName" prop="deptName" width="100" />
         <el-table-column label="手机号码" prop="mobile" width="120" />
         <el-table-column label="微信号" prop="wxAlias" min-width="80" />
-        <el-table-column label="状态" key="status" width="180">
+        <el-table-column label="在职状态" key="status" width="120">
           <template #default="scope">
             <el-switch
               v-model="scope.row.status"
@@ -59,14 +59,30 @@
               :inactive-value="1"
               active-text="在职"
               inactive-text="离职"
+              size="small"
               v-hasPermi="['basic:employee:update']"
               @change="handleStatusChange(scope.row)"
             />
           </template>
         </el-table-column>
+        <el-table-column label="启用状态" key="inUse" width="120">
+          <template #default="scope">
+            <el-switch
+              v-model="scope.row.inUse"
+              :active-value="0"
+              :inactive-value="1"
+              active-text="启用"
+              inactive-text="禁用"
+              size="small"
+              :disabled="scope.row.status == 1"
+              v-hasPermi="['basic:employee:update']"
+              @change="handleUseChange(scope.row)"
+            />
+          </template>
+        </el-table-column>
         <el-table-column label="入职日期" prop="hireDate" width="120" :formatter="dateFormatter" />
         <el-table-column label="离职日期" prop="" width="120" :formatter="dateFormatter" />
-        <el-table-column label="操作" width="200">
+        <el-table-column label="操作" width="180">
           <template #default="scope">
             <el-button
               type="primary"
@@ -175,18 +191,18 @@ const openForm = (type: string, id?: number) => {
   formRef.value.open(type, id)
 }
 
-/** 修改用户状态 */
+/** 修改在职状态 */
 const handleStatusChange = async (row: UserApi.UserVO) => {
   try {
     // 修改状态的二次确认
-    const text = row.status === CommonStatusEnum.ENABLE ? '启用' : '停用'
+    const text = row.status === CommonStatusEnum.ENABLE ? '入职' : '离职'
     let result = { value: '' }
-    if (text == '启用') {
-      await message.confirm('确认要"' + text + '""' + row.username + '"用户吗?')
+    if (text == '入职') {
+      await message.confirm('确认要"' + text + '""' + row.nickname + '"吗?')
     } else {
       result = await message.prompt(
         '请输入年月日,如2024-01-01',
-        '确认要"' + text + '""' + row.username + '"用户吗?'
+        '确认要"' + text + '""' + row.nickname + '"用户吗?'
       )
       const regex = /^\d{4}-\d{2}-\d{2}$/
 
@@ -196,7 +212,25 @@ const handleStatusChange = async (row: UserApi.UserVO) => {
       }
     }
     // 发起修改状态
-    await UserApi.updateUserStatus(row.id, row.status, result.value)
+    await UserApi.updateUserStatus(row.id, row.status, result.value, row.inUse)
+    message.success('修改成功')
+    // 刷新列表
+    await getList()
+  } catch {
+    // 取消后,进行恢复按钮
+    row.status =
+      row.status === CommonStatusEnum.ENABLE ? CommonStatusEnum.DISABLE : CommonStatusEnum.ENABLE
+  }
+}
+
+// 修改启用状态
+const handleUseChange = async (row: UserApi.UserVO) => {
+  try {
+    // 修改状态的二次确认
+    const text = row.status === CommonStatusEnum.ENABLE ? '启用' : '禁用'
+    await message.confirm('确认要"' + text + '""' + row.nickname + '"吗?')
+    // 发起修改状态
+    await UserApi.updateUserStatus(row.id, row.status, row.retireDate, row.inUse)
     message.success('修改成功')
     // 刷新列表
     await getList()

From c01fea9c5b6dc3bcdaac17a288d9d924a4636341 Mon Sep 17 00:00:00 2001
From: qsh <>
Date: Wed, 20 Nov 2024 16:12:51 +0800
Subject: [PATCH 4/5] sc

---
 src/api/system/user/index.ts   | 11 ++++++++---
 src/views/Basic/User/index.vue | 22 ++++++++++++----------
 2 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts
index a083baa..a3135e2 100644
--- a/src/api/system/user/index.ts
+++ b/src/api/system/user/index.ts
@@ -12,7 +12,7 @@ export interface UserVO {
   avatar: string
   loginIp: string
   status: number
-  inUse: number
+  hireStatus: number
   remark: string
   loginDate: Date
   createTime: Date
@@ -64,12 +64,17 @@ export const resetUserPwd = (id: number, password: string) => {
 }
 
 // 用户状态修改
-export const updateUserStatus = (id: number, status: number, retireDate: string, inUse: number) => {
+export const updateUserStatus = (
+  id: number,
+  status: number,
+  retireDate: string,
+  hireStatus: number
+) => {
   const data = {
     id,
     status,
     retireDate,
-    inUse
+    hireStatus
   }
   return request.put({ url: '/admin-api/system/user/update-status', data: data })
 }
diff --git a/src/views/Basic/User/index.vue b/src/views/Basic/User/index.vue
index 607ec08..c340bf6 100644
--- a/src/views/Basic/User/index.vue
+++ b/src/views/Basic/User/index.vue
@@ -51,10 +51,10 @@
         <el-table-column label="部门" key="deptName" prop="deptName" width="100" />
         <el-table-column label="手机号码" prop="mobile" width="120" />
         <el-table-column label="微信号" prop="wxAlias" min-width="80" />
-        <el-table-column label="在职状态" key="status" width="120">
+        <el-table-column label="在职状态" key="hireStatus" width="120">
           <template #default="scope">
             <el-switch
-              v-model="scope.row.status"
+              v-model="scope.row.hireStatus"
               :active-value="0"
               :inactive-value="1"
               active-text="在职"
@@ -65,16 +65,16 @@
             />
           </template>
         </el-table-column>
-        <el-table-column label="启用状态" key="inUse" width="120">
+        <el-table-column label="启用状态" key="status" width="120">
           <template #default="scope">
             <el-switch
-              v-model="scope.row.inUse"
+              v-model="scope.row.status"
               :active-value="0"
               :inactive-value="1"
               active-text="启用"
               inactive-text="禁用"
               size="small"
-              :disabled="scope.row.status == 1"
+              :disabled="scope.row.hireStatus == 1"
               v-hasPermi="['basic:employee:update']"
               @change="handleUseChange(scope.row)"
             />
@@ -195,7 +195,7 @@ const openForm = (type: string, id?: number) => {
 const handleStatusChange = async (row: UserApi.UserVO) => {
   try {
     // 修改状态的二次确认
-    const text = row.status === CommonStatusEnum.ENABLE ? '入职' : '离职'
+    const text = row.hireStatus === CommonStatusEnum.ENABLE ? '入职' : '离职'
     let result = { value: '' }
     if (text == '入职') {
       await message.confirm('确认要"' + text + '""' + row.nickname + '"吗?')
@@ -212,14 +212,16 @@ const handleStatusChange = async (row: UserApi.UserVO) => {
       }
     }
     // 发起修改状态
-    await UserApi.updateUserStatus(row.id, row.status, result.value, row.inUse)
+    await UserApi.updateUserStatus(row.id, row.status, result.value, row.hireStatus)
     message.success('修改成功')
     // 刷新列表
     await getList()
   } catch {
     // 取消后,进行恢复按钮
-    row.status =
-      row.status === CommonStatusEnum.ENABLE ? CommonStatusEnum.DISABLE : CommonStatusEnum.ENABLE
+    row.hireStatus =
+      row.hireStatus === CommonStatusEnum.ENABLE
+        ? CommonStatusEnum.DISABLE
+        : CommonStatusEnum.ENABLE
   }
 }
 
@@ -230,7 +232,7 @@ const handleUseChange = async (row: UserApi.UserVO) => {
     const text = row.status === CommonStatusEnum.ENABLE ? '启用' : '禁用'
     await message.confirm('确认要"' + text + '""' + row.nickname + '"吗?')
     // 发起修改状态
-    await UserApi.updateUserStatus(row.id, row.status, row.retireDate, row.inUse)
+    await UserApi.updateUserStatus(row.id, row.status, row.retireDate, row.hireStatus)
     message.success('修改成功')
     // 刷新列表
     await getList()

From ffc7691b474e72a0087e1bac286d021c23d12503 Mon Sep 17 00:00:00 2001
From: qsh <>
Date: Wed, 20 Nov 2024 16:15:45 +0800
Subject: [PATCH 5/5] sc

---
 src/views/Basic/User/index.vue | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/views/Basic/User/index.vue b/src/views/Basic/User/index.vue
index c340bf6..f9d221a 100644
--- a/src/views/Basic/User/index.vue
+++ b/src/views/Basic/User/index.vue
@@ -27,8 +27,8 @@
         </el-form-item>
         <el-form-item>
           <el-radio-group v-model="queryParams.status" @change="handleQuery">
-            <el-radio :label="0"> 在职 </el-radio>
-            <el-radio :label="1"> 离职 </el-radio>
+            <el-radio :label="0"> 启用 </el-radio>
+            <el-radio :label="1"> 禁用 </el-radio>
           </el-radio-group>
         </el-form-item>
         <el-form-item>