田源
2023-04-11 4e13584a74c860f9fa8fd2d6aee3021fe6bb6b77
对象建模
已修改44个文件
已添加8个文件
17486 ■■■■■ 文件已修改
Source/UBCS-WEB/package-lock.json 15196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/base/region.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/desk/notice.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/flow/flow.js 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/report/report.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/resource/attach.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/resource/oss.js 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/resource/sms.js 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/system/role.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/system/user.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/tool/code.js 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/tool/datasource.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/tool/model.js 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/user.js 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/main.js 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/page/index/top/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/page/login/userlogin.vue 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/permission.js 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/store/modules/user.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/authority/apiscope.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/authority/datascope.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/authority/role.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/base/region.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/desk/notice.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/flow/deploy.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/flow/manager.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/flow/model.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/modeling/Business.vue 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/modeling/Relations.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/modeling/Version.vue 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/modeling/Versionpackage.vue 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/modeling/cycle.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/modeling/enumeration.vue 191 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/modeling/enupackage.vue 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/modeling/original.vue 549 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/resource/attach.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/resource/oss.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/resource/sms.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue 340 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/system/dept.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/system/post.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/system/tenant.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/system/user.vue 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/tool/code.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/wel/index.vue 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/work/claim.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/work/done.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/work/process/leave/form.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/work/send.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/work/start.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/work/todo.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/vue.config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/package-lock.json
ÎļþÌ«´ó
Source/UBCS-WEB/src/api/base/region.js
@@ -2,7 +2,7 @@
export const getList = (current, size, params) => {
  return request({
    url: '/api/blade-system/region/list',
    url: '/api/ubcs-system/region/list',
    method: 'get',
    params: {
      ...params,
@@ -14,7 +14,7 @@
export const getLazyTree = (parentCode, params) => {
  return request({
    url: '/api/blade-system/region/lazy-tree',
    url: '/api/ubcs-system/region/lazy-tree',
    method: 'get',
    params: {
      ...params,
@@ -25,7 +25,7 @@
export const getDetail = (code) => {
  return request({
    url: '/api/blade-system/region/detail',
    url: '/api/ubcs-system/region/detail',
    method: 'get',
    params: {
      code
@@ -35,7 +35,7 @@
export const remove = (id) => {
  return request({
    url: '/api/blade-system/region/remove',
    url: '/api/ubcs-system/region/remove',
    method: 'post',
    params: {
      id,
@@ -45,7 +45,7 @@
export const submit = (row) => {
  return request({
    url: '/api/blade-system/region/submit',
    url: '/api/ubcs-system/region/submit',
    method: 'post',
    data: row
  })
Source/UBCS-WEB/src/api/desk/notice.js
@@ -2,7 +2,7 @@
export const getList = (current, size, params) => {
  return request({
    url: '/api/blade-desk/notice/list',
    url: '/api/ubcs-desk/notice/list',
    method: 'get',
    params: {
      ...params,
@@ -14,7 +14,7 @@
export const remove = (ids) => {
  return request({
    url: '/api/blade-desk/notice/remove',
    url: '/api/ubcs-desk/notice/remove',
    method: 'post',
    params: {
      ids,
@@ -24,7 +24,7 @@
export const add = (row) => {
  return request({
    url: '/api/blade-desk/notice/submit',
    url: '/api/ubcs-desk/notice/submit',
    method: 'post',
    data: row
  })
@@ -32,7 +32,7 @@
export const update = (row) => {
  return request({
    url: '/api/blade-desk/notice/submit',
    url: '/api/ubcs-desk/notice/submit',
    method: 'post',
    data: row
  })
@@ -40,7 +40,7 @@
export const getNotice = (id) => {
  return request({
    url: '/api/blade-desk/notice/detail',
    url: '/api/ubcs-desk/notice/detail',
    method: 'get',
    params: {
      id
Source/UBCS-WEB/src/api/flow/flow.js
@@ -2,7 +2,7 @@
export const modelList = (current, size, params) => {
  return request({
    url: '/api/blade-flow/model/list',
    url: '/api/ubcs-flow/model/list',
    method: 'get',
    params: {
      ...params,
@@ -14,7 +14,7 @@
export const managerList = (current, size, params) => {
  return request({
    url: '/api/blade-flow/manager/list',
    url: '/api/ubcs-flow/manager/list',
    method: 'get',
    params: {
      ...params,
@@ -26,7 +26,7 @@
export const followList = (current, size, params) => {
  return request({
    url: '/api/blade-flow/follow/list',
    url: '/api/ubcs-flow/follow/list',
    method: 'get',
    params: {
      ...params,
@@ -39,7 +39,7 @@
export const removeModel = (ids) => {
  return request({
    url: '/api/blade-flow/model/remove',
    url: '/api/ubcs-flow/model/remove',
    method: 'post',
    params: {
      ids,
@@ -49,7 +49,7 @@
export const deployModel = (params) => {
  return request({
    url: '/api/blade-flow/model/deploy',
    url: '/api/ubcs-flow/model/deploy',
    method: 'post',
    params
  })
@@ -57,7 +57,7 @@
export const changeState = (params) => {
  return request({
    url: '/api/blade-flow/manager/change-state',
    url: '/api/ubcs-flow/manager/change-state',
    method: 'post',
    params
  })
@@ -74,7 +74,7 @@
    headers: {
      "Content-Type": "multipart/form-data"
    },
    url: '/api/blade-flow/manager/deploy-upload',
    url: '/api/ubcs-flow/manager/deploy-upload',
    method: 'post',
    data: formData
  })
@@ -82,7 +82,7 @@
export const deleteDeployment = (deploymentIds) => {
  return request({
    url: '/api/blade-flow/manager/delete-deployment',
    url: '/api/ubcs-flow/manager/delete-deployment',
    method: 'post',
    params: {
      deploymentIds,
@@ -92,7 +92,7 @@
export const deleteProcessInstance = (params) => {
  return request({
    url: '/api/blade-flow/follow/delete-process-instance',
    url: '/api/ubcs-flow/follow/delete-process-instance',
    method: 'post',
    params
  })
@@ -100,7 +100,7 @@
export const submitModel = (data) => {
  return request({
    url: '/api/blade-flow/model/submit',
    url: '/api/ubcs-flow/model/submit',
    method: 'post',
    data
  })
@@ -108,7 +108,7 @@
export const detail = (params) => {
  return request({
    url: '/api/blade-flow/model/detail',
    url: '/api/ubcs-flow/model/detail',
    method: 'get',
    params
  })
@@ -116,7 +116,7 @@
export const modelView = (params) => {
  return request({
    url: '/api/blade-flow/process/model-view',
    url: '/api/ubcs-flow/process/model-view',
    method: 'get',
    params
  })
Source/UBCS-WEB/src/api/report/report.js
@@ -2,7 +2,7 @@
export const getList = (current, size, params) => {
  return request({
    url: '/api/blade-report/report/rest/list',
    url: '/api/ubcs-report/report/rest/list',
    method: 'get',
    params: {
      ...params,
@@ -13,7 +13,7 @@
}
export const remove = (ids) => {
  return request({
    url: '/api/blade-report/report/rest/remove',
    url: '/api/ubcs-report/report/rest/remove',
    method: 'post',
    params: {
      ids,
Source/UBCS-WEB/src/api/resource/attach.js
@@ -2,7 +2,7 @@
export const getList = (current, size, params) => {
  return request({
    url: '/api/blade-resource/attach/list',
    url: '/api/ubcs-resource/attach/list',
    method: 'get',
    params: {
      ...params,
@@ -14,7 +14,7 @@
export const getDetail = (id) => {
  return request({
    url: '/api/blade-resource/attach/detail',
    url: '/api/ubcs-resource/attach/detail',
    method: 'get',
    params: {
      id
@@ -24,7 +24,7 @@
export const remove = (ids) => {
  return request({
    url: '/api/blade-resource/attach/remove',
    url: '/api/ubcs-resource/attach/remove',
    method: 'post',
    params: {
      ids,
@@ -34,7 +34,7 @@
export const add = (row) => {
  return request({
    url: '/api/blade-resource/attach/submit',
    url: '/api/ubcs-resource/attach/submit',
    method: 'post',
    data: row
  })
@@ -42,7 +42,7 @@
export const update = (row) => {
  return request({
    url: '/api/blade-resource/attach/submit',
    url: '/api/ubcs-resource/attach/submit',
    method: 'post',
    data: row
  })
Source/UBCS-WEB/src/api/resource/oss.js
@@ -2,7 +2,7 @@
export const getList = (current, size, params) => {
  return request({
    url: '/api/blade-resource/oss/list',
    url: '/api/ubcs-resource/oss/list',
    method: 'get',
    params: {
      ...params,
@@ -14,7 +14,7 @@
export const getDetail = (id) => {
  return request({
    url: '/api/blade-resource/oss/detail',
    url: '/api/ubcs-resource/oss/detail',
    method: 'get',
    params: {
      id
@@ -24,7 +24,7 @@
export const remove = (ids) => {
  return request({
    url: '/api/blade-resource/oss/remove',
    url: '/api/ubcs-resource/oss/remove',
    method: 'post',
    params: {
      ids,
@@ -34,7 +34,7 @@
export const add = (row) => {
  return request({
    url: '/api/blade-resource/oss/submit',
    url: '/api/ubcs-resource/oss/submit',
    method: 'post',
    data: row
  })
@@ -42,7 +42,7 @@
export const update = (row) => {
  return request({
    url: '/api/blade-resource/oss/submit',
    url: '/api/ubcs-resource/oss/submit',
    method: 'post',
    data: row
  })
@@ -50,7 +50,7 @@
export const enable = (id) => {
  return request({
    url: '/api/blade-resource/oss/enable',
    url: '/api/ubcs-resource/oss/enable',
    method: 'post',
    params: {
      id
Source/UBCS-WEB/src/api/resource/sms.js
@@ -2,7 +2,7 @@
export const getList = (current, size, params) => {
  return request({
    url: '/api/blade-resource/sms/list',
    url: '/api/ubcs-resource/sms/list',
    method: 'get',
    params: {
      ...params,
@@ -14,7 +14,7 @@
export const getDetail = (id) => {
  return request({
    url: '/api/blade-resource/sms/detail',
    url: '/api/ubcs-resource/sms/detail',
    method: 'get',
    params: {
      id
@@ -24,7 +24,7 @@
export const remove = (ids) => {
  return request({
    url: '/api/blade-resource/sms/remove',
    url: '/api/ubcs-resource/sms/remove',
    method: 'post',
    params: {
      ids,
@@ -34,7 +34,7 @@
export const add = (row) => {
  return request({
    url: '/api/blade-resource/sms/submit',
    url: '/api/ubcs-resource/sms/submit',
    method: 'post',
    data: row
  })
@@ -42,7 +42,7 @@
export const update = (row) => {
  return request({
    url: '/api/blade-resource/sms/submit',
    url: '/api/ubcs-resource/sms/submit',
    method: 'post',
    data: row
  })
@@ -50,7 +50,7 @@
export const enable = (id) => {
  return request({
    url: '/api/blade-resource/sms/enable',
    url: '/api/ubcs-resource/sms/enable',
    method: 'post',
    params: {
      id
@@ -60,7 +60,7 @@
export const send = (code, phones, params) => {
  return request({
    url: '/api/blade-resource/sms/endpoint/send-message',
    url: '/api/ubcs-resource/sms/endpoint/send-message',
    method: 'post',
    params: {
      code,
Source/UBCS-WEB/src/api/system/role.js
@@ -43,7 +43,7 @@
export const add = (row) => {
  return request({
    url: '/api/ubcs-system/role/submit',
    url: '/api/blade-system/role/submit',
    method: 'post',
    data: row
  })
Source/UBCS-WEB/src/api/system/user.js
@@ -137,3 +137,14 @@
    data:UserPwdstrategyVO
  })
}
// æé†’æ—¶é—´
export const check =(userId) => {
  return request({
    url: '/api/ubcs-user/check-renexpr',
    method: 'post',
    params:{
      userId
    }
  })
}
Source/UBCS-WEB/src/api/tool/code.js
@@ -2,7 +2,7 @@
export const getList = (current, size, params) => {
  return request({
    url: '/api/blade-develop/code/list',
    url: '/api/ubcs-develop/code/list',
    method: 'get',
    params: {
      ...params,
@@ -14,7 +14,7 @@
export const build = (ids) => {
  return request({
    url: '/api/blade-develop/code/gen-code',
    url: '/api/ubcs-develop/code/gen-code',
    method: 'post',
    params: {
      ids,
@@ -24,7 +24,7 @@
}
export const remove = (ids) => {
  return request({
    url: '/api/blade-develop/code/remove',
    url: '/api/ubcs-develop/code/remove',
    method: 'post',
    params: {
      ids,
@@ -34,7 +34,7 @@
export const add = (row) => {
  return request({
    url: '/api/blade-develop/code/submit',
    url: '/api/ubcs-develop/code/submit',
    method: 'post',
    data: row
  })
@@ -42,7 +42,7 @@
export const update = (row) => {
  return request({
    url: '/api/blade-develop/code/submit',
    url: '/api/ubcs-develop/code/submit',
    method: 'post',
    data: row
  })
@@ -50,7 +50,7 @@
export const copy = (id) => {
  return request({
    url: '/api/blade-develop/code/copy',
    url: '/api/ubcs-develop/code/copy',
    method: 'post',
    params: {
      id,
@@ -60,7 +60,7 @@
export const getCode = (id) => {
  return request({
    url: '/api/blade-develop/code/detail',
    url: '/api/ubcs-develop/code/detail',
    method: 'get',
    params: {
      id,
Source/UBCS-WEB/src/api/tool/datasource.js
@@ -2,7 +2,7 @@
export const getList = (current, size, params) => {
  return request({
    url: '/api/blade-develop/datasource/list',
    url: '/api/ubcs-develop/datasource/list',
    method: 'get',
    params: {
      ...params,
@@ -14,7 +14,7 @@
export const getDetail = (id) => {
  return request({
    url: '/api/blade-develop/datasource/detail',
    url: '/api/ubcs-develop/datasource/detail',
    method: 'get',
    params: {
      id
@@ -24,7 +24,7 @@
export const remove = (ids) => {
  return request({
    url: '/api/blade-develop/datasource/remove',
    url: '/api/ubcs-develop/datasource/remove',
    method: 'post',
    params: {
      ids,
@@ -34,7 +34,7 @@
export const add = (row) => {
  return request({
    url: '/api/blade-develop/datasource/submit',
    url: '/api/ubcs-develop/datasource/submit',
    method: 'post',
    data: row
  })
@@ -42,7 +42,7 @@
export const update = (row) => {
  return request({
    url: '/api/blade-develop/datasource/submit',
    url: '/api/ubcs-develop/datasource/submit',
    method: 'post',
    data: row
  })
Source/UBCS-WEB/src/api/tool/model.js
@@ -2,7 +2,7 @@
export const getList = (current, size, params) => {
  return request({
    url: '/api/blade-develop/model/list',
    url: '/api/ubcs-develop/model/list',
    method: 'get',
    params: {
      ...params,
@@ -14,7 +14,7 @@
export const getDetail = (id) => {
  return request({
    url: '/api/blade-develop/model/detail',
    url: '/api/ubcs-develop/model/detail',
    method: 'get',
    params: {
      id
@@ -24,7 +24,7 @@
export const remove = (ids) => {
  return request({
    url: '/api/blade-develop/model/remove',
    url: '/api/ubcs-develop/model/remove',
    method: 'post',
    params: {
      ids,
@@ -34,7 +34,7 @@
export const add = (row) => {
  return request({
    url: '/api/blade-develop/model/submit',
    url: '/api/ubcs-develop/model/submit',
    method: 'post',
    data: row
  })
@@ -42,7 +42,7 @@
export const update = (row) => {
  return request({
    url: '/api/blade-develop/model/submit',
    url: '/api/ubcs-develop/model/submit',
    method: 'post',
    data: row
  })
@@ -50,7 +50,7 @@
export const getTableList = (datasourceId) => {
  return request({
    url: '/api/blade-develop/model/table-list',
    url: '/api/ubcs-develop/model/table-list',
    method: 'get',
    params: {
      datasourceId,
@@ -60,7 +60,7 @@
export const getTableInfo = (modelId, datasourceId) => {
  return request({
    url: '/api/blade-develop/model/table-info',
    url: '/api/ubcs-develop/model/table-info',
    method: 'get',
    params: {
      modelId,
@@ -71,7 +71,7 @@
export const getTableInfoByName = (tableName, datasourceId) => {
  return request({
    url: '/api/blade-develop/model/table-info',
    url: '/api/ubcs-develop/model/table-info',
    method: 'get',
    params: {
      tableName,
@@ -82,7 +82,7 @@
export const getModelPrototype = (modelId, datasourceId) => {
  return request({
    url: '/api/blade-develop/model/model-prototype',
    url: '/api/ubcs-develop/model/model-prototype',
    method: 'get',
    params: {
      modelId,
@@ -93,7 +93,7 @@
export const submitModelPrototype = (row) => {
  return request({
    url: '/api/blade-develop/model-prototype/submit-list',
    url: '/api/ubcs-develop/model-prototype/submit-list',
    method: 'post',
    data: row
  })
@@ -102,7 +102,7 @@
export const prototypeDetail = (modelId) => {
  return request({
    url: '/api/blade-develop/model-prototype/select',
    url: '/api/ubcs-develop/model-prototype/select',
    method: 'get',
    params: {
      modelId,
Source/UBCS-WEB/src/api/user.js
@@ -116,12 +116,5 @@
  url: '/api/ubcs-system/tenant/tenant-map',
  method: 'get',
});
// æé†’æ—¶é—´
export const check = (userid) => request({
  url: '/api/ubcs-user/tenant/check-renexpr',
  method: 'post',
  params:{
    userid
  }
})
Source/UBCS-WEB/src/main.js
@@ -25,7 +25,8 @@
import crudCommon from '@/mixins/crud';
// ä¸šåŠ¡ç»„ä»¶
import tenantPackage from './views/system/tenantpackage';
import enupackage from "@/views/modeling/enupackage";
import Versionpackage from "@/views/modeling/Versionpackage";
// æ³¨å†Œå…¨å±€crud驱动
window.$crudCommon = crudCommon;
// åŠ è½½Vue拓展
@@ -47,6 +48,8 @@
Vue.component('avueUeditor', avueUeditor);
Vue.component('flowDesign', flowDesign);
Vue.component('tenantPackage', tenantPackage);
Vue.component('enupackage',enupackage)
Vue.component('Versionpackage',Versionpackage)
// åŠ è½½ç›¸å…³url地址
Object.keys(urls).forEach(key => {
  Vue.prototype[key] = urls[key];
Source/UBCS-WEB/src/page/index/top/index.vue
@@ -151,7 +151,7 @@
                label: 'deptName',
                value: 'id'
              },
              dicUrl: '/api/blade-system/dept/select',
              dicUrl: '/api/ubcs-system/dept/select',
              span: 24,
              display: false,
              rules: [{
@@ -168,7 +168,7 @@
                label: 'roleName',
                value: 'id'
              },
              dicUrl: '/api/blade-system/role/select',
              dicUrl: '/api/ubcs-system/role/select',
              span: 24,
              display: false,
              rules: [{
Source/UBCS-WEB/src/page/login/userlogin.vue
@@ -7,7 +7,6 @@
             label-width="0"
             status-icon
    >
      <el-form-item prop="selectInput">
        <el-select v-model="loginForm.value" placeholder="请选择组织" style="width: 326px" @change="selectchange">
          <i slot="prefix" class="el-icon-s-operation"/>
@@ -49,20 +48,20 @@
      </el-form-item>
      <!--密码修改弹出框-->
    </el-form>
    <el-dialog title="修改密码" :visible.sync="dialogFormVisible" append-to-body  >
    <el-dialog title="修改密码" :visible.sync="dialogFormVisible" append-to-body @closed="closehandle" :close-on-press-escape="false" >
      <el-form :model="form"  :rules="rules">
        <el-form-item label="原密码" :label-width="formLabelWidth" prop="oldname">
        <el-form-item label="原密码" :label-width="formLabelWidth" prop="oldPassword">
          <el-input v-model="form.oldPassword" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="新密码" :label-width="formLabelWidth" prop="newname">
        <el-form-item label="新密码" :label-width="formLabelWidth" prop="newPassword">
          <el-input v-model="form.newPassword" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="确认密码" :label-width="formLabelWidth" prop="newname1">
        <el-form-item label="确认密码" :label-width="formLabelWidth" prop="newPassword1">
          <el-input v-model="form.newPassword1" autocomplete="off"></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible = false">取 æ¶ˆ</el-button>
        <el-button @click="delok">取 æ¶ˆ</el-button>
        <el-button type="primary" @click="addok">ç¡® å®š</el-button>
      </div>
    </el-dialog>
@@ -76,6 +75,7 @@
import {info} from "@/api/system/tenant";
import {getTopUrl} from "@/util/util";
import {updatePassword} from "@/api/system/user.js"
import {removeToken} from "@/util/auth";
import md5 from "js-md5";
export default {
  name: "userlogin",
@@ -90,13 +90,13 @@
        newPassword1: '',
      },
      rules: {
        oldname: [
        oldPassword: [
          { required: true, message: '请输入原密码', trigger: 'blur' }
        ],
        newname:[
        newPassword:[
          { required: true, message: '请输入新密码', trigger: 'blur' }
        ],
        newname1:[
        newPassword1:[
          { required: true, message: '请输确认密码', trigger: 'blur' }
        ]
      },
@@ -147,10 +147,13 @@
  },
  created() {
    this.getTenant();
    //这里是浏览器的一个bug,突然出现的目前找不到原因,新的浏览器打开此项目。localStorage会少存储一个名为saber-permission的数据,少了这条数据租户管理界面会缺少几个按钮和样式
    //还有一种情况,当我们手动删除这条数据或者清空localStorage后,再刷新进入页面它也不存储这个变量,所以我就在这写死了存储,目前效果没有问题
    localStorage.setItem("saber-permission",JSON.stringify({"dataType":"object","content":{"flow_model_create":true,"flow_model_update":true,"flow_model_deploy":true,"flow_model_download":true,"flow_model_delete":true,"work_start_flow":true,"work_start_image":true,"oss_add":true,"oss_edit":true,"oss_delete":true,"oss_view":true,"oss_enable":true,"role_add":true,"role_edit":true,"role_delete":true,"role_view":true,"notice_add":true,"notice_edit":true,"notice_delete":true,"notice_view":true,"user_add":true,"user_edit":true,"user_delete":true,"user_role":true,"user_reset":true,"user_view":true,"log_usual_view":true,"code_add":true,"code_edit":true,"code_delete":true,"code_view":true,"region_add":true,"region_delete":true,"region_import":true,"region_export":true,"region_debug":true,"work_claim_sign":true,"work_claim_detail":true,"work_claim_follow":true,"work_todo_handle":true,"work_todo_detail":true,"work_todo_follow":true,"data_scope_setting":true,"datasource_add":true,"datasource_edit":true,"datasource_delete":true,"datasource_view":true,"attach_upload":true,"attach_download":true,"attach_delete":true,"dept_add":true,"dept_edit":true,"dept_delete":true,"dept_view":true,"log_api_view":true,"flow_manager_state":true,"flow_manager_image":true,"flow_manager_remove":true,"work_send_detail":true,"work_send_follow":true,"sms_add":true,"sms_edit":true,"sms_delete":true,"sms_view":true,"sms_enable":true,"api_scope_setting":true,"log_error_view":true,"post_add":true,"post_edit":true,"post_delete":true,"post_view":true,"flow_follow_delete":true,"work_done_detail":true,"work_done_follow":true,"dict_add":true,"dict_edit":true,"dict_delete":true,"dict_view":true,"dictbiz_add":true,"dictbiz_edit":true,"dictbiz_delete":true,"dictbiz_view":true,"menu_add":true,"menu_edit":true,"menu_delete":true,"menu_view":true,"topmenu_add":true,"topmenu_edit":true,"topmenu_delete":true,"topmenu_view":true,"topmenu_setting":true,"param_add":true,"param_edit":true,"param_delete":true,"param_view":true,"tenant_add":true,"tenant_edit":true,"tenant_delete":true,"tenant_view":true,"client_add":true,"client_edit":true,"client_delete":true,"client_view":true},"datetime":1678352291697}))
  },
  mounted() {
    //在mounted获取首页下拉菜单数据
    this.$axios.get('/api/blade-system/tenant/tenant-map').then(res => {
    this.$axios.get('/api/ubcs-system/tenant/tenant-map').then(res => {
      if (res.data.code == 200) {
        this.loginForm.region = res.data.data
      }
@@ -160,7 +163,7 @@
    'loginForm.deptId'() {
      const column = this.findObject(this.userOption.column, "deptId");
      if (this.loginForm.deptId.includes(",")) {
        column.dicUrl = `/api/blade-system/dept/select?deptId=${this.loginForm.deptId}`;
        column.dicUrl = `/api/ubcs-system/dept/select?deptId=${this.loginForm.deptId}`;
        column.display = true;
      } else {
        column.dicUrl = '';
@@ -169,7 +172,7 @@
    'loginForm.roleId'() {
      const column = this.findObject(this.userOption.column, "roleId");
      if (this.loginForm.roleId.includes(",")) {
        column.dicUrl = `/api/blade-system/role/select?roleId=${this.loginForm.roleId}`;
        column.dicUrl = `/api/ubcs-system/role/select?roleId=${this.loginForm.roleId}`;
        column.display = true;
      } else {
        column.dicUrl = '';
@@ -181,15 +184,25 @@
  },
  props: [],
  methods: {
    // è¿™ä¸ªå…¶å®žè·Ÿä¸‹é¢delok一个效果,怕不实现写了两次,
    closehandle(){
      removeToken()
    },
    delok(){
      //点击取消或者x æ¸…除token关闭弹窗 æ¸…除token后会自动重新获取用户信息 è¿™é‡Œæ²¡æœ‰é‡æ–°è°ƒç”¨æ–¹æ³•,因为下面逻辑有点绕,怕重新掉有bug直接清除token重新获取用户信息
      this.dialogFormVisible = false;
      removeToken()
    },
    // ç‚¹å‡»ç¡®å®šä¿®æ”¹å¯†ç 
    addok(){
      this.dialogFormVisible = false
      updatePassword(md5(this.form.oldPassword), this.form.newPassword, this.form.newPassword1).then(res=>{
        console.log(res)
        if(res.data.code==200){
          this.$message({
            type:"success",
            message:"修改成功!"
          })
          this.$router.push({path: this.tagWel.value})
        }
      })
@@ -197,7 +210,6 @@
    // ç»‘定下拉菜单动态ID
    selectchange(value) {
      this.loginForm.tenantId = value
      console.log(this.loginForm.tenantId)
    },
    showPassword() {
      this.passwordType === ""
@@ -217,6 +229,7 @@
    },
    handleLogin: function () {
      this.userInfo = this.$store.state.upadatastatus
      console.log(this.userInfo)
      this.$refs.loginForm.validate(valid => {
        if (valid) {
          const loading = this.$loading({
@@ -225,32 +238,39 @@
            spinner: "el-icon-loading"
          });
          this.$store.dispatch("LoginByUsername", this.loginForm).then(() => {
            if (this.userInfo.strategyUpdateStatus != 0) {
              if (this.website.switchMode) {
                const deptId = this.userInfo.dept_id;
                const roleId = this.userInfo.role_id;
                if (deptId.includes(",") || roleId.includes(",")) {
                  this.loginForm.deptId = deptId;
                  this.loginForm.roleId = roleId;
                  this.userBox = true;
                  this.$store.dispatch("LogOut").then(() => {
                    loading.close();
                  });
            //上面又加了一层判断的意思是如果是超管不进行判断 æš‚时加上这个判断的话,登录会有bug,点击登录刷新后才进入,先简单在下面判断是否为空,只有超管的strategyUpdateStatus为空
            // if(this.userInfo.user_id != '0' && this.userInfo.tenant_id !== '000000'){
              //判断如果不等于0就是策略密码没有修改走下面逻辑
              if (this.userInfo.strategyUpdateStatus == 0 || this.userInfo.strategyUpdateStatus==null) {
                if (this.website.switchMode) {
                  const deptId = this.userInfo.dept_id;
                  const roleId = this.userInfo.role_id;
                  if (deptId.includes(",") || roleId.includes(",")) {
                    this.loginForm.deptId = deptId;
                    this.loginForm.roleId = roleId;
                    this.userBox = true;
                    this.$store.dispatch("LogOut").then(() => {
                      loading.close();
                    });
                  }
                }
                return false
                this.$router.push({path: this.tagWel.value});
              } else {
                //等于0说明密码策略被修改,提示用户修改密码,给一个修改弹框
                this.$message({
                  type: "warning",
                  message: "密码策略已被修改,请重新修改密码!"
                })
                // 1.5秒后执行 å¼¹å‡ºæ¡†æ˜¾ç¤º
                setTimeout(()=>{
                  this.dialogFormVisible=true
                },1500)
              }
              this.$router.push({path: this.tagWel.value});
            } else {
              this.$message({
                type: "warning",
                message: "密码策略已被修改,请重新修改密码!"
              })
             setTimeout(()=>{
               this.dialogFormVisible=true
             },1500)
            }
            console.log(this.userInfo)
            // }
            //把判断密码策略修改的值存进本地,然后再路由权限js文件里面获取再做判断,不然刷新会进入首页(因为在有id和token的情况下,刷新页面或者进入登录页会自动进入首页)
            //index页面也可以用到这个值来判断是否是超管身份登录来判断是否提醒过期时间等
            localStorage.setItem("updataid",JSON.stringify(this.userInfo))
            loading.close();
          }).catch(() => {
            loading.close();
Source/UBCS-WEB/src/permission.js
@@ -13,48 +13,53 @@
router.beforeEach((to, from, next) => {
  const meta = to.meta || {};
  const isMenu = meta.menu === undefined ? to.query.menu : meta.menu;
  const updataid=JSON.parse(localStorage.getItem("updataid"))
  store.commit('SET_IS_MENU', isMenu === undefined);
  if (getToken()) {
    if (store.getters.isLock && to.path !== lockPage) { //如果系统激活锁屏,全部跳转到锁屏页
      next({path: lockPage})
    } else if (to.path === '/login') { //如果登录成功访问登录页跳转到主页
      next({path: '/'})
    } else {
      //如果用户信息为空则获取用户信息,获取用户信息失败,跳转到登录页
      if (store.getters.token.length === 0) {
        store.dispatch('FedLogOut').then(() => {
          next({path: '/login'})
        })
    //拿到本地存储的密码策略修改值
      if (store.getters.isLock && to.path !== lockPage) { //如果系统激活锁屏,全部跳转到锁屏页
        next({path: lockPage})
      } else if (to.path === '/login' && updataid.strategyUpdateStatus !=0) {//如果登录成功访问登录页跳转到主页
        //这里再加上判断 å¦‚果密码策略修改后没有改密码的情况下刷新页面不会进入首页
        next({path: '/'})
      } else {
        const value = to.query.src || to.fullPath;
        const label = to.query.name || to.name;
        const meta = to.meta || router.$avueRouter.meta || {};
        const i18n = to.query.i18n;
        if (to.query.target) {
          window.open(value)
        } else if (meta.isTab !== false && !validatenull(value) && !validatenull(label)) {
          store.commit('ADD_TAG', {
            label: label,
            value: value,
            params: to.params,
            query: to.query,
            meta: (() => {
              if (!i18n) {
                return meta
              }
              return {
                i18n: i18n
              }
            })(),
            group: router.$avueRouter.group || []
          });
        //如果用户信息为空则获取用户信息,获取用户信息失败,跳转到登录页
        if (store.getters.token.length === 0 ) {
          store.dispatch('FedLogOut').then(() => {
            next({path: '/login'})
          })
        } else {
          const value = to.query.src || to.fullPath;
          const label = to.query.name || to.name;
          const meta = to.meta || router.$avueRouter.meta || {};
          const i18n = to.query.i18n;
          if (to.query.target) {
            window.open(value)
          } else if (meta.isTab !== false && !validatenull(value) && !validatenull(label)) {
            store.commit('ADD_TAG', {
              label: label,
              value: value,
              params: to.params,
              query: to.query,
              meta: (() => {
                if (!i18n) {
                  return meta
                }
                return {
                  i18n: i18n
                }
              })(),
              group: router.$avueRouter.group || []
            });
          }
          next()
        }
        next()
      }
    }
  } else {
    //判断是否需要认证,没有登录访问去登录页
    if (meta.isAuth === false) {
    if (meta.isAuth === false ) {
      next()
    } else {
      next('/login')
Source/UBCS-WEB/src/store/modules/user.js
@@ -43,7 +43,10 @@
    menuAll: getStore({name: 'menuAll'}) || [],
    token: getStore({name: 'token'}) || '',
    refreshToken: getStore({name: 'refreshToken'}) || '',
    upadatastatus:[]
    upadatastatus:[],
    updataid:{
      id:""
    }
  },
  actions: {
    //根据用户名登录
@@ -228,6 +231,9 @@
    },
  },
  mutations: {
    byid:(state,id)=>{
      state.updataid=id
    },
    SET_TOKEN: (state, token) => {
      setToken(token);
      state.token = token;
@@ -264,8 +270,8 @@
      setStore({name: 'tenantId', content: state.tenantId})
    },
    SET_USER_INFO: (state, userInfo) => {
      console.log('hahahha',userInfo)
      state.upadatastatus=userInfo
      console.log(state.upadatastatus)
      if (validatenull(userInfo.avatar)) {
        userInfo.avatar = "/img/bg/img-logo.png";
      }
Source/UBCS-WEB/src/views/authority/apiscope.vue
@@ -154,7 +154,7 @@
              label: "上级菜单",
              prop: "parentId",
              type: "tree",
              dicUrl: "/api/blade-system/menu/tree",
              dicUrl: "/api/ubcs-system/menu/tree",
              hide: true,
              props: {
                label: "title"
@@ -348,7 +348,7 @@
            {
              label: "接口类型",
              type: "select",
              dicUrl: "/api/blade-system/dict/dictionary?code=api_scope_type",
              dicUrl: "/api/ubcs-system/dict/dictionary?code=api_scope_type",
              props: {
                label: "dictValue",
                value: "dictKey"
Source/UBCS-WEB/src/views/authority/datascope.vue
@@ -158,7 +158,7 @@
              label: "上级菜单",
              prop: "parentId",
              type: "tree",
              dicUrl: "/api/blade-system/menu/tree",
              dicUrl: "/api/ubcs-system/menu/tree",
              hide: true,
              props: {
                label: "title"
@@ -353,7 +353,7 @@
            {
              label: "规则类型",
              type: "select",
              dicUrl: "/api/blade-system/dict/dictionary?code=data_scope_type",
              dicUrl: "/api/ubcs-system/dict/dictionary?code=data_scope_type",
              props: {
                label: "dictValue",
                value: "dictKey"
Source/UBCS-WEB/src/views/authority/role.vue
@@ -136,7 +136,7 @@
              label: "所属租户",
              prop: "tenantId",
              type: "tree",
              dicUrl: "/api/blade-system/tenant/select",
              dicUrl: "/api/ubcs-system/tenant/select",
              addDisplay: false,
              editDisplay: false,
              viewDisplay: website.tenantMode,
Source/UBCS-WEB/src/views/base/region.vue
@@ -143,7 +143,7 @@
              label: "区划等级",
              prop: "regionLevel",
              type: "radio",
              dicUrl: "/api/blade-system/dict/dictionary?code=region",
              dicUrl: "/api/ubcs-system/dict/dictionary?code=region",
              props: {
                label: "dictValue",
                value: "dictKey"
@@ -193,7 +193,7 @@
                res: 'data'
              },
              tip: '请上传 .xls,.xlsx æ ‡å‡†æ ¼å¼æ–‡ä»¶',
              action: "/api/blade-system/region/import-region"
              action: "/api/ubcs-system/region/import-region"
            },
            {
              label: "数据覆盖",
@@ -245,7 +245,7 @@
                value: 'code'
              },
              cascader: ['city'],
              dicUrl: '/api/blade-system/region/select',
              dicUrl: '/api/ubcs-system/region/select',
              span: 24,
            },
            {
@@ -258,7 +258,7 @@
              },
              cascader: ['district'],
              dicFlag: false,
              dicUrl: '/api/blade-system/region/select?code={{province}}',
              dicUrl: '/api/ubcs-system/region/select?code={{province}}',
              span: 24,
            },
            {
@@ -270,7 +270,7 @@
                value: 'code'
              },
              dicFlag: false,
              dicUrl: '/api/blade-system/region/select?code={{city}}',
              dicUrl: '/api/ubcs-system/region/select?code={{city}}',
              span: 24,
            }
          ]
@@ -284,7 +284,7 @@
      'excelForm.isCovered'() {
        if (this.excelForm.isCovered !== '') {
          const column = this.findObject(this.excelOption.column, "excelFile");
          column.action = `/api/blade-system/region/import-region?isCovered=${this.excelForm.isCovered}`;
          column.action = `/api/ubcs-system/region/import-region?isCovered=${this.excelForm.isCovered}`;
        }
      }
    },
@@ -399,14 +399,14 @@
          type: "warning"
        }).then(() => {
          NProgress.start();
          exportBlob(`/api/blade-system/region/export-region?${this.website.tokenHeader}=${getToken()}`).then(res => {
          exportBlob(`/api/ubcs-system/region/export-region?${this.website.tokenHeader}=${getToken()}`).then(res => {
            downloadXls(res.data, `行政区划数据${dateNow()}.xlsx`);
            NProgress.done();
          })
        });
      },
      handleTemplate() {
        exportBlob(`/api/blade-system/region/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => {
        exportBlob(`/api/ubcs-system/region/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => {
          downloadXls(res.data, "行政区划模板.xlsx");
        })
      },
Source/UBCS-WEB/src/views/desk/notice.vue
@@ -80,7 +80,7 @@
            {
              label: "通知类型",
              type: "select",
              dicUrl: "/api/blade-system/dict/dictionary?code=notice",
              dicUrl: "/api/ubcs-system/dict/dictionary?code=notice",
              props: {
                label: "dictValue",
                value: "dictKey"
@@ -130,7 +130,7 @@
              prop: "content",
              component: 'AvueUeditor',
              options: {
                action: '/api/blade-resource/oss/endpoint/put-file',
                action: '/api/ubcs-resource/oss/endpoint/put-file',
                props: {
                  res: "data",
                  url: "link",
Source/UBCS-WEB/src/views/flow/deploy.vue
@@ -25,7 +25,7 @@
              label: '流程类型',
              prop: 'flowCategory',
              type: 'select',
              dicUrl: `/api/blade-system/dict/dictionary?code=flow`,
              dicUrl: `/api/ubcs-system/dict/dictionary?code=flow`,
              props: {
                label: "dictValue",
                value: "dictKey"
@@ -71,7 +71,7 @@
              prop: "tenantId",
              type: "tree",
              multiple: true,
              dicUrl: "/api/blade-system/tenant/select",
              dicUrl: "/api/ubcs-system/tenant/select",
              props: {
                label: "tenantName",
                value: "tenantId"
@@ -97,7 +97,7 @@
                res: 'data'
              },
              tip: '请上传 bpmn20.xml æ ‡å‡†æ ¼å¼æ–‡ä»¶',
              action: '/api/blade-flow/manager/check-upload'
              action: '/api/ubcs-flow/manager/check-upload'
            },
          ]
        }
Source/UBCS-WEB/src/views/flow/manager.vue
@@ -158,7 +158,7 @@
              label: "流程分类",
              type: "select",
              row: true,
              dicUrl: "/api/blade-system/dict/dictionary?code=flow",
              dicUrl: "/api/ubcs-system/dict/dictionary?code=flow",
              props: {
                label: "dictValue",
                value: "dictKey"
Source/UBCS-WEB/src/views/flow/model.vue
@@ -125,7 +125,7 @@
          {
            label: "流程类型",
            type: "select",
            dicUrl: "/api/blade-system/dict/dictionary?code=flow",
            dicUrl: "/api/ubcs-system/dict/dictionary?code=flow",
            props: {
              label: "dictValue",
              value: "dictKey"
@@ -170,7 +170,7 @@
            prop: "tenantId",
            type: "tree",
            multiple: true,
            dicUrl: "/api/blade-system/tenant/select",
            dicUrl: "/api/ubcs-system/tenant/select",
            props: {
              label: "tenantName",
              value: "tenantId"
Source/UBCS-WEB/src/views/modeling/Business.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,111 @@
<template>
  <div>
    <avue-form :model="form" :rules="rules">
      <avue-form-item label="姓名" prop="name">
        <el-input v-model="form.name"></el-input>
      </avue-form-item>
      <avue-form-item label="学历" prop="education">
        <el-select v-model="form.education" placeholder="请选择">
          <el-option label="博士" value="博士"></el-option>
          <el-option label="硕士" value="硕士"></el-option>
          <el-option label="本科" value="本科"></el-option>
          <el-option label="大专" value="大专"></el-option>
          <el-option label="中专" value="中专"></el-option>
        </el-select>
      </avue-form-item>
      <avue-form-item label="工作经历">
        <table class="table">
          <thead>
          <tr>
            <th>公司</th>
            <th>职位</th>
            <th>起止时间</th>
          </tr>
          </thead>
          <tbody>
          <tr v-for="(item, index) in form.workExperience" :key="index">
            <td>
              <el-input v-model="item.company"></el-input>
            </td>
            <td>
              <el-input v-model="item.position"></el-input>
            </td>
            <td>
              <el-date-picker
                v-model="item.dateRange"
                range-separator="至"
                type="daterange"
                start-placeholder="开始日期"
                end-placeholder="结束日期"
                format="yyyy-MM-dd"
              ></el-date-picker>
            </td>
          </tr>
          </tbody>
        </table>
      </avue-form-item>
    </avue-form>
  </div>
</template>
<script>
export default {
  name: "Business",
  data(){
    return {
      form: {
        name: "",
        education: "",
        workExperience: [
          { company: "", position: "", dateRange: [] },
          { company: "", position: "", dateRange: [] },
        ],
      },
      rules: {
        name: [{ required: true, message: "请输入姓名", trigger: "blur" }],
        education: [{ required: true, message: "请选择学历", trigger: "change" }],
        "workExperience.0.company": [
          { required: true, message: "请输入公司名称", trigger: "blur" },
        ],
        "workExperience.0.position": [
          { required: true, message: "请输入职位名称", trigger: "blur" },
        ],
        "workExperience.0.dateRange": [
          { required: true, message: "请选择起止时间", trigger: "change" },
        ],
        "workExperience.1.company": [
          { required: true, message: "请输入公司名称", trigger: "blur" },
        ],
        "workExperience.1.position": [
          { required: true, message: "请输入职位名称", trigger: "blur" },
        ],
        "workExperience.1.dateRange": [
          { required: true, message: "请选择起止时间", trigger: "change" },
        ],
      },
    }
  }
}
</script>
<style scoped>
.table {
  width: 100%;
  border-collapse: collapse;
}
.table th,
.table td {
  padding: 10px;
  border: 1px solid #ccc;
}
.table th {
  background-color: #f0f0f0;
  font-weight: bold;
}
</style>
Source/UBCS-WEB/src/views/modeling/Relations.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
<template>
<p>对象关系类型</p>
</template>
<script>
export default {
  name: "Relations"
}
</script>
<style scoped>
</style>
Source/UBCS-WEB/src/views/modeling/Version.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,197 @@
<template>
  <basic-container>
    <avue-crud ref="crud"
               v-model="form"
               :data="data"
               :option="option"
               :page.sync="page"
               @on-load="getList"
               @row-update="rowUpdate"
               @row-save="rowSave"
               @row-del="rowDel"
               @refresh-change="refreshChange"
               @search-reset="searchChange"
               @search-change="searchChange">
      <template slot="menuLeft">
        <el-tooltip class="item" effect="dark" content="查找版本规则使用范围" placement="top">
          <el-button size="small"
                     plain
                     type="primary"
                     icon="el-icon-zoom-in"
                     @click="handleSearch">查看使用范围
          </el-button>
        </el-tooltip>
      </template>>
    </avue-crud>
    <el-dialog title="查看使用范围"
               append-to-body
               :visible.sync="packageSearchBox"
               width="1200px">
      <versionpackage></versionpackage>
    </el-dialog>
  </basic-container>
</template>
<script>
export default {
  name: "Version",
  data(){
    return {
      //查看使用范围
      packageSearchBox:false,
      //分页数据
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 100
      },
      data:[
        {
          name:"测试1",
          tag:"测试",
          char:"测试",
          Initial:"测试",
          Step:"测试",
          prefix:"测试",
          suffix:"测试",
          desc:"测试"
        },
        {
          name:"测试2",
          tag:"测试",
          char:"测试",
          Initial:"测试",
          Step:"测试",
          prefix:"测试",
          suffix:"测试",
          desc:"测试"
        },
        {
          name:"测试3",
          tag:"测试",
          char:"测试",
          Initial:"测试",
          Step:"测试",
          prefix:"测试",
          suffix:"测试",
          desc:"测试"
        }
      ],
      form:{},
      option:{
        headerAlign:'center',
        align: 'center',
        border: true,
        index: true,
        searchMenuSpan:5,
        column:[
          {
            label:"名称",
            prop:"name",
            search:true,
          },
          {
            label: "标签",
            prop:"tag"
          },
          {
            label:"跳跃字符",
            prop:"char"
          },
          {
            label: "初始值",
            prop:"Initial"
          },
          {
            label:"步长",
            prop:"Step"
          },
          {
            label: "前缀",
            prop:"prefix"
          },
          {
            label: "后缀",
            prop: "suffix"
          },
          {
            label: "描述",
            prop:"desc",
            type:"textarea"
          }
        ]
      }
    }
  },
  methods:{
    handleSearch(){
      this.packageSearchBox=true
    },
    // getList() {
    //   this.loading = true;
    //   const data = Object.assign({
    //     pageNum: this.page.currentPage,
    //     pageSize: this.page.pageSize,
    //   }, this.params)
    //   this.data = [];
    //   getList(data).then(res => {
    //     const data = res.data.data
    //     this.loading = false;
    //     this.page.total = data.total;
    //     const result = data.list;
    //     this.data = result;
    //   })
    // },
    rowSave(row, done, loading) {
      add(Object.assign({
        createUser: this.userInfo.name
      }, row)).then(() => {
        this.$message.success('新增成功')
        done();
        this.getList();
      }).catch(() => {
        loading()
      })
    },
    rowUpdate(row, index, done, loading) {
      update(Object.assign({
        updateUser: this.userInfo.name
      }, row)).then(() => {
        this.$message.success('修改成功')
        done()
        this.getList();
      }).catch(() => {
        loading()
      })
    },
    rowDel(row) {
      this.$confirm('此操作将永久删除, æ˜¯å¦ç»§ç»­?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        return del(row.id)
      }).then(() => {
        this.$message.success('删除成功')
        this.getList();
      })
    },
    searchChange(params, done) {
      if (done) done();
      this.params = params;
      this.page.currentPage = 1;
      this.getList();
      this.$message.success('搜索成功')
    },
    refreshChange() {
      this.getList();
      this.$message.success('刷新成功')
    }
  }
}
</script>
<style scoped>
</style>
Source/UBCS-WEB/src/views/modeling/Versionpackage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
<template>
  <basic-container>
    <avue-crud ref="crud"
               v-model="form"
               :data="data"
               :option="option"
               @on-load="getList"
               @refresh-change="refreshChange"
               @search-change="searchChange"
    >
    </avue-crud>
  </basic-container>
</template>
<script>
export default {
  name: "Versionpackage.vue",
  data(){
    return {
      data:[
        {
          name:"测试1",
          source:"测试1",
          shows:"测试1"
        },
        {
          name:"测试2",
          source:"测试2",
          shows:"测试2"
        },
        {
          name:"测试3",
          source:"测试3",
          shows:"测试3"
        },
        {
          name:"测试4",
          source:"测试4",
          shows:"测试4"
        },
      ],
      form:{},
      option:{
        height:300,
        headerAlign:'center',
        align: 'center',
        border: true,
        menu: false,
        index: true,
        searchMenuSpan:6,
        addBtn:false,
        indexFixed:false,
        menuFixed:false,
        column:[
          {
            label:"名称",
            prop:"name",
          },
          {
            label:"来源",
            prop:"source",
            search:true
          },
          {
            label:"说明",
            prop:"shows",
          },
        ]
      }
    }
  },
  methods:{
    //搜索
    searchChange(params, done) {
      if (done) done();
      this.params = params;
      this.page.currentPage = 1;
      this.getList();
      this.$message.success('搜索成功')
    },
  }
}
</script>
<style scoped>
</style>
Source/UBCS-WEB/src/views/modeling/cycle.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
<template>
  <div>
  <p>生命周期模型</p>
  <el-button @click="tabs=!tabs">转化</el-button><br /><br />
  <avue-form @tab-click="handleTabClick" :option="option" v-model="form" @submit="handleSubmit">
    <template slot="group1Header">
      <h4>自定义表头</h4>
    </template>
  </avue-form>
  </div>
</template>
<script>
export default {
  name: "cycle.vue",
  data(){
    return{
      tabs:true,
      form:{
        text:'文本',
        text1:'文本1',
        text2:'文本2',
        text3:'文本3',
      },
    }
  },
  computed:{
    option(){
      return{
        tabs:this.tabs,
        tabsActive:2,
        column: [{
          label: '内容1',
          prop: 'text1',
        }],
        group:[
          {
            icon:'el-icon-info',
            label: '分组1',
            prop: 'group1',
            column: [{
              label: '内容1',
              prop: 'text1',
            }]
          },{
            icon:'el-icon-info',
            label: '分组2',
            prop: 'group2',
            column: [{
              label: '选项卡2',
              prop: 'text2',
            }, {
              label: '选项卡3',
              prop: 'text3',
            }]
          }
        ]
      }
    }
  }
}
</script>
<style scoped>
</style>
Source/UBCS-WEB/src/views/modeling/enumeration.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,191 @@
<template>
  <basic-container>
    <avue-crud ref="crud"
               v-model="form"
               :data="data"
               :option="option"
               :page.sync="page"
               @on-load="getList"
               @row-update="rowUpdate"
               @row-save="rowSave"
               @row-del="rowDel"
               @refresh-change="refreshChange"
               @search-reset="searchChange"
               @search-change="searchChange">
      <template slot-scope="scope" slot="defaultForm">
        <enupackage></enupackage>
      </template>
    </avue-crud>
  </basic-container>
</template>
<script>
export default {
  name: "enumeration.vue",
  data() {
    return {
      form: {},
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 100
      },
      packageSettingBox:false,
      data:[
        {
          name:"1",
          tag:"1",
          back:"1"
        },
        {
          name:"2",
          tag:"2",
          back:"2"
        },
        {
          name:"3",
          tag:"3",
          back:"3"
        }
      ],
      option: {
        headerAlign: 'center',
        align: 'center',
        border: true,
        index: true,
        tabs:true,
        rowKey:'id',
        searchMenuSpan:8,
        column:[
          {
            label:"枚举名称",
            prop:"name",
            display:false,
            search:true,
          },
          {
            label: "标签",
            prop:"tag",
            display:false
          },
          {
            label: "返回类型",
            prop:"back",
            display:false
          },
        ],
        group:[
          {
            label:"枚举信息",
            prop:"Information",
            column:[
              {
                label:"名称",
                prop:"name",
              },
              {
                label:"标签",
                prop:"tag",
              },
              {
                label:"类型",
                prop:"back",
              },
              {
                label:"长度",
                prop:"length",
              }
            ]
          },
          {
            label: "枚举项",
            prop:"InformItem",
            column: [
              {
                //默认插槽
                prop:"default",
                span:24,
                labelWidth:5
              }
            ]
          }
        ]
      }
    }
  },
  methods: {
    onebtn(){
        this.packageSettingBox=true
    },
    // getList() {
    //   this.loading = true;
    //   const data = Object.assign({
    //     pageNum: this.page.currentPage,
    //     pageSize: this.page.pageSize,
    //   }, this.params)
    //   this.data = [];
    //   getList(data).then(res => {
    //     const data = res.data.data
    //     this.loading = false;
    //     this.page.total = data.total;
    //     const result = data.list;
    //     this.data = result;
    //   })
    // },
    rowSave(row, done, loading) {
      add(Object.assign({
        createUser: this.userInfo.name
      }, row)).then(() => {
        this.$message.success('新增成功')
        done();
        this.getList();
      }).catch(() => {
        loading()
      })
    },
    rowUpdate(row, index, done, loading) {
      update(Object.assign({
        updateUser: this.userInfo.name
      }, row)).then(() => {
        this.$message.success('修改成功')
        done()
        this.getList();
      }).catch(() => {
        loading()
      })
    },
    rowDel(row) {
      this.$confirm('此操作将永久删除, æ˜¯å¦ç»§ç»­?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        return del(row.id)
      }).then(() => {
        this.$message.success('删除成功')
        this.getList();
      })
    },
    searchChange(params, done) {
      if (done) done();
      this.params = params;
      this.page.currentPage = 1;
      this.getList();
      this.$message.success('搜索成功')
    },
    refreshChange() {
      this.getList();
      this.$message.success('刷新成功')
    }
  }
}
</script>
<style lang="scss">
</style>
Source/UBCS-WEB/src/views/modeling/enupackage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,112 @@
<template>
 <basic-container>
   <avue-crud ref="crud"
              v-model="form"
              :data="data"
              :option="option"
              @on-load="getList"
              @row-update="rowUpdate"
              @row-save="rowSave"
              @row-del="rowDel"
              >
   </avue-crud>
 </basic-container>
</template>
<script>
export default {
  name: "enupackage.vue",
  data(){
    return {
      data:[
        {
          enuName:"测试1",
          desc:"测试1",
          enuItem:"测试1"
        },
        {
          enuName:"测试2",
          desc:"测试2",
          enuItem:"测试2"
        },
        {
          enuName:"测试3",
          desc:"测试3",
          enuItem:"测试3"
        },
        {
          enuName:"测试4",
          desc:"测试4",
          enuItem:"测试4"
        },
      ],
      form:{},
      option:{
        height:300,
        headerAlign:'center',
        align: 'center',
        border: true,
        index: true,
        indexFixed:false,
        menuFixed:false,
        column:[
          {
            label:"枚举项名称",
            prop:"enuName",
          },
          {
            label:"枚举项值",
            prop:"enuItem",
          },
          {
            label:"描述",
            prop:"desc",
            type:"textarea"
          },
        ]
      }
    }
  },
  methods:{
    rowSave(row, done, loading) {
      add(Object.assign({
        createUser: this.userInfo.name
      }, row)).then(() => {
        this.$message.success('新增成功')
        done();
        this.getList();
      }).catch(() => {
        loading()
      })
    },
    rowUpdate(row, index, done, loading) {
      update(Object.assign({
        updateUser: this.userInfo.name
      }, row)).then(() => {
        this.$message.success('修改成功')
        done()
        this.getList();
      }).catch(() => {
        loading()
      })
    },
    rowDel(row) {
      this.$confirm('此操作将永久删除, æ˜¯å¦ç»§ç»­?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        return del(row.id)
      }).then(() => {
        this.$message.success('删除成功')
        this.getList();
      })
    },
  }
}
</script>
<style scoped>
</style>
Source/UBCS-WEB/src/views/modeling/original.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,549 @@
<template>
  <basic-container>
    <avue-crud v-model="form" :option="option" :data="data" ref="crud"   :before-open="beforeOpen" @on-load="onLoad" @row-save="rowSave" @row-update="rowUpdate" @row-del="rowDel" :page.sync="page">
      <template slot-scope="{row,index,type}" slot="hideboxForm">
        <avue-form :option="option.codomainoption"></avue-form>
        <div v-if="tablefalge">
          <el-input style="width: 140px;margin-left: 300px"></el-input>
          <el-button style="margin-left: 15px" type="primary">搜索</el-button>
          <el-table
            ref="multipleTable"
            :data="tableData"
            tooltip-effect="dark"
            style="width: 100%"
            max-height="510"
            @selection-change="handleSelectionChange">
            <el-table-column
              type="selection"
              width="55">
            </el-table-column>
            <el-table-column
              prop="name"
              label="业务类型名"
            >
            </el-table-column>
            <el-table-column
              prop="label"
              label="标签"
              show-overflow-tooltip>
            </el-table-column>
            <el-table-column
              prop="father"
              label="父类"
              show-overflow-tooltip>
            </el-table-column>
            <el-table-column
              prop="rules"
              label="版本规则"
              show-overflow-tooltip>
            </el-table-column>
            <el-table-column
              prop="cycle"
              label="生命周期"
              show-overflow-tooltip>
            </el-table-column>
          </el-table>
          <el-button style="margin-left: 320px;margin-top: 13px" type="primary">确定</el-button>
          <el-button>取消</el-button>
        </div>
        <div  v-if="!tablefalge">
          <el-input style="width: 140px;margin-left: 300px"></el-input>
          <el-button style="margin-left: 15px" type="primary">搜索</el-button>
          <el-table
            :data="tableDatas"
            stripe
            style="width: 100%">
            <el-table-column
              type="selection"
              width="55">
            </el-table-column>
            <el-table-column
              prop="name"
              label="链接类型">
            </el-table-column>
          </el-table>
          <el-button style="margin-left: 320px;margin-top: 13px" type="primary">确定</el-button>
          <el-button>取消</el-button>
        </div>
<!--        <div v-if="tablefalge">-->
<!--          <el-button style="margin-left: 320px;margin-top: 13px" type="primary">确定</el-button>-->
<!--          <el-button>取消</el-button>-->
<!--        </div>-->
      </template>
    </avue-crud>
  </basic-container>
</template>
<script>
export default {
  name: "passwords.vue",
  data() {
    return {
      tablefalge:false,
      tableDatas: [ {
        name: 'input',
      }, {
        name: 'checkbox',
      }, {
        name: 'switch',
      }],
      tableData: [{
        name: 'abc',
        label: '客户',
        father:'客户',
        rules:'规则',
        cycle:'cba'
      },
        {
          name: 'abc',
          label: '客户',
          father:'客户',
          rules:'规则',
          cycle:'cba'
        },
        {
          name: 'abc',
          label: '客户',
          father:'客户',
          rules:'规则',
          cycle:'cba'
        },
        {
          name: 'abc',
          label: '客户',
          father:'客户',
          rules:'规则',
          cycle:'cba'
        },
        {
          name: 'abc',
          label: '客户',
          father:'客户',
          rules:'规则',
          cycle:'cba'
        },
        {
          name: 'abc',
          label: '客户',
          father:'客户',
          rules:'规则',
          cycle:'cba'
        },
        {
          name: 'abc',
          label: '客户',
          father:'客户',
          rules:'规则',
          cycle:'cba'
        },
        {
          name: 'abc',
          label: '客户',
          father:'客户',
          rules:'规则',
          cycle:'cba'
        },   {
          name: 'abc',
          label: '客户',
          father:'客户',
          rules:'规则',
          cycle:'cba'
        },
        {
          name: 'abc',
          label: '客户',
          father:'客户',
          rules:'规则',
          cycle:'cba'
        },],
      form:{},
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 100
      },
      appflage:true,
      data: [
        {
          name:"a",
          prop:"VTstring",
          admin:"默认",
          desc:"测试A"
        },
        {
          name:"b",
          prop:"VTstring",
          admin:"默认",
          desc:"测试B"
        },
        {
          name:"c",
          prop:"VTstring",
          admin:"默认",
          desc:"测试C"
        },
        {
          name:"d",
          prop:"VTstring",
          admin:"默认",
          desc:"测试D"
        }
      ],
      option:{
        selection: true,
        dialogType:'drawer',
        headerAlign: 'center',
        border: true,
        index: true,
        rowKey:'id',
        tabs: true,
        codomainoption:{
          submitBtn: false,
          emptyBtn: false,
          column: [
            {
              placeholder:"请选择值域",
              span:24,
              label: '值域',
              prop: 'select',
              type:"select",
              value:0,
              change:this.selectChange,
              dicData:[
                {
                  label:"业务类型",
                  value:0
                },
                {
                  label:"链接类型",
                  value:1
                },
              ]},
            {
              label: "选择版本",
              prop:"banben",
              type:'select',
              display:false,
              dicData: [
                {
                  label: '当前版本次',
                  value:0
                },
                {
                  label: '最新版本次',
                  value:1
                }
              ]
            }
          ]
        },
        column:[
          {
            label: '属性名',
            prop: 'name',
            align: 'left',
            display:false
          },
          {
            label: '标签',
            prop: 'tag',
            hide:true,
            display: false
          },
          {
            label: '是否使用枚举',
            prop: 'isnot',
            type: 'switch',
            hide:true,
            labelWidth: 132,
            display: false,
            dicData:[{
              label:'是',
              value:0
            },{
              label:'否',
              value:1
            }]
          },
          {
            label: '属性类型',
            prop: 'prop',
            type:"select",
            display: false,
            dicData:[
              {
                label:"测试1",
                value:0
              },
              {
                label:"测试2",
                value:1
              },
              {
                label:"测试3",
                value:2
              }
            ]
          },
          {
            label: '默认值',
            prop: 'admin',
            display: false
          },
          {
            label: '允许为空',
            prop: 'isDefault',
            type: 'switch',
            display: false,
            hide:true,
            labelWidth: 132,
            dicData:[{
              label:'不允许',
              value:0
            },{
              label:'允许',
              value:1
            }]
          },
          {
            label: "长度",
            prop: "length",
            hide: true,
            display: false
          },
          {
            label: '描述',
            prop: 'desc',
            type:"textarea",
            display: false
          },
        ],
        group:[
          {
            label: '属性项',
            prop:"index",
            column: [
              {
                label: '属性名',
                prop: 'name',
                align: 'left',
              },
              {
                label: '标签',
                prop: 'tag',
                hide:true
              },
              {
                label: '属性类型',
                prop: 'prop',
                type:"select",
                dicData:[
                  {
                    label:"测试1",
                    value:0
                  },
                  {
                    label:"测试2",
                    value:1
                  },
                  {
                    label:"测试3",
                    value:2
                  }
                ]
              },
              {
                label: '默认值',
                prop: 'admin',
              },
              {
                label: '允许为空',
                prop: 'isDefault',
                type: 'switch',
                hide:true,
                labelWidth: 132,
                dicData:[{
                  label:'不允许',
                  value:0
                },{
                  label:'允许',
                  value:1
                }]
              },
              {
                label: "长度",
                prop: "length",
                hide: true
              },
              {
                label: '描述',
                prop: 'desc',
                type:"textarea"
              },
            ]
          },
          {
            label: '值域',
            column:[
              {
                prop: 'hidebox',
                formsolt:true,
                hide: true,
                span:24,
              },
            ]
          },
          {
            label: '枚举',
            column: [
              {
                label: '是否使用枚举',
                prop: 'isnot',
                type: 'switch',
                hide:true,
                labelWidth: 132,
                span:8,
                dicData:[{
                  label:'是',
                  value:0
                },{
                  label:'否',
                  value:1
                }]
              },
              {
                prop:'text',
                type:'input',
                placeholder:'请输入内容',
                hide:true,
                display:false
              },
              {
                prop: 'enumerationSelect',
                type: 'select',
                placeholder: '请选择',
                hide: true,
                span:12,
                dicData: [
                  {
                    label: 'a',
                    value: 0
                  },
                  {
                    label: 'b',
                    value: 1
                  },
                  {
                    label: 'c',
                    value: 2
                  }
                ]
              },
              {
                label: '描述',
                prop: 'endesc',
                type:"textarea",
                labelWidth: 132,
              },
            ]
          }
        ]
      },
    }
  },
  created() {
  },
  methods:{
    selectChange(val){
      console.log(val)
      this.tablefalge=!this.tablefalge
      if(val.value == 0){
        this.tablefalge=true
        this.option.codomainoption.column[1].display=false
      }else if(val.value == null || val.value == 1){
        this.tablefalge=false;
        this.option.codomainoption.column[1].display=true
      }
    },
    beforeOpen (done, type) {
          if (['view', 'edit'].includes(type)) {
            // æŸ¥çœ‹å’Œç¼–辑逻辑
            console.log("编辑")
          } else {
            //新增逻辑
            this.tablefalge=false
            console.log(this.tablefalge)
            console.log("新增")
          }
          done();
      }
    // rowDel(row){
    //   this.$confirm("确定将选择数据删除?", {
    //     confirmButtonText: "确定",
    //     cancelButtonText: "取消",
    //     type: "warning"
    //   })
    //     .then(() => {
    //       return getremove(row.id);
    //     })
    //     .then(() => {
    //       this.$message({
    //         type: "success",
    //         message: "操作成功!"
    //       });
    //       this.onLoad();
    //     });
    // },
    // rowSave(row,done){
    //   getadd(row).then(()=>{
    //     this.$message({
    //       type: "success",
    //       message: "操作成功!"
    //     });
    //     done(row)
    //     this.onLoad()
    //   }).catch((res)=>{
    //     this.$message({
    //       type: "success",
    //       message:res
    //     });
    //   })
    // },
    // rowUpdate(row,index,done){
    //   getupdata(row).then(()=>{
    //     this.onLoad()
    //     this.$message({
    //       type: "success",
    //       message: "修改成功!"
    //     });
    //     done(row)
    //   })
    // },
    // onLoad(page, params = {}) {
    //   // this.loading = true;
    //   // getPage(this.page.currentPage, this.page.pageSize, Object.assign(params, this.query)).then(res => {
    //   //   // const data = res.data.data;
    //   //   // this.page.total = data.total;
    //   //   // this.data = data.records;
    //   //   // this.loading = false;
    //   //   // this.selectionClear();
    //   //   this.data=res.data.data.records
    //   // })
    // }
  }
}
</script>
<style lang="scss">
</style>
Source/UBCS-WEB/src/views/resource/attach.vue
@@ -160,7 +160,7 @@
              propsHttp: {
                res: 'data'
              },
              action: "/api/blade-resource/oss/endpoint/put-file-attach"
              action: "/api/ubcs-resource/oss/endpoint/put-file-attach"
            }
          ]
        }
Source/UBCS-WEB/src/views/resource/oss.vue
@@ -100,7 +100,7 @@
              width: 100,
              searchLabelWidth: 50,
              row: true,
              dicUrl: "/api/blade-system/dict/dictionary?code=oss",
              dicUrl: "/api/ubcs-system/dict/dictionary?code=oss",
              props: {
                label: "dictValue",
                value: "dictKey"
@@ -225,7 +225,7 @@
              type: 'upload',
              listType: 'picture-img',
              dataType: 'string',
              action: '/api/blade-resource/oss/endpoint/put-file',
              action: '/api/ubcs-resource/oss/endpoint/put-file',
              propsHttp: {
                res: 'data',
                url: 'link',
Source/UBCS-WEB/src/views/resource/sms.vue
@@ -100,7 +100,7 @@
              width: 100,
              searchLabelWidth: 50,
              row: true,
              dicUrl: "/api/blade-system/dict/dictionary?code=sms",
              dicUrl: "/api/ubcs-system/dict/dictionary?code=sms",
              props: {
                label: "dictValue",
                value: "dictKey"
Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue
@@ -1,6 +1,25 @@
<template>
  <basic-container>
    <avue-crud v-model="form" :option="option" :data="data" ref="crud"  @on-load="onLoad" @row-save="rowSave" @row-update="rowUpdate" @row-del="rowDel" :page.sync="page">
      <template slot="menu" slot-scope="{ row, index }">
        <el-button
          type="text"
          size="small"
          icon="el-icon-edit"
          @click="handleEdit(row, index)"
        >
          ç¼–辑
        </el-button>
        <el-button
          type="text"
          size="small"
          icon="el-icon-delete"
          @click="handleDel(row, index)"
        >
          åˆ é™¤
        </el-button>
      </template>
      <template slot="icon" slot-scope="scope">
        <i :class="scope.row.icon" style="font-size:24px"></i>
      </template>
@@ -23,6 +42,14 @@
    let validatePass=""
    //最大长度正则绑定值
    let validatePass1=""
    //过期时间正则绑定值
    let validatePass2=""
    //提醒时间正则绑定值
    let validatePass3=""
    //锁定次数正则绑定值
    let validatePass4=""
    //锁定时间正则绑定值
    let validatePass5=""
    //最小长度绑定value
    let values=""
    //最大长度绑定value
@@ -30,21 +57,65 @@
    //最小长度正则方法
    validatePass = (rule, value,callback) => {
     values=value*1
      if(value === ""){
      if(value == ""){
        callback(new Error('请输入密码最小长度'));
      }else if(values >= values1*1){
        callback(new Error('密码最小长度不能大于密码最大长度'));
      // }else if(values >= values1*1){
      //   callback(new Error('密码最小长度不能大于密码最大长度'));
      }else if(/[^\d]/g.test(value)){
        callback(new Error('密码最小长度的输入类型只能为数字类型'));
      }else {
        callback();
      }
    };
    //最大长度正则方法
    validatePass1= (rule, value,callback) =>{
      values1=value*1
     if(value === ""){
     if(value == ""){
        callback(new Error('请输入密码最大长度'));
      }else if(values1 <= values){
       callback(new Error('密码最大长度不能小于密码最大长度'));
     }else if(/[^\d]/g.test(value)){
       callback(new Error('密码最大长度的输入类型只能为数字类型'));
     }else {
       callback();
     }
    }
    };
    validatePass2 = (rule, value,callback) => {
      if(value == ""){
        callback(new Error('请输入过期时间'));
      }else if(/[^\d]/g.test(value)){
        callback(new Error('过期时间的输入类型只能为数字类型'));
      }else {
        callback();
      }
    };
    validatePass3 = (rule, value,callback) => {
      if(value == ""){
        callback(new Error('请输入过期时间'));
      }else if(/[^\d]/g.test(value)){
        callback(new Error('过期时间的输入类型只能为数字类型'));
      }else {
        callback();
      }
    };
    validatePass4 = (rule, value,callback) => {
      if(value == ""){
        callback(new Error('请输入锁定次数'));
      }else if(/[^\d]/g.test(value)){
        callback(new Error('锁定次数的输入类型只能为数字类型'));
      }else {
        callback();
      }
    };
    validatePass5 = (rule, value,callback) => {
      if(value == ""){
        callback(new Error('请输入锁定时间'));
      }else if(/[^\d]/g.test(value)){
        callback(new Error('锁定时间的输入类型只能为数字类型'));
      }else {
        callback();
      }
    };
    return {
      form:{},
      page: {
@@ -59,12 +130,15 @@
        border: true,
        index: true,
        rowKey:'id',
        editBtn:false,
        delBtn:false,
        column: [
          {
            label: '策略名称',
            prop: 'strategyName',
            align: 'left',
            span:24,
            labelWidth: "11%",
            rules: [{
              required: true,
              message: "请输入策略名称",
@@ -74,39 +148,42 @@
          {
            label: '密码最小长度',
            prop: 'minPwdLen',
            labelWidth:118,
            span:12,
            labelWidth:"22%",
            rules: [{
              required: true,
              validator:validatePass,
              trigger: "blur"
              trigger: 'blur'
            }]
          },
          {
            label: '密码最大长度',
            prop: 'maxPwdLen',
            labelWidth:118,
            span:12,
            labelWidth:"25%",
            rules: [{
              required: true,
              validator:validatePass1,
              trigger: "blur"
              trigger: 'change'
            }]
          },
          {
            label: '组合方法',
            prop: 'combinationNames',
            labelWidth: 91,
            display:false
            display:false,
          },
          {
            //写两个组合方法是因为id和name不能同时绑定这个prop来渲染,一个表格做隐藏来数据操作(表单隐藏),另一个表格做显示只显示在页面(表单隐藏)。
            label: '组合方法',
            prop: 'combinationIds',
            type: "checkbox",
            labelWidth:91,
            span:12,
            labelWidth:"22%",
            id:5,
            hide:true,
            change:this.handleCheckboxChange,
            rules: [{
              required: true,
              message: "请选择组合方法",
@@ -135,7 +212,9 @@
            label: '必填种类',
            prop: 'requiredType',
            type: 'select',
            labelWidth: 91,
            span:12,
            labelWidth:"25%",
            change:this.handleSelectChange,
            rules: [{
              required: true,
              message: "请选择必填种类",
@@ -143,19 +222,23 @@
            }],
            dicData:[{
              label:'1种',
              value:0
            },
              value:0,
              disabled:false
              },
              {
                label:'2种',
                value:1
                value:1,
                disabled:false
              },
              {
                label:'3种',
                value:2
                value:2,
                disabled:false
              },
              {
                label:'4种',
                value:3
                value:3,
                disabled:false
              }
            ]
@@ -163,53 +246,54 @@
          {
            label: '过期时间(天)',
            prop:'expirationTime',
            labelWidth:115,
            span:12,
            labelWidth:"22%",
            rules: [{
              required: true,
              message: "请输入过期时间",
              trigger: "blur"
              validator:validatePass2,
              trigger: 'blur'
            }]
          },
          {
            label: '提醒时间(天)',
            prop:'reminderTime',
            labelWidth:113,
            span:12,
            labelWidth:"25%",
            rules: [{
              required: true,
              message: "请输入提醒时间",
              trigger: "blur"
              validator:validatePass3,
              trigger: 'blur'
            }]
          },
          {
            label: '锁定次数(次)',
            prop:'lockingNum',
            labelWidth:116,
            span:12,
            labelWidth:"22%",
            rules: [{
              required: true,
              message: "请输入锁定次数",
              trigger: "blur"
              validator:validatePass4,
              trigger: 'blur'
            }]
          },
          {
            label: '锁定时间(分钟)',
            prop:'lockingTime',
            labelWidth:128,
            span:12,
            labelWidth:"25%",
            rules: [{
              required: true,
              message: "请输入锁定时间",
              trigger: "blur"
              validator:validatePass5,
              trigger: 'blur'
            }]
          },
          {
            label: '描述',
            prop:'desc',
            type: 'textarea',
            span:12,
            labelWidth:"22%",
            rows: 5,
            rules: [{
              required: true,
              message: "请简括描述",
              trigger: "blur"
            }]
          },
          {
            label: '是否为默认策略',
@@ -225,18 +309,163 @@
            }]
          }
        ],
      }
      },
      //添加存放多选的变量,用于下拉菜单的禁用效果和必填种类是否大于组合方式然后提示用户重新选择
      checkboxlength:"",
      //这个是下拉菜单的数据变量
      selectlength:"",
      //这个是用于防止change时间冒泡,出现两次弹窗定义的变量
      checkboxlist:"",
      //用于首次点击编辑,判断组合方式是否小于必填种类的变量
      checkboxNumber:"",
      selectNumber:"",
      //这个也是存放多选的变量,效果一样,只是用作在编辑模块
      checkboxedit:"",
      // ç”¨äºŽåˆ¤æ–­æ˜¯å¦æ˜¯ç¼–辑
      editFlag:false
    //  è‡³äºŽä¸ºä»€ä¹ˆæ²¡åœ¨ç”¨æˆ·é€‰æ‹©å¿…填种类大于组合方式的时候,给下拉菜单选中的数据清空了,这样比给予弹窗提醒更合理
    //  åŽŸå› æ˜¯æ‰¾äº†å¥½ä¹…æ²¡æ‰¾åˆ°avue框架这个选中的属性显示在页面怎么修改,直接修改下拉菜单数据的value没效果,找不到是什么控制这页面显示的选中数据
    //  æˆ‘尝试在dicdata外面定义value修改下拉菜单显示的默认值也不行,然后再尝试调用avue的close清除方法,但是也是只能实现在下拉菜单后面显示一个X号
    //  å½“用户手动点击清除,才可以把数据清除,总而言之找了好久,没找到这个清除方法,avue的说明文档也没明确标明这个功能的内置操作方法
    //  æˆ‘想到的应该可以的方法是,舍弃option里面的组合方式,自己手动在页面添加插槽定义组合方式,至于是使用avue还是element-ui来写,还要看具体的步骤
    //  å› ä¸ºä¸€æ”¹åŠ¨ï¼Œæˆ‘çŽ°åœ¨å†™çš„é€»è¾‘æ¯”å¦‚ä¸‹æ‹‰èœå•ç¦ç”¨å’Œç­–ç•¥éªŒè¯ç­‰ç­‰è¦é‡æ–°æ¢³ç†ï¼Œæˆ‘è¿™è¾¹æ€¥ç€èµ¶å¯¹è±¡å»ºæ¨¡çš„è¿›åº¦ï¼Œæ‰€ä»¥å…ˆç”¨è¿™ç§æ–¹å¼æ¥å¤„ç†ï¼Œå¦‚æžœæˆ‘å›žå¤´æœ‰æ—¶é—´æˆ‘å†æ¥ç»§ç»­æ”¹ï¼Œå°±æ²¡æœ‰è¿™æ¡æ³¨é‡Šäº†ã€‚
    }
  },
  created() {
    this.onLoad()
  },
  mount() {
  },
  methods:{
    handleSelectChange(val){
      this.selectlength=val
      // if(val.value >= this.checkboxlength.value.length && this.checkboxlength.value.length > 0){
      //   console.log("大于")
      // }
    },
    handleCheckboxChange(val){
      const arr=this.option.column[5];
      this.checkboxlength=val.value;
      //添加的时候checkboxlength是一个数组,到了编辑他就是一个字符串,如果我我直接转换为数组,因为本来就是数组所以点击添加的时候会报错
      //如果我变成字符串后再转数组,添加不会报错了,但是编辑的时候就又会报错了,本来就是字符串又走了一遍tostring
      this.checkboxedit=this.checkboxlength.toString().split(",")
      if(val.value != undefined && val.value != null){
        if(this.checkboxlist == val.value){
        //  åˆ¤æ–­ç›¸ç­‰åˆ™ä¸æ“ä½œï¼Œä¸ç­‰åˆ™é‡æ–°æ‰§è¡Œã€‚加这层判断是因为change事件触发两次,会出现两个消息提示框
        //  å®šä¹‰checkboxlist变量,存储的改变的值,如果值改变和变量相等则不需要任何操作
        }else {
          this.checkboxlist=val.value
          if( this.selectlength.value >= val.value.length && val.value.length > 0 ){
            this.$message({
              message: '必填种类不能大于组合方法,请重新选择!',
              type: 'warning',
              showClose: true,
            });
          }else if(this.selectlength.value >= this.checkboxedit.length  && this.checkboxedit.length > 0 ){
            this.$message({
              message: '必填种类不能大于组合方法,请重新选择!',
              type: 'warning',
              showClose: true,
            });
          }
        }
          // if(this.checkboxeditlist == val.value){
          // //  tong
          // }else {
          //   this.checkboxeditlist=val.value
          //   if(this.selectlength.value >= this.checkboxedit.length  && this.checkboxedit.length > 0){
          //     this.$message({
          //       message: '必填种类不能大于组合方法,请重新选择!',
          //       type: 'warning',
          //       showClose: true,
          //     });
          //   }
          // }
        //  if(this.selectlength.value >= this.checkboxedit.length  && this.checkboxedit.length > 0){
        //   this.$message({
        //     message: '必填种类不能大于组合方法,请重新选择!',
        //     type: 'warning',
        //     showClose: true,
        //   });
        // }
      }
      // è¿™é‡Œä¸€ç›´æŠ¥length的错误
      // arr.forEach((item,index)=>{
      //   console.log(item,index)
      //   if(val.value != undefined && val.value != null && val.value.length==0){
      //     item.disabled=false
      //   }
      //   if(val.value != undefined && val.value != null && val.value.length>=1){
      //
      //    }
      // })
      // if(val.value != undefined && val.value != null && val.value.length >= 0){
      //   arr.dicData[val.value.length-1].disabled=true
      // }
      // }else if(val.value != undefined && val.value != null && val.value.length ==0){
      //   arr.dicData.disabled=false
      // }
      if(val.value != undefined && val.value != null && val.value.length == 1){
        arr.dicData[0].disabled=false
        arr.dicData[1].disabled=true
        arr.dicData[2].disabled=true
        arr.dicData[3].disabled=true
      }else if(val.value != undefined && val.value != null && val.value.length ==2){
        arr.dicData[0].disabled=false
        arr.dicData[1].disabled=false
        arr.dicData[2].disabled=true
        arr.dicData[3].disabled=true
      }else if(val.value != undefined && val.value != null && val.value.length ==3){
        arr.dicData[0].disabled=false
        arr.dicData[1].disabled=false
        arr.dicData[2].disabled=false
        arr.dicData[3].disabled=true
      }else if(val.value != undefined && val.value != null && val.value.length==4){
        arr.dicData[0].disabled=false
        arr.dicData[1].disabled=false
        arr.dicData[2].disabled=false
        arr.dicData[3].disabled=false
      }else if(val.value != undefined && val.value != null && val.value.length==0  ){
         arr.dicData[0].disabled=true
         arr.dicData[1].disabled=true
         arr.dicData[2].disabled=true
         arr.dicData[3].disabled=true
      }else if(this.checkboxNumber.length!=0){
        arr.dicData[0].disabled=false
        arr.dicData[1].disabled=false
        arr.dicData[2].disabled=false
        arr.dicData[3].disabled=false
      }
      if(this.editFlag == true){
        if(this.checkboxedit.length == 1){
          arr.dicData[0].disabled=false
          arr.dicData[1].disabled=true
          arr.dicData[2].disabled=true
          arr.dicData[3].disabled=true
        }else if(this.checkboxedit.length == 2){
          arr.dicData[0].disabled=false
          arr.dicData[1].disabled=false
          arr.dicData[2].disabled=true
          arr.dicData[3].disabled=true
        }else if(this.checkboxedit.length ==3){
          arr.dicData[0].disabled=false
          arr.dicData[1].disabled=false
          arr.dicData[2].disabled=false
          arr.dicData[3].disabled=true
        }else if(this.checkboxedit ==4){
          arr.dicData[0].disabled=false
          arr.dicData[1].disabled=false
          arr.dicData[2].disabled=false
          arr.dicData[3].disabled=false
        }else if(this.checkboxedit.length ==0){
          arr.dicData[0].disabled=true
          arr.dicData[1].disabled=true
          arr.dicData[2].disabled=true
          arr.dicData[3].disabled=true
        }
      }
    },
    rowDel(row){
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
@@ -252,13 +481,15 @@
            message: "操作成功!"
          });
          this.onLoad();
        });
        }).catch(res=>{
        console.log(res)
      })
    },
    rowSave(row,done){
      //将密码组合方式的数据转换为字符串
      const spliceId= row.combinationIds.toString()
      row.combinationIds=spliceId
      getadd(row).then(()=>{
      getadd(row).then((res)=>{
        // this.onLoad(this.page);
        this.$message({
          type: "success",
@@ -266,9 +497,31 @@
        });
        done(row)
        this.onLoad()
        console.log(res)
      }).catch((res)=>{
        console.log(res)
      })
    },
    rowEdit(row){
      console.log("打开编辑edit",row)
    },
    handleDel(row){
      this.$refs.crud.rowDel(row,row.$index);
    },
    handleEdit(row){
      this.$refs.crud.rowEdit(row,row.$index);
      this.editFlag=true;
      // const arr=this.option.column[5];
      this.checkboxNumber=row.combinationIds.split(",")
      this.selectNumber=row.requiredType
      console.log(this.checkboxNumber, this.selectNumber)
    //  æ‰“开编辑首先判断,组合方法是否小于必填种类,如果小于给予提醒修改
        if(this.checkboxNumber.length<=this.selectNumber){
          this.$message({
            type:"warning",
            message:"必填种类不能大于组合方法,请重新选择!"
          })
        }
    },
    rowUpdate(row,index,done){
      getupdata(row).then(()=>{
@@ -278,6 +531,8 @@
          message: "修改成功!"
        });
        done()
      }).catch(res=>{
        console.log(res)
      })
    },
    onLoad(page, params = {}) {
@@ -288,6 +543,8 @@
        // this.data = data.records;
        // this.loading = false;
        // this.selectionClear();
        console.log(res)
        this.page.total=res.data.data.totalElements
        this.data=res.data.data.content
      });
    }
@@ -296,6 +553,5 @@
}
</script>
<style scoped>
<style lang="scss">
</style>
Source/UBCS-WEB/src/views/system/dept.vue
@@ -99,7 +99,7 @@
              label: "所属租户",
              prop: "tenantId",
              type: "tree",
              dicUrl: "/api/blade-system/tenant/select",
              dicUrl: "/api/ubcs-system/tenant/select",
              addDisplay: false,
              editDisplay: false,
              viewDisplay: website.tenantMode,
@@ -145,7 +145,7 @@
            {
              label: "机构类型",
              type: "select",
              dicUrl: "/api/blade-system/dict/dictionary?code=org_category",
              dicUrl: "/api/ubcs-system/dict/dictionary?code=org_category",
              props: {
                label: "dictValue",
                value: "dictKey"
Source/UBCS-WEB/src/views/system/post.vue
@@ -68,7 +68,7 @@
              label: "所属租户",
              prop: "tenantId",
              type: "tree",
              dicUrl: "/api/blade-system/tenant/select",
              dicUrl: "/api/ubcs-system/tenant/select",
              addDisplay: false,
              editDisplay: false,
              viewDisplay: website.tenantMode,
@@ -88,7 +88,7 @@
              label: "岗位类型",
              prop: "category",
              type: "select",
              dicUrl: "/api/blade-system/dict/dictionary?code=post_category",
              dicUrl: "/api/ubcs-system/dict/dictionary?code=post_category",
              props: {
                label: "dictValue",
                value: "dictKey"
Source/UBCS-WEB/src/views/system/tenant.vue
@@ -136,7 +136,6 @@
        dialogWidth: 900,
        dialogClickModal: false,
        column: [
          {
            label: "租户ID",
            prop: "tenantId",
@@ -224,7 +223,7 @@
            type: 'upload',
            listType: 'picture-img',
            dataType: 'string',
            action: '/api/blade-resource/oss/endpoint/put-file',
            action: '/api/ubcs-resource/oss/endpoint/put-file',
            propsHttp: {
              res: 'data',
              url: 'link',
@@ -263,7 +262,7 @@
            search: true,
            span: 24,
            type: "select",
            dicUrl: "/api/blade-develop/datasource/select",
            dicUrl: "/api/ubcs-develop/datasource/select",
            props: {
              label: "name",
              value: "id"
@@ -285,7 +284,7 @@
            search: true,
            span: 24,
            type: "select",
            dicUrl: "/api/blade-system/tenant-package/select",
            dicUrl: "/api/ubcs-system/tenant-package/select",
            props: {
              label: "packageName",
              value: "id"
@@ -310,7 +309,7 @@
  created() {
    // èŽ·å–åˆ°true还是false直接赋值,定义方法会就是获取不到,不知道什么问题,强制用JSON.parse会在后面追加一个disabled,所以直接获取。后期如果添加cloumn会出现bug,用foreach循环出column在判断type是否等于radio,然后将单独radio的disabled改为res.data.data
    this.$axios.get('/api/blade-system/tenant/find-ssa-enable').then(res => {
    this.$axios.get('/api/ubcs-system/tenant/find-ssa-enable').then(res => {
      this.option.column[6].disabled= res.data.data
    });
  },
Source/UBCS-WEB/src/views/system/user.vue
@@ -1,16 +1,20 @@
<template>
  <el-row>
    <el-col :span="5">
    <el-col :span="5" v-if="userflag">
      <div class="box">
        <el-scrollbar>
        <el-scrollbar style="height: auto;border-bottom-right-radius:8px ">
          <basic-container>
            <avue-tree :data="treeData" :option="treeOption" @node-click="nodeClick"/>
            <div class="abox">
              <avue-tree :data="treeData" :option="treeOption" @node-click="nodeClick"/>
            </div>
          </basic-container>
        </el-scrollbar>
      </div>
    </el-col>
    <el-col :span="19">
    <el-col :span="usernumber">
      <basic-container>
        <div class="bbox">
        <avue-crud ref="crud"
                   v-model="form"
                   :before-open="beforeOpen"
@@ -98,6 +102,7 @@
            <el-tag>{{ row.userTypeName }}</el-tag>
          </template>
        </avue-crud>
        </div>
        <el-dialog :visible.sync="roleBox"
                   append-to-body
                   title="用户角色配置"
@@ -156,36 +161,6 @@
            <el-button type="primary" @click="passhandle">ç¡® å®š</el-button>
  </span>
        </el-dialog>
        <!--        <el-dialog title="用户平台配置"-->
        <!--                   append-to-body-->
        <!--                   :visible.sync="platformBox">-->
        <!--          <avue-crud :option="platformOption"-->
        <!--                     :table-loading="platformLoading"-->
        <!--                     :data="platformData"-->
        <!--                     ref="platformCrud"-->
        <!--                     v-model="platformForm"-->
        <!--                     :before-open="platformBeforeOpen"-->
        <!--                     :page.sync="platformPage"-->
        <!--                     :permission="platformPermissionList"-->
        <!--                     @row-update="platformRowUpdate"-->
        <!--                     @search-change="platformSearchChange"-->
        <!--                     @search-reset="platformSearchReset"-->
        <!--                     @selection-change="platformSelectionChange"-->
        <!--                     @current-change="platformCurrentChange"-->
        <!--                     @size-change="platformSizeChange"-->
        <!--                     @refresh-change="platformRefreshChange"-->
        <!--                     @on-load="platformOnLoad">-->
        <!--            <template slot-scope="{row}"-->
        <!--                      slot="tenantName">-->
        <!--              <el-tag>{{row.tenantName}}</el-tag>-->
        <!--            </template>-->
        <!--            <template slot-scope="{row}"-->
        <!--                      slot="userTypeName">-->
        <!--              <el-tag>{{row.userTypeName}}</el-tag>-->
        <!--            </template>-->
        <!--            -->
        <!--          </avue-crud>-->
        <!--        </el-dialog>-->
      </basic-container>
    </el-col>
  </el-row>
@@ -274,7 +249,9 @@
      treeDeptId: '',
      treeData: [],
      treeOption: {
        height:"auto",
        nodeKey: 'id',
        border: true,
        lazy: true,
        treeLoad: function (node, resolve) {
          const parentId = (node.level === 0) ? 0 : node.data.id;
@@ -298,7 +275,7 @@
        }
      },
      option: {
        height: 'auto',
        height:'auto',
        calcHeight: 80,
        tip: false,
        searchShow: true,
@@ -355,7 +332,7 @@
          {
            label: "用户平台",
            type: "select",
            dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
            dicUrl: "/api/ubcs-system/dict/dictionary?code=user_type",
            props: {
              label: "dictValue",
              value: "dictKey"
@@ -382,7 +359,7 @@
                label: "所属租户",
                prop: "tenantId",
                type: "tree",
                dicUrl: "/api/blade-system/tenant/select",
                dicUrl: "/api/ubcs-system/tenant/select",
                props: {
                  label: "tenantName",
                  value: "tenantId"
@@ -410,7 +387,7 @@
              {
                label: "用户平台",
                type: "select",
                dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
                dicUrl: "/api/ubcs-system/dict/dictionary?code=user_type",
                props: {
                  label: "dictValue",
                  value: "dictKey"
@@ -625,7 +602,7 @@
          {
            label: "用户平台",
            type: "select",
            dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
            dicUrl: "/api/ubcs-system/dict/dictionary?code=user_type",
            props: {
              label: "dictValue",
              value: "dictKey"
@@ -669,7 +646,7 @@
              res: 'data'
            },
            tip: '请上传 .xls,.xlsx æ ‡å‡†æ ¼å¼æ–‡ä»¶',
            action: "/api/blade-user/import-user"
            action: "/api/ubcs-user/import-user"
          },
          {
            label: "数据覆盖",
@@ -709,7 +686,9 @@
      UserPwdstrategyVO:{
        userIds:[],
        pwdstrategyId:''
      }
      },
      userflag:true,
      usernumber:0
    };
  },
  watch: {
@@ -721,7 +700,7 @@
    'excelForm.isCovered'() {
      if (this.excelForm.isCovered !== '') {
        const column = this.findObject(this.excelOption.column, "excelFile");
        column.action = `/api/blade-user/import-user?isCovered=${this.excelForm.isCovered}`;
        column.action = `/api/ubcs-user/import-user?isCovered=${this.excelForm.isCovered}`;
      }
    }
  },
@@ -759,6 +738,14 @@
  },
  created() {
    this.selecload()
    const arr=JSON.parse(localStorage.getItem("updataid"))
    if(arr.user_id != '0' && arr.tenant_id !== '000000'){
      this.userflag=false
      this.usernumber=24
    }else {
      this.userflag=true
      this.usernumber=19
    }
  },
  methods: {
    //esc取消键操作
@@ -781,6 +768,7 @@
        this.passVisible=true;
      }
      console.log("selectionList",this.selectionList)
      console.log(this.UserPwdstrategyVO)
    },
    // è®¾ç½®å¯†ç ç­–略,传递下拉框的id和多选框的id
    passhandle(){
@@ -791,18 +779,19 @@
       //要传递的id,一个是数组另一个是字符串
       this.UserPwdstrategyVO.userIds=this.selid;
       this.UserPwdstrategyVO.pwdstrategyId=this.id
      console.log(this.UserPwdstrategyVO)
      console.log("1",this.UserPwdstrategyVO)
      console.log("2",this.UserPwdstrategyVO.userIds)
      //请求
      insert(this.UserPwdstrategyVO).then(()=>{
      insert(this.UserPwdstrategyVO.userIds).then(()=>{
        this.passVisible=false
        this.$message({
          type: "success",
          message: "配置成功!"
        });
        this.selectionList=[]
        this.onLoad(this.page)
        console.log("selectionList",this.selectionList)
        this.selid=[]
      }).catch(res=>{
        this.selid=[]
        this.$message({
          type: "warning",
          message: res
@@ -1020,14 +1009,14 @@
        type: "warning"
      }).then(() => {
        NProgress.start();
        exportBlob(`/api/blade-user/export-user?${this.website.tokenHeader}=${getToken()}&account=${account}&realName=${realName}`).then(res => {
        exportBlob(`/api/ubcs-user/export-user?${this.website.tokenHeader}=${getToken()}&account=${account}&realName=${realName}`).then(res => {
          downloadXls(res.data, `用户数据表${dateNow()}.xlsx`);
          NProgress.done();
        })
      });
    },
    handleTemplate() {
      exportBlob(`/api/blade-user/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => {
      exportBlob(`/api/ubcs-user/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => {
        downloadXls(res.data, "用户数据模板.xlsx");
      })
    },
@@ -1148,4 +1137,8 @@
.seloption{
  margin-left: 10px;
}
.abox{
  height: 771px;
}
</style>
Source/UBCS-WEB/src/views/tool/code.vue
@@ -124,7 +124,7 @@
                  search: true,
                  span: 24,
                  type: "select",
                  dicUrl: "/api/blade-develop/model/select",
                  dicUrl: "/api/ubcs-develop/model/select",
                  props: {
                    label: "modelName",
                    value: "id"
@@ -227,7 +227,7 @@
                  label: "子表模型",
                  prop: "subModelId",
                  type: "select",
                  dicUrl: "/api/blade-develop/model/select",
                  dicUrl: "/api/ubcs-develop/model/select",
                  props: {
                    label: "modelName",
                    value: "id"
@@ -289,7 +289,7 @@
                  labelTip:'配置是否使用BladeX封装的BaseService解锁更多功能',
                  prop: "baseMode",
                  type: 'radio',
                  dicUrl: "/api/blade-system/dict/dictionary?code=yes_no",
                  dicUrl: "/api/ubcs-system/dict/dictionary?code=yes_no",
                  props: {
                    label: "dictValue",
                    value: "dictKey"
@@ -308,7 +308,7 @@
                  labelTip:'配置是否使用Wrapper包装器来拓展Controller返回列表的字段',
                  prop: "wrapMode",
                  type: 'radio',
                  dicUrl: "/api/blade-system/dict/dictionary?code=yes_no",
                  dicUrl: "/api/ubcs-system/dict/dictionary?code=yes_no",
                  props: {
                    label: "dictValue",
                    value: "dictKey"
@@ -327,7 +327,7 @@
                  labelTip:'配置是否使用Feign远程调用',
                  prop: "feignMode",
                  type: 'radio',
                  dicUrl: "/api/blade-system/dict/dictionary?code=yes_no",
                  dicUrl: "/api/ubcs-system/dict/dictionary?code=yes_no",
                  props: {
                    label: "dictValue",
                    value: "dictKey"
Source/UBCS-WEB/src/views/wel/index.vue
@@ -664,11 +664,32 @@
      </el-col>
    </el-row>
    <el-dialog title="修改密码" :visible.sync="dialogFormVisible" append-to-body  :close-on-press-escape="false" :before-close="Xdelhandle">
      <el-form :model="form"  :rules="rules" ref="form">
        <el-form-item label="原密码" :label-width="formLabelWidth" prop="oldPassword">
          <el-input v-model="form.oldPassword" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="新密码" :label-width="formLabelWidth" prop="newPassword">
          <el-input v-model="form.newPassword" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="确认密码" :label-width="formLabelWidth" prop="newPassword1">
          <el-input v-model="form.newPassword1" autocomplete="off"></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="delhandle">取 æ¶ˆ</el-button>
        <el-button type="primary" @click="addok">ç¡® å®š</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
  import {mapGetters} from "vuex";
  import  {check} from "@/api/system/user"
  import {updatePassword} from "@/api/system/user.js"
  import md5 from "js-md5";
  import {removeToken} from "@/util/auth";
  export default {
    name: "wel",
@@ -676,12 +697,33 @@
      return {
        activeNames: ['1', '2', '3', '5'],
        logActiveNames: ['28'],
        aaa:[]
        userarr:[],
        userid:'',
        updataArr:[],
        dialogFormVisible:false,
        form: {
          oldPassword: '',
          newPassword: '',
          newPassword1: '',
        },
        rules: {
          oldPassword: [
            { required: true, message: '请输入原密码', trigger: 'blur' }
          ],
          newPassword:[
            { required: true, message: '请输入新密码', trigger: 'blur' }
          ],
          newPassword1:[
            { required: true, message: '请输确认密码', trigger: 'blur' }
          ]
        },
      };
    },
    // æ‹¿åˆ°userid请求接口
    created() {
      this.aaa=this.$store.state.upadatastatus
      console.log(this.aaa)
      this.updataArr=JSON.parse(localStorage.getItem("updataid"))
      this.userid=this.$store.state.user.upadatastatus.user_id
      this.checkhandle()
    },
    computed: {
      ...mapGetters(["userInfo"]),
@@ -689,6 +731,60 @@
    methods: {
      handleChange(val) {
        window.console.log(val);
      },
      //element组件关闭弹窗的延迟回调,这里没有用关闭弹窗的方法,因为当用户点击确认也是关闭弹窗,如果登录成功弹窗关闭后也是会清除token回到登录页
      //Xdelhandle是点击X号关闭弹唱,delhandle是点击取消关闭弹窗,在这分了两个事件
      Xdelhandle(){
        removeToken()
        this.dialogFormVisible = false
      },
      // å…³é—­å¼¹çª—后清除token返回到登录页面
      delhandle(){
        removeToken()
        this.dialogFormVisible = false
      },
      // ä¿®æ”¹å¯†ç æ–¹æ³•
      addok(){
        this.dialogFormVisible = false
        updatePassword(md5(this.form.oldPassword), this.form.newPassword, this.form.newPassword1).then(res=>{
          if(res.data.code==200){
            this.$message({
              type:"success",
              message:"修改成功!"
            })
          }
        }).catch(res=>{
          console.log(res)
          this.checkhandle()
        })
      },
      // æé†’时间请求,也需要判断是否为超管身份,超管身份不判断
      checkhandle(){
        if(this.updataArr.user_id != '0' && this.updataArr.tenant_id !== '000000'){
          check(this.userid).then(res=>{
            if(res.data.data>0){
              this.$message({
                type:'warning',
                message:`你还有${res.data.data}天就要修改密码了`
              })
            }else if(res.data.data == -1){
              this.$message({
                type: "warning",
                message: "密码策略已被修改,请重新修改密码!"
              })
              setTimeout(()=>{
                this.dialogFormVisible=true
              },1500)
            }else if(res.data.data == 0){
              this.$message({
                type:'success',
                message:"操作成功"
              })
            }
          }).catch(res=>{
            console.log(res)
          })
        }
      }
    },
  };
Source/UBCS-WEB/src/views/work/claim.vue
@@ -84,7 +84,7 @@
              label: "流程分类",
              type: "select",
              row: true,
              dicUrl: "/api/blade-system/dict/dictionary?code=flow",
              dicUrl: "/api/ubcs-system/dict/dictionary?code=flow",
              props: {
                label: "dictValue",
                value: "dictKey"
Source/UBCS-WEB/src/views/work/done.vue
@@ -78,7 +78,7 @@
              label: "流程分类",
              type: "select",
              row: true,
              dicUrl: "/api/blade-system/dict/dictionary?code=flow",
              dicUrl: "/api/ubcs-system/dict/dictionary?code=flow",
              props: {
                label: "dictValue",
                value: "dictKey"
Source/UBCS-WEB/src/views/work/process/leave/form.vue
@@ -28,7 +28,7 @@
                  label: '审批人员',
                  prop: 'taskUser',
                  type: 'select',
                  dicUrl: `/api/blade-user/user-list`,
                  dicUrl: `/api/ubcs-user/user-list`,
                  props: {
                    label: "account",
                    value: "id"
Source/UBCS-WEB/src/views/work/send.vue
@@ -82,7 +82,7 @@
              label: "流程分类",
              type: "select",
              row: true,
              dicUrl: "/api/blade-system/dict/dictionary?code=flow",
              dicUrl: "/api/ubcs-system/dict/dictionary?code=flow",
              props: {
                label: "dictValue",
                value: "dictKey"
Source/UBCS-WEB/src/views/work/start.vue
@@ -103,7 +103,7 @@
              label: "流程分类",
              type: "select",
              row: true,
              dicUrl: "/api/blade-system/dict/dictionary?code=flow",
              dicUrl: "/api/ubcs-system/dict/dictionary?code=flow",
              props: {
                label: "dictValue",
                value: "dictKey"
Source/UBCS-WEB/src/views/work/todo.vue
@@ -84,7 +84,7 @@
              label: "流程分类",
              type: "select",
              row: true,
              dicUrl: "/api/blade-system/dict/dictionary?code=flow",
              dicUrl: "/api/ubcs-system/dict/dictionary?code=flow",
              props: {
                label: "dictValue",
                value: "dictKey"
Source/UBCS-WEB/vue.config.js
@@ -26,7 +26,7 @@
    proxy: {
      '/api': {
        //本地服务接口地址
        target: 'http://192.168.0.106:37000',
        target: 'http://192.168.0.101:37000',
        // target: 'http://dev.vci-tech.com:37000',
        //远程演示服务地址,可用于直接启动项目
        //target: 'https://saber.bladex.vip/api',