Explorar o código

Revert "登录、重置密码、新增用户接口密码参数加密处理"

This reverts commit 8ae5475a046d1823a25e071a6e59fff31182193e.
CHINAMI-P698360\Administrator hai 1 ano
pai
achega
9b5cee4af4

+ 4 - 11
src/utils/encrypt.js

@@ -1,14 +1,9 @@
 import CryptoJS from 'crypto-js'
 import CryptoJS from 'crypto-js'
-const key1 = CryptoJS.enc.Utf8.parse('dmngJmmO+9GMw+tu')
-const iv1 = CryptoJS.enc.Utf8.parse('sanXyqhk8+U7LPP4')
-const key2 = CryptoJS.enc.Utf8.parse('49PBou+TREIOzSHj')
-const iv2 = CryptoJS.enc.Utf8.parse('5lDsNRe&UduJ97uS')
-
+const key = CryptoJS.enc.Utf8.parse('dmngJmmO+9GMw+tu')
+const iv = CryptoJS.enc.Utf8.parse('sanXyqhk8+U7LPP4')
 // AES加密
 // AES加密
-export const encryptByAes = (pwd, type = 'normal') => {
+export const encryptByAes = pwd => {
     let encrypted = ''
     let encrypted = ''
-    const key = type === 'normal' ? key1 : key2
-    const iv = type === 'normal' ? iv1 : iv2
     if (typeof pwd === 'string') {
     if (typeof pwd === 'string') {
         const srcs = CryptoJS.enc.Utf8.parse(pwd)
         const srcs = CryptoJS.enc.Utf8.parse(pwd)
         const options = {
         const options = {
@@ -30,9 +25,7 @@ export const encryptByAes = (pwd, type = 'normal') => {
     return encrypted.ciphertext.toString(CryptoJS.enc.Base64)
     return encrypted.ciphertext.toString(CryptoJS.enc.Base64)
 }
 }
 
 
-export const decryptByAes = (encryptedText, type = 'normal') => {
-    const key = type === 'normal' ? key1 : key2
-    const iv = type === 'normal' ? iv1 : iv2
+export const decryptByAes = encryptedText => {
     const options = {
     const options = {
         iv: iv,
         iv: iv,
         mode: CryptoJS.mode.CBC, // 使用CBC模式
         mode: CryptoJS.mode.CBC, // 使用CBC模式

+ 214 - 220
src/views/platform/org/employee/change-password.vue

@@ -1,239 +1,233 @@
 <template>
 <template>
-    <el-dialog
-        :title="title"
-        :visible.sync="dialogVisible"
-        :close-on-click-modal="false"
-        :close-on-press-escape="false"
-        append-to-body
-        class="dialog"
-        :class="isReset?'other-changePassword_dialog':'super-changePassword_dialog'"
-        @open="formValidate"
-        @close="closeDialog"
+  <el-dialog
+    :title="title"
+    :visible.sync="dialogVisible"
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+    append-to-body
+    class="dialog"
+    :class="isReset?'other-changePassword_dialog':'super-changePassword_dialog'"
+    @open="formValidate"
+    @close="closeDialog"
+  >
+    <el-form
+      ref="passwordForm"
+      v-loading="dialogLoading"
+      :element-loading-text="$t('common.loading')"
+      :model="password"
+      :rules="rules"
+      :label-width="formLabelWidth"
+      label-suffix=":"
+      status-icon
+      @submit.native.prevent
+      style="margin: 20px;"
     >
     >
-        <el-form
-            ref="passwordForm"
-            v-loading="dialogLoading"
-            :element-loading-text="$t('common.loading')"
-            :model="password"
-            :rules="rules"
-            :label-width="formLabelWidth"
-            label-suffix=":"
-            status-icon
-            style="margin: 20px;"
-            @submit.native.prevent
-        >
-            <el-form-item v-if="!isReset" :label="$t('platform.org.employee.change-password.primitivePassword')" prop="primitivePassword">
-                <el-input v-model="password.primitivePassword" type="password" autocomplete="off" clearable show-password />
-            </el-form-item>
-            <el-form-item :label="$t('platform.org.employee.change-password.newPassword')" prop="newPassword">
-                <el-input v-model="password.newPassword" type="password" autocomplete="off" clearable show-password />
-            </el-form-item>
-            <el-form-item :label="$t('platform.org.employee.change-password.repeatPassword')" prop="repeatPassword">
-                <el-input v-model="password.repeatPassword" type="password" autocomplete="off" clearable show-password />
-            </el-form-item>
-        </el-form>
-        <div slot="footer" class="el-dialog--center">
-            <ibps-toolbar
-                :actions="toolbars"
-                @action-event="handleActionEvent"
-            />
-        </div>
-    </el-dialog>
+      <el-form-item v-if="!isReset" :label="$t('platform.org.employee.change-password.primitivePassword')" prop="primitivePassword">
+        <el-input v-model="password.primitivePassword" type="password" autocomplete="off" clearable show-password/>
+      </el-form-item>
+      <el-form-item :label="$t('platform.org.employee.change-password.newPassword')" prop="newPassword">
+        <el-input v-model="password.newPassword" type="password" autocomplete="off" clearable show-password/>
+      </el-form-item>
+      <el-form-item :label="$t('platform.org.employee.change-password.repeatPassword')" prop="repeatPassword">
+        <el-input v-model="password.repeatPassword" type="password" autocomplete="off" clearable show-password/>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" class="el-dialog--center">
+      <ibps-toolbar
+        :actions="toolbars"
+        @action-event="handleActionEvent"
+      />
+    </div>
+  </el-dialog>
 </template>
 </template>
 <script>
 <script>
 import { changePassword, registerChangePassword } from '@/api/platform/org/user'
 import { changePassword, registerChangePassword } from '@/api/platform/org/user'
 import { mapActions } from 'vuex'
 import { mapActions } from 'vuex'
 import ActionUtils from '@/utils/action'
 import ActionUtils from '@/utils/action'
-import { encryptByAes } from '@/utils/encrypt'
 
 
 export default {
 export default {
-    props: {
-        title: {
-            type: String,
-            default: () => {
-                return this.$t('platform.org.employee.change-password.title')
-            }
-        },
-        visible: Boolean,
-        ids: String,
-        regOpen: {
-            type: Boolean,
-            default: false
-        },
-        isReset: {
-            type: Boolean,
-            default: false
-        }
+  props: {
+    title: {
+      type: String,
+      default: () => {
+        return this.$t('platform.org.employee.change-password.title')
+      }
     },
     },
-    data () {
-        const validateNewPassword = (rule, value, callback) => {
-            if (value === '') {
-                callback(new Error('请输入密码'))
-            } else {
-                if (this.password.repeatPassword !== '') {
-                    this.$refs[this.formName].validateField('repeatPassword')
-                }
-                callback()
-            }
-        }
-        const validateRepeatPassword = (rule, value, callback) => {
-            if (this.restoreDefaultPassW !== '') return
-            if (value === '') {
-                callback(new Error('请再次输入密码'))
-            } else if (value !== this.password.newPassword) {
-                callback(new Error('两次输入密码不一致!'))
-            } else {
-                callback()
-            }
-        }
-        return {
-            formLabelWidth: '140px',
-            formName: 'passwordForm',
-            dialogLoading: false,
-            dialogVisible: this.visible,
-            restoreDefaultPassW: '',
-            rules: {
-                primitivePassword: [{ required: true, message: this.$t('validate.required') }],
-                newPassword: [
-                    { required: true, message: this.$t('validate.required') },
-                    { validator: validateNewPassword, trigger: 'change' }
-                ],
-                repeatPassword: [
-                    { required: true, message: this.$t('validate.required') },
-                    { validator: validateRepeatPassword, trigger: 'change' }
-                ]
-            },
-            password: {
-                userIds: this.ids,
-                // isReset: 0, // 是否重置,0-非重置、非0-重置
-                newPassword: '',
-                repeatPassword: '',
-                primitivePassword: ''// 原始密码
-            },
-            toolbars: [
-                { key: 'save' },
-                { key: 'reset',
-                    type: 'warning',
-                    label: this.$t('platform.org.employee.change-password.reset'),
-                    icon: 'ibps-icon-reply',
-                    hidden: () => { return !this.isReset }
-                },
-                { key: 'cancel' }
-            ]
+    visible: Boolean,
+    ids: String,
+    regOpen: {
+      type: Boolean,
+      default: false
+    },
+    isReset: {
+      type: Boolean,
+      default: false
+    }
+  },
+  data() {
+    const validateNewPassword = (rule, value, callback) => {
+      if (value === '') {
+        callback(new Error('请输入密码'))
+      } else {
+        if (this.password.repeatPassword !== '') {
+          this.$refs[this.formName].validateField('repeatPassword')
         }
         }
+        callback()
+      }
+    }
+    const validateRepeatPassword = (rule, value, callback) => {
+      if (this.restoreDefaultPassW !== '') return
+      if (value === '') {
+        callback(new Error('请再次输入密码'))
+      } else if (value !== this.password.newPassword) {
+        callback(new Error('两次输入密码不一致!'))
+      } else {
+        callback()
+      }
+    }
+    return {
+      formLabelWidth: '140px',
+      formName: 'passwordForm',
+      dialogLoading: false,
+      dialogVisible: this.visible,
+      restoreDefaultPassW: '',
+      rules: {
+        primitivePassword: [{ required: true, message: this.$t('validate.required') }],
+        newPassword: [
+          { required: true, message: this.$t('validate.required') },
+          { validator: validateNewPassword, trigger: 'change' }
+        ],
+        repeatPassword: [
+          { required: true, message: this.$t('validate.required') },
+          { validator: validateRepeatPassword, trigger: 'change' }
+        ]
+      },
+      password: {
+        userIds: this.ids,
+        // isReset: 0, // 是否重置,0-非重置、非0-重置
+        newPassword: '',
+        repeatPassword: '',
+        primitivePassword: ''// 原始密码
+      },
+      toolbars: [
+        { key: 'save' },
+        { key: 'reset',
+          type: 'warning',
+          label: this.$t('platform.org.employee.change-password.reset'),
+          icon: 'ibps-icon-reply',
+          hidden: () => { return !this.isReset }
+        },
+        { key: 'cancel' }
+      ]
+    }
+  },
+  watch: {
+    visible: {
+      handler: function(val, oldVal) {
+        this.dialogVisible = this.visible
+      },
+      immediate: true
+    }
+  },
+  methods: {
+    ...mapActions({
+      logout: 'ibps/account/logout'
+    }),
+    handleActionEvent({ key }) {
+      switch (key) {
+        case 'save':
+          this.handleSave()
+          break
+        case 'reset':
+          this.restoreDefault()
+          break
+        case 'cancel':
+          this.closeDialog()
+          break
+        default:
+          break
+      }
     },
     },
-    watch: {
-        visible: {
-            handler: function (val, oldVal) {
-                this.dialogVisible = this.visible
-            },
-            immediate: true
+    /**
+     * @description 登出
+     */
+    logOff() {
+      this.logout({
+        vm: this,
+        confirm: false
+      })
+    },
+    // 提交(校验)
+    handleSave() {
+      if (this.isReset) {
+        this.rules['primitivePassword'] = [{ required: false, message: this.$t('validate.required') }]
+      }
+      if (this.restoreDefaultPassW === 'restoreDefault') {
+        this.saveData()
+        return
+      }
+      this.$refs[this.formName].validate((valid) => {
+        if (valid) {
+          this.restoreDefaultPassW = ''
+          this.saveData()
+        } else {
+          ActionUtils.saveErrorMessage()
         }
         }
+      })
     },
     },
-    methods: {
-        ...mapActions({
-            logout: 'ibps/account/logout'
-        }),
-        handleActionEvent ({ key }) {
-            switch (key) {
-                case 'save':
-                    this.handleSave()
-                    break
-                case 'reset':
-                    this.restoreDefault()
-                    break
-                case 'cancel':
-                    this.closeDialog()
-                    break
-                default:
-                    break
-            }
-        },
-        /**
-         * @description 登出
-         */
-        logOff () {
-            this.logout({
-                vm: this,
-                confirm: false
-            })
-        },
-        // 提交(校验)
-        handleSave () {
-            if (this.isReset) {
-                this.rules['primitivePassword'] = [{ required: false, message: this.$t('validate.required') }]
-            }
-            if (this.restoreDefaultPassW === 'restoreDefault') {
-                this.saveData()
-                return
-            }
-            this.$refs[this.formName].validate((valid) => {
-                if (valid) {
-                    this.restoreDefaultPassW = ''
-                    this.saveData()
-                } else {
-                    ActionUtils.saveErrorMessage()
-                }
-            })
-        },
-        // 提交保存数据
-        saveData () {
-            this.password.userIds = this.ids
-            const { primitivePassword, repeatPassword, newPassword, userIds } = this.password
-            const params = {
-                userIds: userIds.split(','),
-                primitivePassword: primitivePassword ? encryptByAes(primitivePassword, 'pwd') : '',
-                repeatPassword: encryptByAes(repeatPassword, 'pwd'),
-                newPassword: encryptByAes(newPassword, 'pwd')
+    // 提交保存数据
+    saveData() {
+      this.password.userIds = this.ids
+      if (this.$store.getters.regOpen) {
+        this.password.reset = 0 // 0-非重置、1-重置
+        this.password.userIds = this.password.userIds.split(',')
+        registerChangePassword(this.password).then(response => {
+          ActionUtils.saveSuccessMessage(response.message, (rtn) => {
+            this.logOff()
+            if (rtn) {
+              this.closeDialog()
             }
             }
-            if (this.$store.getters.regOpen) {
-                params.reset = 0 // 0-非重置、1-重置
-                registerChangePassword(params).then(response => {
-                    ActionUtils.saveSuccessMessage(response.message, (rtn) => {
-                        this.logOff()
-                        if (rtn) {
-                            this.closeDialog()
-                        }
-                    })
-                }).catch((err) => {
-                    console.error(err)
-                })
-            } else {
-                this.restoreDefaultPassW === 'restoreDefault' ? params.reset = 2 : !this.isReset ? params.reset = 0 : params.reset = 1
-                changePassword(params).then(response => {
-                    ActionUtils.saveSuccessMessage(response.message, (rtn) => {
-                        if (rtn) {
-                            this.closeDialog()
-                        }
-                    })
-                }).catch((err) => {
-                    console.error(err)
-                })
+          })
+        }).catch((err) => {
+          console.error(err)
+        })
+      } else {
+        this.restoreDefaultPassW === 'restoreDefault' ? this.password.reset = 2 : !this.isReset ? this.password.reset = 0 : this.password.reset = 1
+        this.password.userIds = this.password.userIds.split(',')
+        changePassword(this.password).then(response => {
+          ActionUtils.saveSuccessMessage(response.message, (rtn) => {
+            if (rtn) {
+              this.closeDialog()
             }
             }
-        },
-        /**
-         * 还原默认
-         */
-        restoreDefault () {
-            this.password.newPassword = '123456'
-            this.password.repeatPassword = '123456'
-            this.restoreDefaultPassW = 'restoreDefault'
-            this.saveData()
-        },
-        // 关闭当前窗口
-        closeDialog () {
-            this.restoreDefaultPassW = ''
-            this.$emit('close', false)
-            this.$refs[this.formName].resetFields() // 初始化状态
-        },
-        /**
-         * 表单验证
-         */
-        formValidate () {
-            this.$nextTick(() => {
-                this.$refs[this.formName].validate(() => {})
-            })
-        }
+          })
+        }).catch((err) => {
+          console.error(err)
+        })
+      }
+    },
+    /**
+     * 还原默认
+     */
+    restoreDefault() {
+      this.password.newPassword = '1'
+      this.password.repeatPassword = '1'
+      this.restoreDefaultPassW = 'restoreDefault'
+      this.saveData()
+    },
+    // 关闭当前窗口
+    closeDialog() {
+      this.restoreDefaultPassW = ''
+      this.$emit('close', false)
+      this.$refs[this.formName].resetFields() // 初始化状态
+    },
+    /**
+     * 表单验证
+     */
+    formValidate() {
+      this.$nextTick(() => {
+        this.$refs[this.formName].validate(() => {})
+      })
     }
     }
+  }
 }
 }
 </script>
 </script>

+ 2 - 3
src/views/platform/org/employee/edit/basic-info.vue

@@ -122,8 +122,7 @@
                     <el-input v-if="canEdit" v-model="formData.mobile" clearable />
                     <el-input v-if="canEdit" v-model="formData.mobile" clearable />
                     <span v-else>{{ formData.mobile }}</span>
                     <span v-else>{{ formData.mobile }}</span>
                 </el-form-item>
                 </el-form-item>
-                <!-- 功能逻辑存在问题,弃用 -->
-                <!-- <el-form-item v-if="!readonly">
+                <el-form-item v-if="!readonly">
                     <template slot="label">
                     <template slot="label">
                         入职/转岗培训
                         入职/转岗培训
                         <help-tip title="" content="开启时,保存数据后将为当前用户开启入职/转岗培训" />
                         <help-tip title="" content="开启时,保存数据后将为当前用户开启入职/转岗培训" />
@@ -154,7 +153,7 @@
                         type="dialog"
                         type="dialog"
                         placeholder="请选择培训人员带教老师"
                         placeholder="请选择培训人员带教老师"
                     />
                     />
-                </el-form-item> -->
+                </el-form-item>
             </el-form>
             </el-form>
         </el-col>
         </el-col>
     </el-row>
     </el-row>

+ 1 - 5
src/views/platform/org/employee/edit/index.vue

@@ -121,7 +121,6 @@ import PositionInfo from './position-info'
 import RoleInfo from './role-info'
 import RoleInfo from './role-info'
 import GroupInfo from './group-info'
 import GroupInfo from './group-info'
 import PersonalCode from './personal-qrcode'
 import PersonalCode from './personal-qrcode'
-import { encryptByAes } from '@/utils/encrypt'
 
 
 export default {
 export default {
     components: {
     components: {
@@ -163,7 +162,7 @@ export default {
             defaultEmployee: {
             defaultEmployee: {
                 id: '',
                 id: '',
                 account: '',
                 account: '',
-                password: '',
+                password: 'jyk123456',
                 isSuper: 'N',
                 isSuper: 'N',
                 name: '',
                 name: '',
                 status: 'actived',
                 status: 'actived',
@@ -333,9 +332,6 @@ export default {
             const vo = this.formatSubmitData()
             const vo = this.formatSubmitData()
             if (!this.$utils.isEmpty(this.formId) && !this.ceroParams) {
             if (!this.$utils.isEmpty(this.formId) && !this.ceroParams) {
                 delete vo.partyEmployeePo.password
                 delete vo.partyEmployeePo.password
-            } else {
-                // 创建用户时密码加密处理
-                vo.partyEmployeePo.password = encryptByAes(vo.partyEmployeePo.password, 'pwd')
             }
             }
             if (vo.positionVoList.length === 0) {
             if (vo.positionVoList.length === 0) {
                 ActionUtils.warning('请选择部门')
                 ActionUtils.warning('请选择部门')

+ 1 - 2
src/views/platform/org/employee/list.vue

@@ -79,7 +79,6 @@ import CustomDataDisplayMixin from '@/business/platform/system/mixins/customData
 import importTable from '@/business/platform/form/formrender/dynamic-form/components/import-table'
 import importTable from '@/business/platform/form/formrender/dynamic-form/components/import-table'
 import MoreSearch from './more-search'
 import MoreSearch from './more-search'
 import IbpsImport from '@/plugins/import'
 import IbpsImport from '@/plugins/import'
-import { encryptByAes } from '@/utils/encrypt'
 export default {
 export default {
     components: {
     components: {
         Edit,
         Edit,
@@ -724,7 +723,7 @@ export default {
                 const userItem = {
                 const userItem = {
                     id: '',
                     id: '',
                     account: item.account,
                     account: item.account,
-                    password: encryptByAes(this.defaultPwd, 'pwd'),
+                    password: this.defaultPwd,
                     isSuper: 'N',
                     isSuper: 'N',
                     name: item.username,
                     name: item.username,
                     status: 'actived',
                     status: 'actived',

+ 1 - 4
src/views/system/login/user-login.vue

@@ -124,7 +124,6 @@
 import { mapActions } from 'vuex'
 import { mapActions } from 'vuex'
 import Utils from '@/utils/util'
 import Utils from '@/utils/util'
 import I18n from '@/utils/i18n'
 import I18n from '@/utils/i18n'
-import { encryptByAes } from '@/utils/encrypt'
 const loginForm = process.env.NODE_ENV === 'development'
 const loginForm = process.env.NODE_ENV === 'development'
     ? {
     ? {
         username: 'jinyuan',
         username: 'jinyuan',
@@ -356,9 +355,7 @@ export default {
                     text: this.$t('common.loading'),
                     text: this.$t('common.loading'),
                     background: 'rgba(0, 0, 0, 0.7)'
                     background: 'rgba(0, 0, 0, 0.7)'
                 })
                 })
-                const submitData = structuredClone(this.loginForm)
-                submitData.password = encryptByAes(submitData.password, 'pwd')
-                this.login({ form: submitData }).then(data => {
+                this.login({ form: this.loginForm }).then(data => {
                     localStorage.setItem('statistic', data.statistic)
                     localStorage.setItem('statistic', data.statistic)
                     // 更新路由 尝试去获取 cookie 里保存的需要重定向的页面完整地址
                     // 更新路由 尝试去获取 cookie 里保存的需要重定向的页面完整地址
                     const redirect = this.$route.query.redirect
                     const redirect = this.$route.query.redirect