diff --git a/.env.production b/.env.production
index e597bc9..be62ffb 100644
--- a/.env.production
+++ b/.env.production
@@ -4,7 +4,7 @@ VUE_APP_TITLE = 实名制管理系统
# 生产环境配置
ENV = 'production'
VUE_APP_ENV = 'production'
-VUE_APP_SHOW_PARAMETER = true
+VUE_APP_SHOW_PARAMETER = false
# 实名制管理系统/生产环境
VUE_APP_BASE_API = '/hd-real-name'
diff --git a/src/store/getters.js b/src/store/getters.js
index 137c80d..027d40d 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -1,19 +1,21 @@
const getters = {
- sidebar: state => state.app.sidebar,
- size: state => state.app.size,
- device: state => state.app.device,
- dict: state => state.dict.dict,
- visitedViews: state => state.tagsView.visitedViews,
- cachedViews: state => state.tagsView.cachedViews,
- token: state => state.user.token,
- avatar: state => state.user.avatar,
- name: state => state.user.name,
- introduction: state => state.user.introduction,
- roles: state => state.user.roles,
- permissions: state => state.user.permissions,
- permission_routes: state => state.permission.routes,
- topbarRouters: state => state.permission.topbarRouters,
- defaultRoutes: state => state.permission.defaultRoutes,
- sidebarRouters: state => state.permission.sidebarRouters
+ sidebar: (state) => state.app.sidebar,
+ size: (state) => state.app.size,
+ device: (state) => state.app.device,
+ dict: (state) => state.dict.dict,
+ visitedViews: (state) => state.tagsView.visitedViews,
+ cachedViews: (state) => state.tagsView.cachedViews,
+ token: (state) => state.user.token,
+ avatar: (state) => state.user.avatar,
+ name: (state) => state.user.name,
+ introduction: (state) => state.user.introduction,
+ roles: (state) => state.user.roles,
+ permissions: (state) => state.user.permissions,
+ permission_routes: (state) => state.permission.routes,
+ topbarRouters: (state) => state.permission.topbarRouters,
+ defaultRoutes: (state) => state.permission.defaultRoutes,
+ sidebarRouters: (state) => state.permission.sidebarRouters,
+ companyId: (state) => state.user.companyId,
+ companyLevel: (state) => state.user.companyLevel,
}
export default getters
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index b660b65..e2ec96c 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -1,4 +1,12 @@
-import { login, logout, getInfo, refreshToken, getPhoneCode, isLogin,isAdmin} from '@/api/login'
+import {
+ login,
+ logout,
+ getInfo,
+ refreshToken,
+ getPhoneCode,
+ isLogin,
+ isAdmin,
+} from '@/api/login'
import { getToken, setToken, setExpiresIn, removeToken } from '@/utils/auth'
// 更严格的手机号和邮箱正则表达式
@@ -6,157 +14,195 @@ const phonePattern = /^(\+86)?1[3-9]\d{9}$/ // 支持前缀 +86
const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
// 构建 payload 函数
-const buildPayload = ({ loginMethod, username, password, uuid, code, mobile, verificationCode,phoneUuid }) => {
- let loginType = ''
- if (loginMethod === 'mobile') {
- loginType = phonePattern.test(mobile.trim()) ? 'PHONE_OTP' : emailPattern.test(mobile.trim()) ? 'EMAIL_OTP' : 'PHONE_OTP'
- return {
- username: mobile.trim(),
- verificationCode,
- uuid,
- code,
- loginType,
- phoneUuid
+const buildPayload = ({
+ loginMethod,
+ username,
+ password,
+ uuid,
+ code,
+ mobile,
+ verificationCode,
+ phoneUuid,
+}) => {
+ let loginType = ''
+ if (loginMethod === 'mobile') {
+ loginType = phonePattern.test(mobile.trim())
+ ? 'PHONE_OTP'
+ : emailPattern.test(mobile.trim())
+ ? 'EMAIL_OTP'
+ : 'PHONE_OTP'
+ return {
+ username: mobile.trim(),
+ verificationCode,
+ uuid,
+ code,
+ loginType,
+ phoneUuid,
+ }
+ } else {
+ loginType = phonePattern.test(username.trim())
+ ? 'PHONE_PASSWORD'
+ : emailPattern.test(username.trim())
+ ? 'EMAIL_PASSWORD'
+ : 'USERNAME_PASSWORD'
+ return {
+ username: username.trim(),
+ password,
+ verificationCode,
+ uuid,
+ code,
+ loginType,
+ phoneUuid,
+ }
}
- } else {
- loginType = phonePattern.test(username.trim()) ? 'PHONE_PASSWORD' : emailPattern.test(username.trim()) ? 'EMAIL_PASSWORD' : 'USERNAME_PASSWORD'
- return {
- username: username.trim(),
- password,
- verificationCode,
- uuid,
- code,
- loginType,
- phoneUuid
- }
- }
}
const user = {
- state: {
- token: getToken(),
- id: '',
- name: '',
- avatar: '',
- roles: [],
- permissions: []
- },
-
- mutations: {
- SET_TOKEN(state, token) {
- state.token = token
- },
- SET_EXPIRES_IN(state, time) {
- state.expires_in = time
- },
- SET_ID(state, id) {
- state.id = id
- },
- SET_NAME(state, name) {
- state.name = name
- },
- SET_AVATAR(state, avatar) {
- state.avatar = avatar
- },
- SET_ROLES(state, roles) {
- state.roles = roles
- },
- SET_PERMISSIONS(state, permissions) {
- state.permissions = permissions
- }
- },
-
- actions: {
- IsLogin({ commit }, userInfo) {
- const payload = buildPayload(userInfo)
- return isLogin(payload)
- .then(res => res)
- .catch(error => Promise.reject(error))
- },
- IsAdmin({ commit }, userInfo) {
- const payload = buildPayload(userInfo)
- return isAdmin(payload)
- .then(res => res)
- .catch(error => Promise.reject(error))
+ state: {
+ token: getToken(),
+ id: '',
+ name: '',
+ avatar: '',
+ roles: [],
+ permissions: [],
+ companyId: '',
+ companyLevel: '',
},
- // 登录
- Login({ commit }, userInfo) {
- const payload = buildPayload(userInfo)
- return login(payload)
- .then(res => {
- const { access_token, expires_in } = res.data
- setToken(access_token)
- commit('SET_TOKEN', access_token)
- setExpiresIn(expires_in)
- commit('SET_EXPIRES_IN', expires_in)
- return res;
- })
- .catch(error => Promise.reject(error))
+ mutations: {
+ SET_TOKEN(state, token) {
+ state.token = token
+ },
+ SET_EXPIRES_IN(state, time) {
+ state.expires_in = time
+ },
+ SET_ID(state, id) {
+ state.id = id
+ },
+ SET_NAME(state, name) {
+ state.name = name
+ },
+ SET_AVATAR(state, avatar) {
+ state.avatar = avatar
+ },
+ SET_ROLES(state, roles) {
+ state.roles = roles
+ },
+ SET_PERMISSIONS(state, permissions) {
+ state.permissions = permissions
+ },
+
+ SET_COMPANY_ID(state, companyId) {
+ state.companyId = companyId
+ },
+ SET_COMPANY_LEVEL(state, companyLevel) {
+ state.companyLevel = companyLevel
+ },
},
- // 获取手机验证码
- GetPhoneCode({ commit }, userInfo) {
- const payload = {
- username: userInfo.mobile.trim(),
- uuid: userInfo.uuid,
- code: userInfo.code,
- phoneUuid: userInfo.phoneUuid,
- verificationCodeType: userInfo.mobileCodeType
- }
- return getPhoneCode(payload)
- .then(res => res)
- .catch(error => Promise.reject(error))
- },
+ actions: {
+ IsLogin({ commit }, userInfo) {
+ const payload = buildPayload(userInfo)
+ return isLogin(payload)
+ .then((res) => res)
+ .catch((error) => Promise.reject(error))
+ },
+ IsAdmin({ commit }, userInfo) {
+ const payload = buildPayload(userInfo)
+ return isAdmin(payload)
+ .then((res) => res)
+ .catch((error) => Promise.reject(error))
+ },
- // 获取用户信息
- GetInfo({ commit }) {
- return getInfo()
- .then(res => {
- const user = res.user
- const avatar = user.avatar ? user.avatar : require('@/assets/images/profile.jpg')
- commit('SET_ROLES', res.roles && res.roles.length > 0 ? res.roles : ['ROLE_DEFAULT'])
- commit('SET_PERMISSIONS', res.permissions)
- commit('SET_ID', user.userId)
- commit('SET_NAME', user.userName)
- commit('SET_AVATAR', avatar)
- return res
- })
- .catch(error => Promise.reject(error))
- },
+ // 登录
+ Login({ commit }, userInfo) {
+ const payload = buildPayload(userInfo)
+ return login(payload)
+ .then((res) => {
+ const { access_token, expires_in } = res.data
+ setToken(access_token)
+ commit('SET_TOKEN', access_token)
+ setExpiresIn(expires_in)
+ commit('SET_EXPIRES_IN', expires_in)
+ return res
+ })
+ .catch((error) => Promise.reject(error))
+ },
- // 刷新 token
- RefreshToken({ commit, state }) {
- return refreshToken(state.token)
- .then(res => {
- const expiresIn = res.data
- setExpiresIn(expiresIn)
- commit('SET_EXPIRES_IN', expiresIn)
- })
- .catch(error => Promise.reject(error))
- },
+ // 获取手机验证码
+ GetPhoneCode({ commit }, userInfo) {
+ const payload = {
+ username: userInfo.mobile.trim(),
+ uuid: userInfo.uuid,
+ code: userInfo.code,
+ phoneUuid: userInfo.phoneUuid,
+ verificationCodeType: userInfo.mobileCodeType,
+ }
+ return getPhoneCode(payload)
+ .then((res) => res)
+ .catch((error) => Promise.reject(error))
+ },
- // 退出登录
- LogOut({ commit, state }) {
- return logout(state.token)
- .then(() => {
- commit('SET_TOKEN', '')
- commit('SET_ROLES', [])
- commit('SET_PERMISSIONS', [])
- removeToken()
- })
- .catch(error => Promise.reject(error))
- },
+ // 获取用户信息
+ GetInfo({ commit }) {
+ return getInfo()
+ .then((res) => {
+ const user = res.user
+ const avatar = user.avatar
+ ? user.avatar
+ : require('@/assets/images/profile.jpg')
+ commit(
+ 'SET_ROLES',
+ res.roles && res.roles.length > 0
+ ? res.roles
+ : ['ROLE_DEFAULT'],
+ )
+ commit('SET_PERMISSIONS', res.permissions)
+ commit('SET_ID', user.userId)
+ commit('SET_NAME', user.userName)
+ commit('SET_AVATAR', avatar)
- // 前端退出
- FedLogOut({ commit }) {
- return new Promise(resolve => {
- commit('SET_TOKEN', '')
- removeToken()
- resolve()
- })
- }
- }
+ // 存储用户的公司id 和公司级别
+ commit('SET_COMPANY_ID', user.bandId)
+ commit('SET_COMPANY_LEVEL', user.roleLevel)
+
+ return res
+ })
+ .catch((error) => Promise.reject(error))
+ },
+
+ // 刷新 token
+ RefreshToken({ commit, state }) {
+ return refreshToken(state.token)
+ .then((res) => {
+ const expiresIn = res.data
+ setExpiresIn(expiresIn)
+ commit('SET_EXPIRES_IN', expiresIn)
+ })
+ .catch((error) => Promise.reject(error))
+ },
+
+ // 退出登录
+ LogOut({ commit, state }) {
+ return logout(state.token)
+ .then(() => {
+ commit('SET_TOKEN', '')
+ commit('SET_ROLES', [])
+ commit('SET_PERMISSIONS', [])
+ removeToken()
+ })
+ .catch((error) => Promise.reject(error))
+ },
+
+ // 前端退出
+ FedLogOut({ commit }) {
+ return new Promise((resolve) => {
+ commit('SET_TOKEN', '')
+ removeToken()
+ resolve()
+ })
+ },
+ },
}
export default user
diff --git a/src/views/basic-manage/project-manage/all-project/config.js b/src/views/basic-manage/project-manage/all-project/config.js
index dfa5720..8b7acb0 100644
--- a/src/views/basic-manage/project-manage/all-project/config.js
+++ b/src/views/basic-manage/project-manage/all-project/config.js
@@ -8,6 +8,7 @@ export const formLabel = [
]
export const columnsList = [
+ { t_props: 'subComName', t_label: '所属分公司' },
{ t_props: 'mainProName', t_label: '总工程名称' },
{ t_props: 'volLevel', t_label: '电压等级' },
diff --git a/src/views/basic-manage/project-manage/all-project/index.vue b/src/views/basic-manage/project-manage/all-project/index.vue
index 853e139..9672fc4 100644
--- a/src/views/basic-manage/project-manage/all-project/index.vue
+++ b/src/views/basic-manage/project-manage/all-project/index.vue
@@ -94,6 +94,23 @@
:model="addOrEditForm"
:rules="addOrEditFormRules"
>
+
+
+
+
+
import TableModel from '@/components/TableModel'
import DialogModel from '@/components/DialogModel'
+
import { formLabel, columnsList, dialogConfig } from './config'
import {
addAndEditAllProjectAPI,
deleteAllProjectAPI,
getAllProjectListAPI,
} from '@/api/basic-manage/project-manage/all-project'
+import { getSubCompanySelectListCommonFun } from '@/utils/getCommonData'
export default {
name: 'All-project',
dicts: ['voltage_level', 'project_type', 'project_status'],
@@ -215,16 +234,25 @@ export default {
columnsList,
dialogConfig,
getAllProjectListAPI,
+ subIsDisabled: false, // 所属分公司是否禁用
lotProjectList: [], // 子项目(标段工程)概况
-
+ branchCompanyOptions: [], // 分公司下拉列表
// 新增或修改表单
addOrEditForm: {
+ subComId: '', // 所属分公司id
id: '', // 主键id
volLevel: '', // 电压等级
mainProName: '', // 总工程名称
},
// 新增或修改表单验证
addOrEditFormRules: {
+ subComId: [
+ {
+ required: true,
+ trigger: 'change',
+ message: '请选择所属分公司',
+ },
+ ],
mainProName: [
{
required: true,
@@ -247,6 +275,11 @@ export default {
}
},
+ async created() {
+ // 获取分公司下拉列表
+ this.branchCompanyOptions = await getSubCompanySelectListCommonFun() // 获取所属分公司列表
+ },
+
methods: {
// 导出按钮
onHandleExportAllProject(queryParams) {
@@ -261,14 +294,16 @@ export default {
// 新增或修改
onHandleAddOrEditAllProject(type, data) {
+ this.getCurrentCompanyIdAndLevel() // 获取当前用户的公司id和公司级别
this.dialogConfig.outerTitle =
type === 1 ? '新增总工程' : '修改总工程'
if (type === 2) {
- const { mainProName, volLevel, id } = data
+ const { mainProName, volLevel, id, subComId } = data
this.addOrEditForm = {
id,
volLevel,
+ subComId: subComId === null ? '' : subComId * 1,
mainProName,
}
}
@@ -377,6 +412,26 @@ export default {
return status || ''
},
+
+ // 选择项目部
+ onHandleSelectOrgId(node) {
+ this.addOrEditForm.subComId = node.parentId
+ // this.addOrEditForm.orgId = node.id
+ },
+
+ // 获取当前用户的公司id和公司级别
+ getCurrentCompanyIdAndLevel() {
+ // 获取当前用户的公司id
+ const companyId = this.$store.getters.companyId
+ // 获取当前用户的公司级别
+ const companyLevel = this.$store.getters.companyLevel
+
+ if (companyLevel === '分公司级') {
+ this.addOrEditForm.subComId = companyId * 1
+ }
+
+ this.subIsDisabled = companyLevel === '分公司级'
+ },
},
}
diff --git a/src/views/basic-manage/project-manage/dept-project/index.vue b/src/views/basic-manage/project-manage/dept-project/index.vue
index c880aab..364c57e 100644
--- a/src/views/basic-manage/project-manage/dept-project/index.vue
+++ b/src/views/basic-manage/project-manage/dept-project/index.vue
@@ -102,7 +102,8 @@
placeholder="请选择所属分公司"
v-model="addOrEditForm.subComId"
:disabled="
- dialogConfig.outerTitle === '修改项目部'
+ dialogConfig.outerTitle === '修改项目部' ||
+ subIsDisabled
"
>
+
+
+
+
+
+
+
+
@@ -44,6 +64,8 @@
/>
+
+
-
-
+
-
+
-
+
import UploadImgFormData from '@/components/UploadImgFormData'
import { addAndEditSubBaseInfoAPI } from '@/api/basic-manage/sub-manage/sub-base-info'
+import { getSubCompanySelectListCommonFun } from '@/utils/getCommonData'
export default {
name: 'AddOrEditForm',
components: {
@@ -144,6 +163,8 @@ export default {
},
data() {
return {
+ subIsDisabled: false, // 所属分公司是否禁用
+ branchCompanyOptions: [], // 分公司下拉列表
editUploadFileList: [], // 修改时已上传的文件列表
addOrEditForm: {
id: null, // 主键id
@@ -151,6 +172,7 @@ export default {
subAddress: '', // 营业住址
legalPerson: '', // 法定代表人
legalPersonPhone: '', // 联系电话
+ subComId: '', // 所属分公司id
idCard: [], // 身份证正反面
businessLicense: [], // 营业执照
@@ -174,6 +196,14 @@ export default {
},
],
+ subComId: [
+ {
+ required: true,
+ trigger: 'change',
+ message: '请选择所属分公司',
+ },
+ ],
+
legalPersonPhone: [
{
trigger: 'blur',
@@ -213,6 +243,10 @@ export default {
},
}
},
+ async created() {
+ this.branchCompanyOptions = await getSubCompanySelectListCommonFun() // 获取所属分公司列表
+ this.getCurrentCompanyIdAndLevel() // 获取当前用户的公司id和公司级别
+ },
methods: {
// 确定按钮
onHandleConfirmAddOrEditFun() {
@@ -224,6 +258,7 @@ export default {
id,
idCard,
subName,
+ subComId,
subAddress,
legalPerson,
businessLicense,
@@ -247,6 +282,7 @@ export default {
subAddress,
legalPerson,
legalPersonPhone,
+ subComId,
}
businessLicense.forEach((item) => {
@@ -336,6 +372,20 @@ export default {
resetForm() {
this.$refs.addOrEditFormRef.resetFields()
},
+
+ // 获取当前用户的公司id和公司级别
+ getCurrentCompanyIdAndLevel() {
+ // 获取当前用户的公司id
+ const companyId = this.$store.getters.companyId
+ // 获取当前用户的公司级别
+ const companyLevel = this.$store.getters.companyLevel
+
+ if (companyLevel === '分公司级') {
+ this.addOrEditForm.subComId = companyId * 1
+ }
+
+ this.subIsDisabled = companyLevel === '分公司级'
+ },
},
watch: {
@@ -349,9 +399,10 @@ export default {
legalPerson,
contractFile,
legalPersonPhone,
+ subComId,
} = newVal
- if (contractFile.length > 0) {
+ if (contractFile && contractFile.length > 0) {
this.editUploadFileList = contractFile // 所有文件
// 营业执照
@@ -404,6 +455,7 @@ export default {
subName,
subAddress,
legalPerson,
+ subComId,
legalPersonPhone,
})
}
diff --git a/src/views/basic-manage/sub-manage/sub-base-info/index.vue b/src/views/basic-manage/sub-manage/sub-base-info/index.vue
index 1ae0a84..e904a75 100644
--- a/src/views/basic-manage/sub-manage/sub-base-info/index.vue
+++ b/src/views/basic-manage/sub-manage/sub-base-info/index.vue
@@ -170,6 +170,8 @@ export default {
if (type === 2) {
Object.assign(this.editFormData, data)
+ this.editFormData.subComId =
+ data.subComId === null ? '' : data.subComId * 1
} else {
this.editFormData = {}
}
diff --git a/src/views/construction-person/entry-and-exit-manage/person-entry/index.vue b/src/views/construction-person/entry-and-exit-manage/person-entry/index.vue
index 4efa215..cb8d90d 100644
--- a/src/views/construction-person/entry-and-exit-manage/person-entry/index.vue
+++ b/src/views/construction-person/entry-and-exit-manage/person-entry/index.vue
@@ -6,6 +6,9 @@
:showOperation="true"
:showRightTools="true"
ref="personEntryTableRef"
+ :sendParams="{
+ einStatus: '1',
+ }"
:columnsList="columnsList"
:request-api="getEntryPersonListAPI"
>