| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { mapState } from 'vuex' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | ] |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState({ |
| | | canCreateTask: state => state.user.canCreateTask |
| | | }) |
| | | }, |
| | | methods: { |
| | | selectTaskCategory(category) { |
| | | // æ£æ¥æ¯å¦æå建任å¡çæé |
| | | if (this.canCreateTask !== '1') { |
| | | this.$modal.msgError('æ¨æ²¡ææéå建任å¡') |
| | | return |
| | | } |
| | | |
| | | // 跳转å°å¯¹åºçä»»å¡åå»ºé¡µé¢ |
| | | uni.navigateTo({ |
| | | url: `${category.page}?categoryName=${category.name}&categoryType=${category.type}&taskType=${category.taskType}` |
| | |
| | | this.searchResults = response.data || [] |
| | | this.showResults = true |
| | | }).catch(error => { |
| | | console.error('æç´¢å»é¢å¤±è´¥:', error) |
| | | // console.error('æç´¢å»é¢å¤±è´¥:', error) |
| | | this.searchResults = [] |
| | | // this.showResults = false |
| | | }) |
| | | }, |
| | | |
| | |
| | | this.searchResults = this.defaultHospitals |
| | | this.showResults = true |
| | | this.hasLoadedDefault = true |
| | | console.log('å è½½é»è®¤å»é¢åè¡¨ï¼æ°é:', this.defaultHospitals.length) |
| | | // console.log('å è½½é»è®¤å»é¢åè¡¨ï¼æ°é:', this.defaultHospitals.length) |
| | | }).catch(error => { |
| | | console.error('å è½½é»è®¤å»é¢å表失败:', error) |
| | | // console.error('å è½½é»è®¤å»é¢å表失败:', error) |
| | | this.defaultHospitals = [] |
| | | }) |
| | | }, |
| | |
| | | this.showAddressSuggestions = false |
| | | } |
| | | }).catch(error => { |
| | | console.error('æç´¢å°å失败:', error) |
| | | // console.error('æç´¢å°å失败:', error) |
| | | this.addressSuggestions = [] |
| | | this.showAddressSuggestions = false |
| | | }) |
| | |
| | | deptId: storage.get(constant.deptId), |
| | | branchCompanyId: storage.get(constant.branchCompanyId), |
| | | branchCompanyName: storage.get(constant.branchCompanyName), |
| | | oaUserId: storage.get(constant.oaUserId) |
| | | oaUserId: storage.get(constant.oaUserId), |
| | | canCreateTask: storage.get(constant.canCreateTask) |
| | | }, |
| | | |
| | | mutations: { |
| | |
| | | SET_OA_USER_ID: (state, oaUserId) => { |
| | | state.oaUserId = oaUserId |
| | | storage.set(constant.oaUserId, oaUserId) |
| | | }, |
| | | SET_CAN_CREATE_TASK: (state, canCreateTask) => { |
| | | state.canCreateTask = canCreateTask |
| | | storage.set(constant.canCreateTask, canCreateTask) |
| | | } |
| | | }, |
| | | |
| | |
| | | commit('SET_BRANCH_COMPANY_ID', res.branchCompanyId) |
| | | commit('SET_BRANCH_COMPANY_NAME', res.branchCompanyName) |
| | | commit('SET_OA_USER_ID', res.oaUserId) |
| | | commit('SET_CAN_CREATE_TASK', res.canCreateTask) |
| | | resolve(res) |
| | | }).catch(error => { |
| | | reject(error) |
| | |
| | | deptId: 'vuex_deptId', |
| | | branchCompanyId: 'vuex_branchCompanyId', |
| | | branchCompanyName: 'vuex_branchCompanyName', |
| | | oaUserId: 'vuex_oaUserId' |
| | | oaUserId: 'vuex_oaUserId', |
| | | canCreateTask: 'vuex_canCreateTask' |
| | | } |
| | | |
| | | export default constant |
| | |
| | | reject('æ æçä¼è¯ï¼æè
ä¼è¯å·²è¿æï¼è¯·éæ°ç»å½ã') |
| | | } else if (code === 500) { |
| | | // checkDuplicate æ¥å£ä¸æ¾ç¤º toastï¼è®©ä¸å¡ä»£ç èªå·±å¤ç |
| | | if (!isCheckDuplicateApi) { |
| | | toast(msg) |
| | | } |
| | | // if (!isCheckDuplicateApi) { |
| | | // toast(msg) |
| | | // } |
| | | // checkDuplicate æ¥å£è¿å宿´ååºï¼ä¸ reject |
| | | if (isCheckDuplicateApi) { |
| | | resolve(res.data) |
| | |
| | | reject('500') |
| | | } else if (code !== 200) { |
| | | // checkDuplicate æ¥å£ä¸æ¾ç¤º toastï¼è®©ä¸å¡ä»£ç èªå·±å¤ç |
| | | if (!isCheckDuplicateApi) { |
| | | toast(msg) |
| | | } |
| | | // if (!isCheckDuplicateApi) { |
| | | // toast(msg) |
| | | // } |
| | | // checkDuplicate æ¥å£è¿å宿´ååºï¼ä¸ reject |
| | | if (isCheckDuplicateApi) { |
| | | resolve(res.data) |
| | |
| | | } else if (message.includes('Request failed with status code')) { |
| | | message = 'ç³»ç»æ¥å£' + message.substr(message.length - 3) + 'å¼å¸¸' |
| | | } |
| | | toast(message) |
| | | // toast(message) |
| | | reject(error) |
| | | }) |
| | | }) |
| New file |
| | |
| | | # ç¨æ·å建任å¡åæéåè½è¯´æ |
| | | |
| | | ## ð åè½æ¦è¿° |
| | | å¨ sys_user è¡¨ä¸æ°å¢ `can_create_task` åæ®µï¼ç¨äºæ è¯ç¨æ·æ¯å¦å
·æå建任å¡åçæéãè¯¥åæ®µä» OA ç³»ç»ç `OA_User` 表ä¸ç `OA_Power` åæ®µåæ¥èæ¥ã |
| | | |
| | | ## ð¯ 忥è§å |
| | | å½ `OA_Power` åæ®µå
å« `,020101,` æ¶ï¼ç¨æ·å
·æå建任å¡åæéã |
| | | |
| | | **SQL 夿é»è¾**ï¼ |
| | | ```sql |
| | | CASE |
| | | WHEN OA_Power LIKE '%,020101,%' THEN '1' |
| | | ELSE '0' |
| | | END AS can_create_task |
| | | ``` |
| | | |
| | | ## ð¨ å®ç°å
容 |
| | | |
| | | ### 1. æ°æ®åºä¿®æ¹ |
| | | |
| | | #### æ·»å åæ®µ |
| | | **æä»¶**: `sql/add_can_create_task_to_sys_user.sql` |
| | | |
| | | ```sql |
| | | ALTER TABLE sys_user ADD COLUMN can_create_task CHAR(1) DEFAULT '0' COMMENT 'æ¯å¦å¯å建任å¡åï¼0å¦ 1æ¯ï¼'; |
| | | CREATE INDEX idx_can_create_task ON sys_user(can_create_task); |
| | | ``` |
| | | |
| | | **åæ®µè¯´æ**ï¼ |
| | | - **åæ®µå**: `can_create_task` |
| | | - **ç±»å**: `CHAR(1)` |
| | | - **é»è®¤å¼**: `'0'` (ä¸å¯å建) |
| | | - **å¯éå¼**: |
| | | - `'0'`: ä¸å¯å建任å¡å |
| | | - `'1'`: å¯ä»¥å建任å¡å |
| | | - **ç´¢å¼**: 已添å ç´¢å¼ `idx_can_create_task` æ¹ä¾¿æ¥è¯¢ |
| | | |
| | | ### 2. å®ä½ç±»ä¿®æ¹ |
| | | |
| | | #### SysUser å®ä½ |
| | | **æä»¶**: `ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java` |
| | | |
| | | **æ°å¢å段**ï¼ |
| | | ```java |
| | | /** æ¯å¦å¯å建任å¡åï¼0å¦ 1æ¯ï¼ */ |
| | | @Excel(name = "å¯å建任å¡å", readConverterExp = "0=å¦,1=æ¯") |
| | | private String canCreateTask; |
| | | |
| | | public String getCanCreateTask() { |
| | | return canCreateTask; |
| | | } |
| | | |
| | | public void setCanCreateTask(String canCreateTask) { |
| | | this.canCreateTask = canCreateTask; |
| | | } |
| | | ``` |
| | | |
| | | ### 3. DTO å±ä¿®æ¹ |
| | | |
| | | #### UserSyncDTO |
| | | **æä»¶**: `ruoyi-system/src/main/java/com/ruoyi/system/domain/UserSyncDTO.java` |
| | | |
| | | **æ°å¢å段**ï¼ |
| | | ```java |
| | | /** æ¯å¦å¯å建任å¡åï¼0å¦ 1æ¯ï¼ */ |
| | | private String canCreateTask; |
| | | |
| | | public String getCanCreateTask() { |
| | | return canCreateTask; |
| | | } |
| | | |
| | | public void setCanCreateTask(String canCreateTask) { |
| | | this.canCreateTask = canCreateTask; |
| | | } |
| | | ``` |
| | | |
| | | ### 4. Mapper å±ä¿®æ¹ |
| | | |
| | | #### UserSyncMapper.xml |
| | | **æä»¶**: `ruoyi-system/src/main/resources/mapper/system/UserSyncMapper.xml` |
| | | |
| | | **ä¿®æ¹å
容**ï¼ |
| | | 1. å¨ resultMap 䏿·»å åæ®µæ å° |
| | | 2. å¨ SQL æ¥è¯¢ä¸æ·»å CASE 夿é»è¾ |
| | | |
| | | ```xml |
| | | <result property="canCreateTask" column="can_create_task" /> |
| | | |
| | | <!-- SQL æ¥è¯¢æ·»å --> |
| | | CASE |
| | | WHEN OA_Power LIKE '%,020101,%' THEN '1' |
| | | ELSE '0' |
| | | END AS can_create_task |
| | | ``` |
| | | |
| | | #### SysUserMapper.xml |
| | | **æä»¶**: `ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml` |
| | | |
| | | **ä¿®æ¹å
容**ï¼ |
| | | 1. resultMap æ·»å åæ®µæ å° |
| | | 2. selectUserVo æ¥è¯¢æ·»å åæ®µ |
| | | 3. insertUser æ·»å åæ®µæå
¥ |
| | | 4. updateUser æ·»å åæ®µæ´æ° |
| | | |
| | | ### 5. Service å±ä¿®æ¹ |
| | | |
| | | #### UserSyncServiceImpl |
| | | **æä»¶**: `ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserSyncServiceImpl.java` |
| | | |
| | | **ä¿®æ¹å
容**ï¼ |
| | | |
| | | **æ´æ°å·²åå¨ç¨æ·**ï¼ |
| | | ```java |
| | | if (StringUtils.isNotEmpty(dto.getCanCreateTask())) { |
| | | existingUser.setCanCreateTask(dto.getCanCreateTask()); |
| | | } |
| | | ``` |
| | | |
| | | **å建æ°ç¨æ·**ï¼ |
| | | ```java |
| | | if (StringUtils.isNotEmpty(dto.getCanCreateTask())) { |
| | | newUser.setCanCreateTask(dto.getCanCreateTask()); |
| | | } |
| | | ``` |
| | | |
| | | ## ð æ°æ®æµè½¬è¿ç¨ |
| | | |
| | | ``` |
| | | OA_User (SQL Server) |
| | | â |
| | | OA_Power LIKE '%,020101,%' |
| | | â |
| | | SQL CASE 夿 |
| | | â |
| | | UserSyncDTO.canCreateTask |
| | | â |
| | | SysUser.canCreateTask |
| | | â |
| | | sys_user.can_create_task |
| | | ``` |
| | | |
| | | ## ð ä½¿ç¨æ¥éª¤ |
| | | |
| | | ### 1. æ§è¡æ°æ®åºèæ¬ |
| | | ```bash |
| | | mysql -u root -p ry-vue < sql/add_can_create_task_to_sys_user.sql |
| | | ``` |
| | | |
| | | ### 2. åæ¥ç¨æ·æ°æ® |
| | | éè¿åå°ç®¡çç颿 API æ§è¡ç¨æ·åæ¥ï¼ |
| | | ```bash |
| | | POST http://localhost:8080/system/dept/sync/user |
| | | Headers: |
| | | Authorization: Bearer {ä½ çtoken} |
| | | ``` |
| | | |
| | | ### 3. éªè¯åæ¥ç»æ |
| | | ```sql |
| | | -- æ¥çå
·æå建任å¡åæéçç¨æ· |
| | | SELECT |
| | | user_name, |
| | | nick_name, |
| | | can_create_task, |
| | | oa_user_id |
| | | FROM sys_user |
| | | WHERE can_create_task = '1' |
| | | AND del_flag = '0' |
| | | ORDER BY create_time DESC; |
| | | |
| | | -- ç»è®¡æéåå¸ |
| | | SELECT |
| | | can_create_task, |
| | | CASE can_create_task |
| | | WHEN '1' THEN 'å¯å建' |
| | | ELSE 'ä¸å¯å建' |
| | | END AS permission_label, |
| | | COUNT(*) AS user_count |
| | | FROM sys_user |
| | | WHERE del_flag = '0' |
| | | GROUP BY can_create_task; |
| | | ``` |
| | | |
| | | ## ð¡ 使ç¨ç¤ºä¾ |
| | | |
| | | ### åºæ¯1ï¼æ¥è¯¢ææéçç¨æ· |
| | | ```java |
| | | // å¨ Service 屿·»å æ¥è¯¢æ¹æ³ |
| | | public List<SysUser> getUsersWithCreateTaskPermission() { |
| | | SysUser query = new SysUser(); |
| | | query.setCanCreateTask("1"); |
| | | return userMapper.selectUserList(query); |
| | | } |
| | | ``` |
| | | |
| | | ### åºæ¯2ï¼å端æéæ§å¶ |
| | | ```javascript |
| | | // æ ¹æ®ç¨æ·æéæ¾ç¤º/éèåå»ºä»»å¡æé® |
| | | if (user.canCreateTask === '1') { |
| | | // æ¾ç¤ºåå»ºä»»å¡æé® |
| | | showCreateTaskButton(); |
| | | } else { |
| | | // éèåå»ºä»»å¡æé® |
| | | hideCreateTaskButton(); |
| | | } |
| | | ``` |
| | | |
| | | ### åºæ¯3ï¼å端æ¥å£æééªè¯ |
| | | ```java |
| | | @PreAuthorize("@ss.hasPermi('task:create')") |
| | | @PostMapping("/create") |
| | | public AjaxResult createTask(@RequestBody Task task) { |
| | | SysUser user = SecurityUtils.getLoginUser().getUser(); |
| | | if (!"1".equals(user.getCanCreateTask())) { |
| | | return AjaxResult.error("æ¨æ²¡æå建任å¡åçæé"); |
| | | } |
| | | // å建任å¡é»è¾ |
| | | return taskService.createTask(task); |
| | | } |
| | | ``` |
| | | |
| | | ## ð æ³¨æäºé¡¹ |
| | | |
| | | ### éè¦æç¤º |
| | | 1. **æé忥**: è¯¥åæ®µä» OA ç³»ç»èªå¨åæ¥ï¼è¯·å¿æå¨ä¿®æ¹ |
| | | 2. **é»è®¤å¼**: æ°åå»ºç¨æ·é»è®¤ä¸º `'0'`ï¼ä¸å¯åå»ºï¼ |
| | | 3. **åæ¥æ´æ°**: æ¯æ¬¡ç¨æ·åæ¥æ¶ä¼èªå¨æ´æ°è¯¥å段 |
| | | 4. **æéç²åº¦**: è¯¥åæ®µä»
æ§å¶æ¯å¦å¯å建任å¡åï¼ä¸å½±åå
¶ä»æé |
| | | |
| | | ### ä¸å
¶ä»æéåæ®µçå
³ç³» |
| | | - `can_view_all_consult`: æ¯å¦å¯æ¥çææå¨è¯¢åï¼OA_Power LIKE '%,020112,%'ï¼ |
| | | - `can_create_task`: æ¯å¦å¯å建任å¡åï¼OA_Power LIKE '%,020101,%'ï¼ |
| | | |
| | | è¿ä¸¤ä¸ªå段äºç¸ç¬ç«ï¼ç¨æ·å¯ä»¥åæ¶æ¥ææå嫿¥æè¿äºæéã |
| | | |
| | | ## ð éªè¯æ¹æ³ |
| | | |
| | | ### æ¥çåå°ç¨æ·ç®¡ççé¢ |
| | | 1. ç»å½åå°ç®¡çç³»ç» |
| | | 2. è¿å
¥ **ç³»ç»ç®¡ç** â **ç¨æ·ç®¡ç** |
| | | 3. å¨ç¨æ·åè¡¨ä¸æ¥ç "å¯å建任å¡å" å |
| | | 4. ç¼è¾ç¨æ·æ¶å¯çå°è¯¥å段ï¼åªè¯»ï¼ç±åæ¥æ§å¶ï¼ |
| | | |
| | | ### æ°æ®åºéªè¯ |
| | | ```sql |
| | | -- æ£æ¥å段æ¯å¦åå¨ |
| | | SELECT COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT |
| | | FROM INFORMATION_SCHEMA.COLUMNS |
| | | WHERE TABLE_NAME = 'sys_user' |
| | | AND COLUMN_NAME = 'can_create_task'; |
| | | |
| | | -- æ¥çå
·ä½ç¨æ·çæé |
| | | SELECT |
| | | u.user_name, |
| | | u.nick_name, |
| | | u.can_view_all_consult, |
| | | u.can_create_task, |
| | | u.oa_user_id |
| | | FROM sys_user u |
| | | WHERE u.oa_user_id IS NOT NULL |
| | | ORDER BY u.user_id; |
| | | ``` |
| | | |
| | | ## ð ç¸å
³æä»¶æ¸
å |
| | | |
| | | ### SQL èæ¬ |
| | | - `sql/add_can_create_task_to_sys_user.sql` - æ·»å åæ®µèæ¬ |
| | | |
| | | ### Java æä»¶ |
| | | - `SysUser.java`ï¼ä¿®æ¹ï¼ - æ·»å åæ®µå®ä¹ |
| | | - `UserSyncDTO.java`ï¼ä¿®æ¹ï¼ - æ·»å DTO åæ®µ |
| | | - `UserSyncServiceImpl.java`ï¼ä¿®æ¹ï¼ - æ·»å 忥é»è¾ |
| | | |
| | | ### Mapper æä»¶ |
| | | - `UserSyncMapper.xml`ï¼ä¿®æ¹ï¼ - æ·»å SQL æ¥è¯¢é»è¾ |
| | | - `SysUserMapper.xml`ï¼ä¿®æ¹ï¼ - æ·»å åæ®µæ å°åæä½ |
| | | |
| | | ### ææ¡£ |
| | | - `prd/ç¨æ·å建任å¡åæéåè½è¯´æ.md` - æ¬ææ¡£ |
| | | |
| | | ## ð¯ 常è§é®é¢ |
| | | |
| | | ### Q1: åæ®µå¼ä¸ºä»ä¹æ¯å符串è䏿¯å¸å°å¼ï¼ |
| | | **A**: 为äºä¸è¥ä¾æ¡æ¶çæ°æ®åå
¸è§èä¿æä¸è´ï¼ä½¿ç¨ `'0'` å `'1'` å符串表示å¸å°å¼ã |
| | | |
| | | ### Q2: å¦ä½æå¨è®¾ç½®ç¨æ·æéï¼ |
| | | **A**: ä¸å»ºè®®æå¨ä¿®æ¹ãè¯¥åæ®µåºéè¿ OA ç³»ç»ç `OA_Power` åæ®µæ§å¶ï¼éè¿ç¨æ·åæ¥èªå¨æ´æ°ã |
| | | |
| | | ### Q3: ç¨æ·åæ¥åæé没æååï¼ |
| | | **A**: è¯·æ£æ¥ï¼ |
| | | 1. OA ç³»ç»ä¸ç¨æ·ç `OA_Power` åæ®µæ¯å¦å
å« `,020101,` |
| | | 2. ç¨æ·åæ¥æ¯å¦æ§è¡æå |
| | | 3. æ¥ç忥æ¥å¿ç¡®è®¤æ´æ°æ
åµ |
| | | |
| | | ### Q4: å¦ä½æ¹éè®¾ç½®ç¨æ·æéï¼ |
| | | **A**: å¨ OA ç³»ç»ä¸æ¹éä¿®æ¹ç¨æ·ç `OA_Power` åæ®µï¼ç¶åæ§è¡ç¨æ·åæ¥å³å¯ã |
| | | |
| | | --- |
| | | |
| | | **çæ¬**: v1.0 |
| | | **æ´æ°æ¶é´**: 2025-12-29 |
| | | **ç¸å
³åè½**: ç¨æ·åæ¥ãæé管ç |
| New file |
| | |
| | | # ç¨æ·åå»ºä»»å¡æéå端æ§å¶åè½è¯´æ |
| | | |
| | | ## åè½æ¦è¿° |
| | | |
| | | å¨ç¨æ·ç»å½åï¼ç³»ç»ä¼è¿å `canCreateTask` åæ®µå° `getInfo` æ¥å£ååºä¸ï¼å¹¶åå¨å° APP ç Vuex storeãå½ç¨æ·å¨ä»»å¡å建页é¢ç¹å»ä»»å¡ç±»åæ¶ï¼ä¼æ£æ¥è¯¥æéåæ®µï¼å¦æå¼ä¸º `'0'`ï¼æ æéï¼ï¼åå¼¹åºæç¤º"æ¨æ²¡ææéå建任å¡"ï¼é»æ¢ç¨æ·è¿å
¥ä»»å¡å建表å页é¢ã |
| | | |
| | | ## å®ç°å
容 |
| | | |
| | | ### 1. å端æ¥å£ä¿®æ¹ |
| | | |
| | | #### 1.1 getInfo æ¥å£è¿å canCreateTask |
| | | |
| | | **æä»¶**ï¼`ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java` |
| | | |
| | | **ä¿®æ¹ä½ç½®**ï¼ç¬¬ 236-245 è¡ |
| | | |
| | | **ä¿®æ¹å
容**ï¼ |
| | | ```java |
| | | AjaxResult ajax = AjaxResult.success(); |
| | | ajax.put("user", user); |
| | | ajax.put("roles", roles); |
| | | ajax.put("permissions", permissions); |
| | | ajax.put("branchCompanyId", branchCompanyId); |
| | | ajax.put("branchCompanyName", branchCompanyName); |
| | | ajax.put("branchCompanies", branchCompanies); |
| | | ajax.put("oaUserId", user.getOaUserId()); |
| | | ajax.put("canCreateTask", user.getCanCreateTask()); // â
æ°å¢ |
| | | return ajax; |
| | | ``` |
| | | |
| | | **说æ**ï¼å¨ getInfo æ¥å£è¿åç JSON 䏿·»å `canCreateTask` åæ®µï¼å
¶å¼æ¥èª `SysUser.canCreateTask`ã |
| | | |
| | | --- |
| | | |
| | | ### 2. APP 端åå¨å±ä¿®æ¹ |
| | | |
| | | #### 2.1 æ·»å constant 常é |
| | | |
| | | **æä»¶**ï¼`app/utils/constant.js` |
| | | |
| | | **ä¿®æ¹å
容**ï¼ |
| | | ```javascript |
| | | const constant = { |
| | | userId: 'vuex_userId', |
| | | avatar: 'vuex_avatar', |
| | | name: 'vuex_name', |
| | | nickName: 'vuex_nickName', |
| | | roles: 'vuex_roles', |
| | | permissions: 'vuex_permissions', |
| | | deptId: 'vuex_deptId', |
| | | branchCompanyId: 'vuex_branchCompanyId', |
| | | branchCompanyName: 'vuex_branchCompanyName', |
| | | oaUserId: 'vuex_oaUserId', |
| | | canCreateTask: 'vuex_canCreateTask' // â
æ°å¢ |
| | | } |
| | | ``` |
| | | |
| | | **说æ**ï¼æ·»å `canCreateTask` çåå¨é®å常éï¼ç¨äºå¨æ¬å°åå¨ä¸ä¿åè¯¥åæ®µã |
| | | |
| | | --- |
| | | |
| | | #### 2.2 Vuex State æ·»å åæ®µ |
| | | |
| | | **æä»¶**ï¼`app/store/modules/user.js` |
| | | |
| | | **ä¿®æ¹ä½ç½® 1**ï¼ç¬¬ 11-23 è¡ |
| | | |
| | | ```javascript |
| | | state: { |
| | | token: getToken(), |
| | | userId: storage.get(constant.userId), |
| | | name: storage.get(constant.name), |
| | | nickName: storage.get(constant.nickName), |
| | | avatar: storage.get(constant.avatar), |
| | | roles: storage.get(constant.roles), |
| | | permissions: storage.get(constant.permissions), |
| | | deptId: storage.get(constant.deptId), |
| | | branchCompanyId: storage.get(constant.branchCompanyId), |
| | | branchCompanyName: storage.get(constant.branchCompanyName), |
| | | oaUserId: storage.get(constant.oaUserId), |
| | | canCreateTask: storage.get(constant.canCreateTask) // â
æ°å¢ |
| | | }, |
| | | ``` |
| | | |
| | | **说æ**ï¼å¨ Vuex state 䏿·»å `canCreateTask` åæ®µï¼ä»æ¬å°åå¨ä¸è¯»ååå§å¼ã |
| | | |
| | | --- |
| | | |
| | | **ä¿®æ¹ä½ç½® 2**ï¼ç¬¬ 65-72 è¡ï¼mutationsï¼ |
| | | |
| | | ```javascript |
| | | SET_OA_USER_ID: (state, oaUserId) => { |
| | | state.oaUserId = oaUserId |
| | | storage.set(constant.oaUserId, oaUserId) |
| | | }, |
| | | SET_CAN_CREATE_TASK: (state, canCreateTask) => { // â
æ°å¢ |
| | | state.canCreateTask = canCreateTask |
| | | storage.set(constant.canCreateTask, canCreateTask) |
| | | } |
| | | ``` |
| | | |
| | | **说æ**ï¼æ·»å `SET_CAN_CREATE_TASK` mutationï¼ç¨äºæ´æ° state 忬å°åå¨ã |
| | | |
| | | --- |
| | | |
| | | **ä¿®æ¹ä½ç½® 3**ï¼ç¬¬ 119-132 è¡ï¼GetInfo Actionï¼ |
| | | |
| | | ```javascript |
| | | commit('SET_USER_ID', userId) |
| | | commit('SET_NAME', username) |
| | | commit('SET_NICK_NAME', nickname) |
| | | commit('SET_AVATAR', avatar) |
| | | commit('SET_DEPT_ID', deptId) |
| | | commit('SET_BRANCH_COMPANY_ID', res.branchCompanyId) |
| | | commit('SET_BRANCH_COMPANY_NAME', res.branchCompanyName) |
| | | commit('SET_OA_USER_ID', res.oaUserId) |
| | | commit('SET_CAN_CREATE_TASK', res.canCreateTask) // â
æ°å¢ |
| | | resolve(res) |
| | | ``` |
| | | |
| | | **说æ**ï¼å¨ GetInfo action ä¸æäº¤ `SET_CAN_CREATE_TASK` mutationï¼å°æ¥å£è¿åç `canCreateTask` åå¨å° Vuexã |
| | | |
| | | --- |
| | | |
| | | ### 3. APP 端æéæ§å¶ |
| | | |
| | | #### 3.1 ä»»å¡åå»ºé¡µé¢æéæ£æ¥ |
| | | |
| | | **æä»¶**ï¼`app/pages/task/create.vue` |
| | | |
| | | **ä¿®æ¹ä½ç½® 1**ï¼ç¬¬ 28-30 è¡ï¼å¼å
¥ mapStateï¼ |
| | | |
| | | ```javascript |
| | | <script> |
| | | import { mapState } from 'vuex' // â
æ°å¢ |
| | | |
| | | export default { |
| | | ``` |
| | | |
| | | **ä¿®æ¹ä½ç½® 2**ï¼ç¬¬ 72-78 è¡ï¼æ·»å computedï¼ |
| | | |
| | | ```javascript |
| | | computed: { |
| | | ...mapState({ |
| | | canCreateTask: state => state.user.canCreateTask |
| | | }) |
| | | }, |
| | | ``` |
| | | |
| | | **说æ**ï¼ä½¿ç¨ Vuex ç mapState è¾
å©å½æ°ï¼å° `canCreateTask` æ å°å°ç»ä»¶ç计ç®å±æ§ã |
| | | |
| | | --- |
| | | |
| | | **ä¿®æ¹ä½ç½® 3**ï¼ç¬¬ 81-90 è¡ï¼æéæ£æ¥é»è¾ï¼ |
| | | |
| | | ```javascript |
| | | methods: { |
| | | selectTaskCategory(category) { |
| | | // æ£æ¥æ¯å¦æå建任å¡çæé |
| | | if (this.canCreateTask !== '1') { |
| | | this.$modal.msgError('æ¨æ²¡ææéå建任å¡') |
| | | return |
| | | } |
| | | |
| | | // 跳转å°å¯¹åºçä»»å¡åå»ºé¡µé¢ |
| | | uni.navigateTo({ |
| | | url: `${category.page}?categoryName=${category.name}&categoryType=${category.type}&taskType=${category.taskType}` |
| | | }) |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | **æ ¸å¿é»è¾**ï¼ |
| | | 1. å¨ç¹å»ä»»å¡ç±»åæ¶ï¼é¦å
æ£æ¥ `this.canCreateTask` çå¼ |
| | | 2. 妿å¼ä¸çäº `'1'`ï¼åå¼¹åºé误æç¤º"æ¨æ²¡ææéå建任å¡"ï¼å¹¶ return 黿¢åç»æ§è¡ |
| | | 3. åªæå½ `canCreateTask === '1'` æ¶ï¼æå
许跳转å°å
·ä½çä»»å¡åå»ºé¡µé¢ |
| | | |
| | | --- |
| | | |
| | | ## æ°æ®æµå |
| | | |
| | | ``` |
| | | SQL Server (OA_User.OA_Power) |
| | | â |
| | | [ç¨æ·åæ¥] CASE WHEN OA_Power LIKE '%,020101,%' THEN '1' ELSE '0' END |
| | | â |
| | | MySQL (sys_user.can_create_task) |
| | | â |
| | | [ç»å½å] getInfo æ¥å£ |
| | | â |
| | | { |
| | | "user": {...}, |
| | | "canCreateTask": "1" or "0" |
| | | } |
| | | â |
| | | [APP] Vuex Store (state.user.canCreateTask) |
| | | â |
| | | [æ¬å°åå¨] vuex_canCreateTask |
| | | â |
| | | [页颿鿧å¶] create.vue æ£æ¥æé |
| | | â |
| | | å
许å建 or æç¤º"æ¨æ²¡ææéå建任å¡" |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | ## 使ç¨åºæ¯ |
| | | |
| | | ### åºæ¯ 1ï¼ææéçç¨æ· |
| | | |
| | | 1. ç¨æ·ç»å½åï¼`canCreateTask` 为 `'1'` |
| | | 2. ç¹å»åºé¨ TabBar "å建任å¡" è¿å
¥ä»»å¡ç±»åéæ©é¡µé¢ |
| | | 3. ç¹å»ä»»ä½ä¸ç§ä»»å¡ç±»åï¼è½¬è¿ä»»å¡ãç»´ä¿®ä¿å
»ãå æ²¹çï¼ |
| | | 4. **â
æ£å¸¸è·³è½¬**å°å¯¹åºçä»»å¡å建表åé¡µé¢ |
| | | |
| | | ### åºæ¯ 2ï¼æ æéçç¨æ· |
| | | |
| | | 1. ç¨æ·ç»å½åï¼`canCreateTask` 为 `'0'` æ `null` |
| | | 2. ç¹å»åºé¨ TabBar "å建任å¡" è¿å
¥ä»»å¡ç±»åéæ©é¡µé¢ |
| | | 3. ç¹å»ä»»ä½ä¸ç§ä»»å¡ç±»å |
| | | 4. **â å¼¹åºæç¤º**ï¼"æ¨æ²¡ææéå建任å¡" |
| | | 5. **â 黿¢è·³è½¬**ï¼åçå¨ä»»å¡ç±»åéæ©é¡µé¢ |
| | | |
| | | --- |
| | | |
| | | ## éªè¯æ¹æ³ |
| | | |
| | | ### 1. å端éªè¯ |
| | | |
| | | **æ¥è¯¢ç¨æ·æé**ï¼ |
| | | ```sql |
| | | SELECT user_name, nick_name, can_create_task, oa_user_id |
| | | FROM sys_user |
| | | WHERE del_flag = '0' |
| | | ORDER BY can_create_task DESC; |
| | | ``` |
| | | |
| | | **æµè¯ getInfo æ¥å£**ï¼ |
| | | ```bash |
| | | # ç»å½è·å token |
| | | POST http://localhost:8080/login |
| | | { |
| | | "username": "test_user", |
| | | "password": "password" |
| | | } |
| | | |
| | | # è·åç¨æ·ä¿¡æ¯ |
| | | GET http://localhost:8080/getInfo |
| | | Authorization: Bearer {token} |
| | | |
| | | # ååºç¤ºä¾ |
| | | { |
| | | "code": 200, |
| | | "msg": "æä½æå", |
| | | "user": {...}, |
| | | "canCreateTask": "1" // â
确认å
嫿¤å段 |
| | | } |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | ### 2. APP 端éªè¯ |
| | | |
| | | **æ¥éª¤ 1**ï¼ç»å½ APP |
| | | |
| | | **æ¥éª¤ 2**ï¼æå¼å¼åè
å·¥å
·ï¼æ¥ç Vuex State |
| | | ```javascript |
| | | // 卿§å¶å°è¾å
¥ |
| | | console.log(this.$store.state.user.canCreateTask) |
| | | // è¾åºåºä¸º "1" æ "0" |
| | | ``` |
| | | |
| | | **æ¥éª¤ 3**ï¼ç¹å»åºé¨ TabBar "å建任å¡" |
| | | |
| | | **æ¥éª¤ 4**ï¼å¨ä»»å¡ç±»å鿩页é¢ï¼ç¹å»ä»»æä»»å¡ç±»å |
| | | |
| | | **é¢æç»æ**ï¼ |
| | | - ææéç¨æ·ï¼`canCreateTask === '1'`ï¼ï¼æ£å¸¸è·³è½¬å°å建表å |
| | | - æ æéç¨æ·ï¼`canCreateTask !== '1'`ï¼ï¼å¼¹åºæç¤º"æ¨æ²¡ææéå建任å¡" |
| | | |
| | | --- |
| | | |
| | | ## 常è§é®é¢ |
| | | |
| | | ### Q1ï¼æ°ç¨æ·ç»å½å canCreateTask 为 nullï¼å¦ä½å¤çï¼ |
| | | |
| | | **A**ï¼éè¦å
æ§è¡ç¨æ·åæ¥æ¥å£ï¼ä» OA ç³»ç»åæ¥æéåæ®µï¼ |
| | | ```bash |
| | | POST http://localhost:8080/system/dept/sync/user |
| | | ``` |
| | | |
| | | 忥åï¼`can_create_task` åæ®µä¼æ ¹æ® OA_Power èªå¨å¡«å
ã |
| | | |
| | | --- |
| | | |
| | | ### Q2ï¼å¦ä½ç»ç¨æ·å¼éåå»ºä»»å¡æéï¼ |
| | | |
| | | **A**ï¼æä¸¤ç§æ¹å¼ï¼ |
| | | |
| | | **æ¹å¼ 1ï¼æ¨èï¼**ï¼å¨ OA ç³»ç»ä¸ä¿®æ¹ç¨æ·ç OA_Power åæ®µ |
| | | - ç¡®ä¿ OA_Power å
å« `,020101,`ï¼æ³¨æåå齿éå·ï¼ |
| | | - æ§è¡ç¨æ·åæ¥æ¥å£ |
| | | |
| | | **æ¹å¼ 2**ï¼ç´æ¥ä¿®æ¹æ°æ®åº |
| | | ```sql |
| | | UPDATE sys_user |
| | | SET can_create_task = '1' |
| | | WHERE user_name = 'ç¨æ·å'; |
| | | ``` |
| | | |
| | | **注æ**ï¼æ¹å¼ 2 çä¿®æ¹ä¼å¨ä¸æ¬¡ç¨æ·åæ¥æ¶è¢«è¦çï¼å»ºè®®ä½¿ç¨æ¹å¼ 1ã |
| | | |
| | | --- |
| | | |
| | | ### Q3ï¼ç¨æ·æéæ´æ°åï¼éè¦éæ°ç»å½åï¼ |
| | | |
| | | **A**ï¼æ¯çï¼æä¸¤ç§æ¹å¼çæï¼ |
| | | |
| | | **æ¹å¼ 1**ï¼ç¨æ·éåºç»å½ï¼éæ°ç»å½ |
| | | - ç»å½æ¶ä¼è°ç¨ getInfoï¼è·åææ°ç `canCreateTask` |
| | | |
| | | **æ¹å¼ 2**ï¼å端主å¨å·æ°ç¨æ·ä¿¡æ¯ |
| | | ```javascript |
| | | this.$store.dispatch('GetInfo') |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | ### Q4ï¼å¦ä½å¨å端å
¶ä»é¡µé¢å¤æç¨æ·æ¯å¦æå建æéï¼ |
| | | |
| | | **A**ï¼åè `create.vue` çå®ç°æ¹å¼ï¼ |
| | | |
| | | ```javascript |
| | | import { mapState } from 'vuex' |
| | | |
| | | export default { |
| | | computed: { |
| | | ...mapState({ |
| | | canCreateTask: state => state.user.canCreateTask |
| | | }) |
| | | }, |
| | | methods: { |
| | | checkPermission() { |
| | | if (this.canCreateTask !== '1') { |
| | | this.$modal.msgError('æ¨æ²¡ææéå建任å¡') |
| | | return false |
| | | } |
| | | return true |
| | | } |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | ## 注æäºé¡¹ |
| | | |
| | | 1. **åæ®µç±»å**ï¼`canCreateTask` æ¯å符串类å `CHAR(1)`ï¼å¼ä¸º `'0'` æ `'1'`ï¼æ¯è¾æ¶å¿
须使ç¨å符串 |
| | | - â
æ£ç¡®ï¼`canCreateTask !== '1'` |
| | | - â é误ï¼`canCreateTask !== 1` æ `!canCreateTask` |
| | | |
| | | 2. **null å¼å¤ç**ï¼æªåæ¥çç¨æ· `canCreateTask` å¯è½ä¸º `null` |
| | | - 卿é夿æ¶ï¼`null !== '1'` è¿å `true`ï¼ä¼é»æ¢æä½ï¼ç¬¦åå®å
¨åå |
| | | |
| | | 3. **æ°æ®åæ¥**ï¼ç¡®ä¿å®ææ§è¡ç¨æ·åæ¥ï¼ä¿ææéåæ®µä¸ OA ç³»ç»ä¸è´ |
| | | |
| | | 4. **å端åå¨**ï¼`canCreateTask` ä¼åæ¶åå¨å¨ï¼ |
| | | - Vuex Stateï¼å
åï¼ |
| | | - LocalStorageï¼æä¹
åï¼ |
| | | - 页é¢å·æ°æéå¯ APP æ¶ä¼ä» LocalStorage æ¢å¤ |
| | | |
| | | 5. **å®å
¨æ§**ï¼ |
| | | - å端æéæ£æ¥åªæ¯ç¨æ·ä½éªä¼åï¼ä¸å½±åå端å®å
¨ |
| | | - å端ä»éå¨å建任å¡çæ¥å£ä¸è¿è¡æééªè¯ |
| | | |
| | | --- |
| | | |
| | | ## ææ¯æ»ç» |
| | | |
| | | æ¬æ¬¡ä¿®æ¹å®ç°äºå®æ´ç**å端æéæ§å¶æµç¨**ï¼ |
| | | |
| | | 1. â
**å端æ¥å£**ï¼getInfo è¿å canCreateTask |
| | | 2. â
**æ°æ®åå¨**ï¼Vuex + LocalStorage åéåå¨ |
| | | 3. â
**æéæ£æ¥**ï¼é¡µé¢çº§æéæ¦æª |
| | | 4. â
**ç¨æ·æç¤º**ï¼å好çé误æç¤ºä¿¡æ¯ |
| | | 5. â
**æ°æ®åæ¥**ï¼ä¸ OA ç³»ç»æéä¿æä¸è´ |
| | | |
| | | **ä¼ç¹**ï¼ |
| | | - ç»ä¸çæéæ°æ®æºï¼OA_Powerï¼ |
| | | - èªå¨åæ¥æºå¶ |
| | | - å端快éååºï¼é¿å
æ æè¯·æ± |
| | | - è¯å¥½çç¨æ·ä½éª |
| | | |
| | | **å±éæ§**ï¼ |
| | | - å端æéå¯è¢«ç»è¿ï¼å¼åè
å·¥å
·ä¿®æ¹ï¼ |
| | | - éè¦ä¾èµå端æ¥å£çäºæ¬¡éªè¯ |
| | | |
| | | --- |
| | | |
| | | ## ç¸å
³ææ¡£ |
| | | |
| | | - [ç¨æ·å建任å¡åæéåè½è¯´æ](./ç¨æ·å建任å¡åæéåè½è¯´æ.md) |
| | | - [ç¨æ·åæ¥åè½è¯´æ](./ç¨æ·åæ¥åè½è¯´æ.md) |
| | | - [Vuex ç¨æ·ç¶æå®æ´æ§ä¼å](./Vuexç¨æ·ç¶æå®æ´æ§ä¼å.md) |
| | |
| | | ajax.put("branchCompanyName", branchCompanyName); |
| | | ajax.put("branchCompanies", branchCompanies); |
| | | ajax.put("oaUserId", user.getOaUserId()); |
| | | ajax.put("canCreateTask", user.getCanCreateTask()); |
| | | return ajax; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | JSONArray results = jsonResponse.getJSONArray("pois"); |
| | | |
| | | if(results==null|| results.isEmpty()){ |
| | | return AjaxResult.error("æªæ¾å°å¹é
çå°å"); |
| | | } |
| | | |
| | | // æå»ºè¿åç»æ |
| | | List<Map<String, Object>> suggestions = new ArrayList<>(); |
| | |
| | | /** æ¯å¦å¯æ¥çææå¨è¯¢åï¼0å¦ 1æ¯ï¼ */ |
| | | @Excel(name = "坿¥çææå¨è¯¢å", readConverterExp = "0=å¦,1=æ¯") |
| | | private String canViewAllConsult; |
| | | |
| | | /** æ¯å¦å¯å建任å¡åï¼0å¦ 1æ¯ï¼ */ |
| | | @Excel(name = "å¯å建任å¡å", readConverterExp = "0=å¦,1=æ¯") |
| | | private String canCreateTask; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | this.canViewAllConsult = canViewAllConsult; |
| | | } |
| | | |
| | | public String getCanCreateTask() |
| | | { |
| | | return canCreateTask; |
| | | } |
| | | |
| | | public void setCanCreateTask(String canCreateTask) |
| | | { |
| | | this.canCreateTask = canCreateTask; |
| | | } |
| | | |
| | | |
| | | @Override |
| | |
| | | .append("qyWechatUserId", getQyWechatUserId()) |
| | | .append("qyWechatUpdateTime", getQyWechatUpdateTime()) |
| | | .append("canViewAllConsult", getCanViewAllConsult()) |
| | | |
| | | .append("canCreateTask", getCanCreateTask()) |
| | | .toString(); |
| | | } |
| | | } |
| | |
| | | |
| | | /** æ¯å¦å¯æ¥çææå¨è¯¢åï¼0å¦ 1æ¯ï¼ */ |
| | | private String canViewAllConsult; |
| | | |
| | | /** æ¯å¦å¯å建任å¡åï¼0å¦ 1æ¯ï¼ */ |
| | | private String canCreateTask; |
| | | |
| | | /** ç¨æ·æ§å«ï¼0=ç·,1=女,2=æªç¥ï¼ */ |
| | | private String sex; |
| | |
| | | { |
| | | this.canViewAllConsult = canViewAllConsult; |
| | | } |
| | | |
| | | public String getCanCreateTask() |
| | | { |
| | | return canCreateTask; |
| | | } |
| | | |
| | | public void setCanCreateTask(String canCreateTask) |
| | | { |
| | | this.canCreateTask = canCreateTask; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() |
| | |
| | | ", phonenumber='" + phonenumber + '\'' + |
| | | ", oaOrderClass='" + oaOrderClass + '\'' + |
| | | ", canViewAllConsult='" + canViewAllConsult + '\'' + |
| | | ", canCreateTask='" + canCreateTask + '\'' + |
| | | '}'; |
| | | } |
| | | } |
| | |
| | | { |
| | | existingUser.setCanViewAllConsult(dto.getCanViewAllConsult()); |
| | | } |
| | | if (StringUtils.isNotEmpty(dto.getCanCreateTask())) |
| | | { |
| | | existingUser.setCanCreateTask(dto.getCanCreateTask()); |
| | | } |
| | | // 忥ä¼ä¸å¾®ä¿¡ç¨æ·ID |
| | | if (StringUtils.isNotEmpty(dto.getOaWeixinUserId())) |
| | | { |
| | |
| | | { |
| | | newUser.setCanViewAllConsult(dto.getCanViewAllConsult()); |
| | | } |
| | | if (StringUtils.isNotEmpty(dto.getCanCreateTask())) |
| | | { |
| | | newUser.setCanCreateTask(dto.getCanCreateTask()); |
| | | } |
| | | |
| | | // 设置ä¼ä¸å¾®ä¿¡ç¨æ·ID |
| | | if (StringUtils.isNotEmpty(dto.getOaWeixinUserId())) |
| | |
| | | <result property="qyWechatUserId" column="qy_wechat_user_id" /> |
| | | <result property="qyWechatUpdateTime" column="qy_wechat_update_time" /> |
| | | <result property="canViewAllConsult" column="can_view_all_consult" /> |
| | | <result property="canCreateTask" column="can_create_task" /> |
| | | <association property="dept" javaType="SysDept" resultMap="deptResult" /> |
| | | <collection property="roles" javaType="java.util.List" resultMap="RoleResult" /> |
| | | </resultMap> |
| | |
| | | </resultMap> |
| | | |
| | | <sql id="selectUserVo"> |
| | | select u.user_id, u.dept_id, u.user_name,u.oa_user_id, u.oa_order_class, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.oa_user_id, u.create_by, u.create_time, u.remark,u.open_id,u.union_id,u.wechat_nickname,u.qy_wechat_user_id,u.qy_wechat_update_time,u.can_view_all_consult, |
| | | select u.user_id, u.dept_id, u.user_name,u.oa_user_id, u.oa_order_class, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.oa_user_id, u.create_by, u.create_time, u.remark,u.open_id,u.union_id,u.wechat_nickname,u.qy_wechat_user_id,u.qy_wechat_update_time,u.can_view_all_consult,u.can_create_task, |
| | | d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, |
| | | r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status |
| | | from sys_user u |
| | |
| | | <if test="oaUserId != null">oa_user_id,</if> |
| | | <if test="oaOrderClass != null and oaOrderClass != ''">oa_order_class,</if> |
| | | <if test="canViewAllConsult != null and canViewAllConsult != ''">can_view_all_consult,</if> |
| | | <if test="canCreateTask != null and canCreateTask != ''">can_create_task,</if> |
| | | <if test="qyWechatUserId != null and qyWechatUserId != ''">qy_wechat_user_id,</if> |
| | | <if test="qyWechatUpdateTime != null">qy_wechat_update_time,</if> |
| | | <if test="createBy != null and createBy != ''">create_by,</if> |
| | |
| | | <if test="oaUserId != null">#{oaUserId},</if> |
| | | <if test="oaOrderClass != null and oaOrderClass != ''">#{oaOrderClass},</if> |
| | | <if test="canViewAllConsult != null and canViewAllConsult != ''">#{canViewAllConsult},</if> |
| | | <if test="canCreateTask != null and canCreateTask != ''">#{canCreateTask},</if> |
| | | <if test="qyWechatUserId != null and qyWechatUserId != ''">#{qyWechatUserId},</if> |
| | | <if test="qyWechatUpdateTime != null">#{qyWechatUpdateTime},</if> |
| | | <if test="createBy != null and createBy != ''">#{createBy},</if> |
| | |
| | | <if test="oaUserId != null">oa_user_id = #{oaUserId},</if> |
| | | <if test="oaOrderClass != null">oa_order_class = #{oaOrderClass},</if> |
| | | <if test="canViewAllConsult != null and canViewAllConsult != ''">can_view_all_consult = #{canViewAllConsult},</if> |
| | | <if test="canCreateTask != null and canCreateTask != ''">can_create_task = #{canCreateTask},</if> |
| | | <if test="qyWechatUserId != null and qyWechatUserId != ''">qy_wechat_user_id = #{qyWechatUserId},</if> |
| | | <if test="qyWechatUpdateTime != null">qy_wechat_update_time = #{qyWechatUpdateTime},</if> |
| | | <if test="openId != null and openId != ''">open_id = #{openId},</if> |
| | |
| | | <result property="phonenumber" column="phonenumber" /> |
| | | <result property="oaOrderClass" column="OA_OrderClass" /> |
| | | <result property="canViewAllConsult" column="can_view_all_consult" /> |
| | | <result property="canCreateTask" column="can_create_task" /> |
| | | </resultMap> |
| | | |
| | | <!-- æ¥è¯¢SQL Serverä¸çOAç¨æ·å表 --> |
| | |
| | | CASE |
| | | WHEN OA_Power LIKE '%,020112,%' THEN '1' |
| | | ELSE '0' |
| | | END AS can_view_all_consult |
| | | END AS can_view_all_consult, |
| | | CASE |
| | | WHEN OA_Power LIKE '%,020101,%' THEN '1' |
| | | ELSE '0' |
| | | END AS can_create_task |
| | | FROM OA_User |
| | | WHERE OA_User IS NOT NULL |
| | | AND OA_Name IS NOT NULL |
| New file |
| | |
| | | -- å¨sys_userè¡¨ä¸æ·»å æ¯å¦å¯å建任å¡ååæ®µ |
| | | -- ä½ç¨: æ è¯ç¨æ·æ¯å¦æå建任å¡åçæéï¼ä»OAç³»ç»åæ¥ |
| | | -- 忥è§å: OA_Power LIKE '%,020101,%' çç¨æ·å¯ä»¥å建任å¡å |
| | | |
| | | -- æ·»å åæ®µ |
| | | ALTER TABLE sys_user ADD COLUMN can_create_task CHAR(1) DEFAULT '0' COMMENT 'æ¯å¦å¯å建任å¡åï¼0å¦ 1æ¯ï¼'; |
| | | |
| | | -- æ·»å ç´¢å¼ï¼æ¹ä¾¿æ¥è¯¢ææéçç¨æ·ï¼ |
| | | CREATE INDEX idx_can_create_task ON sys_user(can_create_task); |
| | | |
| | | -- æ¥è¯¢éªè¯ |
| | | SELECT COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT |
| | | FROM INFORMATION_SCHEMA.COLUMNS |
| | | WHERE TABLE_SCHEMA = 'ry-vue' |
| | | AND TABLE_NAME = 'sys_user' |
| | | AND COLUMN_NAME = 'can_create_task'; |