+
+
diff --git a/src/components/selection/TreeDataSelection.vue b/src/components/selection/TreeDataSelection.vue
new file mode 100644
index 0000000..bca415a
--- /dev/null
+++ b/src/components/selection/TreeDataSelection.vue
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
diff --git a/src/components/selection/UserSelectModal.vue b/src/components/selection/UserSelectModal.vue
index e4a6dc5..4645be7 100644
--- a/src/components/selection/UserSelectModal.vue
+++ b/src/components/selection/UserSelectModal.vue
@@ -138,7 +138,7 @@ export default {
deep: true,
handler (val) {
console.log(this.currentQueryAllData)
- const arrOne = this.currentQueryAllData.map(item => item.id)
+ const arrOne = this.currentQueryAllData
const arrTwo = this.dataSourceRight.map(item => item.id)
const temp = []
for (const item of arrTwo) {
@@ -157,7 +157,7 @@ export default {
deep: true,
handler (val) {
console.log(this.currentQueryAllData)
- const arrOne = this.currentQueryAllData.map(item => item.id)
+ const arrOne = this.currentQueryAllData
const arrTwo = this.dataSourceRight.map(item => item.id)
const temp = []
for (const item of arrTwo) {
@@ -240,7 +240,8 @@ export default {
isCheckedAll: false, // 是否选中所有
url: {
userList: '/sys/user/page',
- userListByIds: '/sys/user/queryByIds'
+ userListByIds: '/sys/user/queryByIds',
+ queryList: '/sys/user/list'
},
isClickedSearch: false, // 改完搜索条件是否点击过搜索
oldQueryParam: {}, // 上一次的搜索条件,用于从一个搜索条件改成另一个搜索条件,但是没有点搜索,这时候全选时传旧的搜索条件
@@ -298,7 +299,7 @@ export default {
this.checkCurrentAll()
} else {
const field = 'id'
- this.dataSourceRight = this.dataSourceRight.filter(item => !this.currentQueryAllData.some(i => i[field] === item[field]))
+ this.dataSourceRight = this.dataSourceRight.filter(item => !this.currentQueryAllData.some(i => i === item[field]))
this.selectedRowKeys = JSON.parse(JSON.stringify(this.dataSourceRight)).map(item => item[field])
}
},
@@ -340,14 +341,14 @@ export default {
// 获取当前查询条件的所有数据
async getCurrentAllData () {
const params = Object.assign({}, this.queryParam)
- params.pageNo = 1
- params.pageSize = 100000000
+ // params.pageNo = 1
+ // params.pageSize = 100000000
params.field = 'id,avatar,username,realname,sex_dictText,phone,orgCodeTxt,roleTxt,status_dictText'
params.column = 'createTime'
params.order = 'desc'
- await getAction(this.url.userList, params).then(res => {
+ await getAction(this.url.queryList, params).then(res => {
if (res.success) {
- this.currentQueryAllData = res.result.records || []
+ this.currentQueryAllData = res.result || []
}
})
},
@@ -544,4 +545,8 @@ export default {
/deep/ .ant-form-item-label{
min-width: 70px !important;
}
+
+/deep/ .ant-table-hide-scrollbar {
+ margin-right: -8px;
+}
diff --git a/src/components/splitUpload/SplitAddClauseUploadImage.vue b/src/components/splitUpload/SplitAddClauseUploadImage.vue
index 9484dea..5d8a39b 100644
--- a/src/components/splitUpload/SplitAddClauseUploadImage.vue
+++ b/src/components/splitUpload/SplitAddClauseUploadImage.vue
@@ -60,7 +60,7 @@ export default {
headers: '',
previewImage: {},
uploadFileFlag: 0,
- fileMaxSize: 500
+ fileMaxSize: 20
}
},
created () {
@@ -103,7 +103,7 @@ export default {
// const fileTypes = this.accept.split('/')
const fileNowTypes = file.type.split('/')
// 修改判断方法 限制jpg\jpeg\png\gif 可以上传 其他不能上传。
- fileFlag = (['PNG', 'JPEG', 'PNG', 'GIF'].includes(fileNowTypes[1].toUpperCase()))
+ fileFlag = (['PNG', 'JPEG', 'PNG'].includes(fileNowTypes[1].toUpperCase()))
// console.log('filetype',fileFlag)
if (!fileFlag) {
this.$message.warning(this.$t('uploadFile.fileFormatIncorrect'))
diff --git a/src/components/uEditor/UEditor.vue b/src/components/uEditor/UEditor.vue
index 3315c12..adca935 100644
--- a/src/components/uEditor/UEditor.vue
+++ b/src/components/uEditor/UEditor.vue
@@ -62,6 +62,16 @@ export default {
}
},
mounted () {
+ // 首次加载完所有语言包后,浅拷贝存备份(没有找到正常切换语言的api,暂时先这么处理)
+ if (Object.keys(UE.I18N).length > 1) {
+ window.__COPY_UE_I18N__ = { ...UE.I18N }
+ }
+ // 更新语言包(将备份语言包浅拷贝回来,只保留需要的一个需要的语言包)
+ if (localStorage.getItem('language') === 'en-us') {
+ UE.I18N = { en: window.__COPY_UE_I18N__.en }
+ } else {
+ UE.I18N = { ['zh-cn']: window.__COPY_UE_I18N__['zh-cn'] }
+ }
UEDITOR_CONFIG.UEDITOR_HOME_URL = '../../../public/ueditor/'
// 初始化UE
this.editor = UE.delEditor('editor')
diff --git a/src/enums/commonEnums.js b/src/enums/commonEnums.js
index 7e79ffc..d079f91 100644
--- a/src/enums/commonEnums.js
+++ b/src/enums/commonEnums.js
@@ -29,7 +29,8 @@ export const FieldType = {
YEAR_PICKER: { text: '年份选择', value: '14' },
TREE_SINGLE: { text: '树形结构(单选)', value: '15' },
TREE_MODAL_SELECT: { text: '树形弹框', value: '16' },
- TREE_MODAL_SELECT_SEARCH_DIFF: { text: '树形弹框(带出子集和单线父级)', value: '17' }
+ TREE_MODAL_SELECT_SEARCH_DIFF: { text: '树形弹框(查询带出子集和单线父级)', value: '17' },
+ TREE_MODAL_SELECT_SEARCH_CHILD: { text: '树形弹框(查询带出所有子级)', value: '18' }
}
export const TagsTypeEnums = new EsEnums({
@@ -84,13 +85,12 @@ export const IsTrial = {
// 外来标准状态
export const StandardStatus = {
- DRAFT: { text: '起草', value: '1' },
- SEEK_FOR_OPTIONS: { text: '征求意见', value: '2' },
- EXAMINE: { text: '审查', value: '2.1' },
+ CURRENTLY_EFFECTIVE: { text: '现行', value: '1' },
+ RELEASE: { text: '发布', value: '2' },
APPROVAL: { text: '报批', value: '3' },
- RELEASE: { text: '发布', value: '4' },
- BE_IMPLEMENTED_SOON: { text: '即将实施', value: '5' },
- CURRENTLY_EFFECTIVE: { text: '现行有效', value: '6' },
+ EXAMINE: { text: '审查', value: '4' },
+ SEEK_FOR_OPTIONS: { text: '征求意见', value: '5' },
+ DRAFT: { text: '草案', value: '6' },
ABOLISH: { text: '废止', value: '7' }
}
@@ -190,7 +190,7 @@ export const StandardInterpretationNodes = new EsEnums({
initiated: { text: '法规工程师发起', value: 'regulatory_engineer_start', btn: ['save', 'submit'] },
controlDepartLiaisonDistribution: { text: '主控部门联络人分发', value: 'contact_person_distribute', btn: ['transfer', 'save', 'submit'] },
standardInterpreterDistribution: { text: '标准主解读人分发', value: 'master_interpret_distribute', btn: ['reject', 'transfer', 'save', 'submit'] },
- standardInterpreterReDistribution: { text: '标准主解读人分发', value: 'master_interpret_again_distribute', btn: ['reject', 'transfer', 'save', 'submit'] },
+ standardInterpreterReDistribution: { text: '标准主解读人分发', value: 'master_interpret_again_distribute', btn: ['transfer', 'save', 'submit'] },
interpreterFillInfo: { text: '解读人填写信息', value: 'interpreting_people_fillout', btn: ['reject', 'transfer', 'save', 'submit'] },
mainInterpreterSingleLineReview: { text: '标准主解读人审核', value: 'master_interpret_approve', btn: ['reject', 'transfer', 'save', 'agree'] },
standardInterpreterSummary: { text: '标准主解读人汇总', value: 'master_interpret_summary', btn: ['transfer', 'save', 'submit'] },
@@ -253,6 +253,12 @@ export const OcrConvertStateEnums = {
CONVERTED: { text: '转换完成', value: '2' }
}
+// 用户管理来源
+export const UserSource = {
+ IAM: { text: 'IAM', value: '2' },
+ SYSTEMADD: { text: '系统新增', value: '1' }
+}
+
/**
* 展示区域管理
* TODO 标签管理要改了,这里也要同步一下
diff --git a/src/main.js b/src/main.js
index 5009e3c..5ee5a6b 100644
--- a/src/main.js
+++ b/src/main.js
@@ -3,6 +3,7 @@
import Vue from 'vue'
import App from './App.vue'
+import MobileApp from './MobileApp'
import Storage from 'vue-ls'
import router from './router'
import store from './store/'
@@ -49,6 +50,7 @@ import JDictComponenets from '@comp/dict/index.js'
import JTable from '@comp/jero/JTable.vue'
import i18n from '@/common/lang'
+import { isMobile } from '@/utils/util'
// Vue.prototype.rules = rules
Vue.config.productionTip = false
@@ -74,6 +76,14 @@ SSO.init(() => {
Vue.prototype.global = {
emptyLine: '—'
}
+// 当前是中文
+Vue.prototype.isChinese = function () {
+ return this.$i18n.locale === 'zh-cn'
+}
+// 当前是英文
+Vue.prototype.isEnglish = function () {
+ return this.$i18n.locale === 'en-us'
+}
function main () {
new Vue({
@@ -93,7 +103,7 @@ function main () {
store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN))
store.commit('SET_MULTI_PAGE', Vue.ls.get(DEFAULT_MULTI_PAGE, config.multipage))
},
- render: h => h(App),
+ render: h => h(isMobile() ? MobileApp : App),
data: {
Bus: new Vue()
}
diff --git a/src/mixins/ConfigurableTableMixin.js b/src/mixins/ConfigurableTableMixin.js
index 7cd6da6..40ce5de 100644
--- a/src/mixins/ConfigurableTableMixin.js
+++ b/src/mixins/ConfigurableTableMixin.js
@@ -13,7 +13,19 @@ import { mapGetters } from 'vuex'
let importModalLoading
// 需要数据字段翻译的属性类型
-const NEED_DICT_FIELD_TYPE = [FieldType.USER_SINGLE.value, FieldType.ORGAN_SINGLE.value, FieldType.ORGAN_MORE.value, FieldType.FILE_UP.value, FieldType.OPTION_SINGLE.value, FieldType.OPTION_MORE.value, FieldType.TREE.value, FieldType.TREE_SINGLE.value, FieldType.TREE_MODAL_SELECT.value]
+const NEED_DICT_FIELD_TYPE = [
+ FieldType.USER_SINGLE.value,
+ FieldType.ORGAN_SINGLE.value,
+ FieldType.ORGAN_MORE.value,
+ FieldType.FILE_UP.value,
+ FieldType.OPTION_SINGLE.value,
+ FieldType.OPTION_MORE.value,
+ FieldType.TREE.value,
+ FieldType.TREE_SINGLE.value,
+ FieldType.TREE_MODAL_SELECT.value,
+ FieldType.TREE_MODAL_SELECT_SEARCH_DIFF.value,
+ FieldType.TREE_MODAL_SELECT_SEARCH_CHILD.value
+]
const ZH = 'zh-cn'
@@ -162,9 +174,9 @@ export const ConfigurableTableMixin = {
// 是否可排序
item.sorter = item.sortFlag === '1'
item.width = 215
- item.title = this.$i18n.locale === ZH ? item.dbFieldTxt : item.dbFieldEnName
+ item.title = this.isChinese() ? item.dbFieldTxt : item.dbFieldEnName
if (NEED_DICT_FIELD_TYPE.includes(item.fieldShowType)) {
- item.dataIndex = item.dbFieldName + '_dictText'
+ item.dataIndex = this.isChinese() ? item.dbFieldName + '_dictText' : item.dbFieldName + '_dictTextEn'
} else {
item.dataIndex = item.dbFieldName
}
@@ -267,6 +279,12 @@ export const ConfigurableTableMixin = {
},
/* 导入 */
handleImportExcel (info) {
+ // 限制导入大于 importMaxSize, 各个模块可以单独设置大小
+ if (this.importMaxSize && info.file.size > 1024 * 1024 * this.importMaxSize) {
+ this.$message.error(this.$t('importMaxMsg', { size: this.importMaxSize }))
+ info.fileList.pop()
+ return
+ }
// 限制导入大于500MB
if (info.file.size > 1024 * 1024 * 500) {
this.$message.error('导入文件最大500MB!')
diff --git a/src/mixins/WorkCenterMixin.js b/src/mixins/WorkCenterMixin.js
index 6b2896c..f78f5e3 100644
--- a/src/mixins/WorkCenterMixin.js
+++ b/src/mixins/WorkCenterMixin.js
@@ -1,6 +1,7 @@
import { getProcessNodeList, queryTaskNameByTaskId } from '../api/workCenter'
import Vue from 'vue'
import { USER_INFO } from '../store/mutation-types'
+import { findFirstRoute } from '@/utils/util'
export const WorkCenterMixin = {
data () {
@@ -89,7 +90,12 @@ export const WorkCenterMixin = {
let timer = setTimeout(() => {
clearTimeout(timer)
timer = null
- this.$router.go(-1)
+ // 有上个页面就返回,否则就返回第一个页面
+ if (history.length > 1) {
+ this.$router.go(-1)
+ } else {
+ this.$router.replace({ path: findFirstRoute(this.$store.state.user.permissionList) })
+ }
}, 700)
},
switchChange (value) {
@@ -104,7 +110,7 @@ export const WorkCenterMixin = {
*/
beforeRouteEnter (to, from, next) {
if (to.query.taskId) {
- queryTaskNameByTaskId({taskId: to.query.taskId}).then(res => {
+ queryTaskNameByTaskId({ taskId: to.query.taskId }).then(res => {
if (res.success) {
to.query.taskName = res.result.taskName
}
diff --git a/src/permission.js b/src/permission.js
index fcbead3..d551183 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -4,7 +4,7 @@ import store from './store'
import NProgress from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style
import { ACCESS_TOKEN, OAUTH2_LOGIN_PAGE_PATH, UI_CACHE_DB_DICT_DATA, USER_INFO, USER_NAME } from '@/store/mutation-types'
-import { generateIndexRouter, isOAuth2AppEnv, findFirstRoute, welcome } from '@/utils/util'
+import { generateIndexRouter, isOAuth2AppEnv, findFirstRoute, welcome, isMobile } from '@/utils/util'
import { getSSOUserInfo, getTodoSSOUserInfo } from './api/api'
import { updatePageHeight } from './components/tools/setting'
@@ -14,6 +14,14 @@ const whiteList = ['/user/login', '/user/register', '/user/register-result', '/u
whiteList.push(OAUTH2_LOGIN_PAGE_PATH)
router.beforeEach(async (to, from, next) => {
+ if (isMobile()) {
+ if (to.path !== '/') {
+ next({ path: '/' })
+ } else {
+ next()
+ }
+ return
+ }
// 单点登录-OA单点登录
if (to.query.ticket) {
const { result, success, message } = await getTodoSSOUserInfo({ ticket: to.query.ticket })
@@ -37,7 +45,11 @@ router.beforeEach(async (to, from, next) => {
} else if (to.query.code && to.query.state === 'feishu') {
// 如果没有登录,state是飞书,并且有code,就请求飞书单点登录
await store.dispatch('FeiShuLogin', to.query.code).catch((e) => {
- this.$message.warn(e.message)
+ // 从飞书跳转进来,正常提示,系统内跳转进来不提示(解决用了replace,但是go(-1)还会跳转回来)
+ if (from.path === '/') {
+ Vue.prototype.$message.warning(e.message, 3)
+ }
+ next({ path: '/user/login', replace: true })
})
} else if (to.query.code) {
// 研发大前台单点登录
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index cdc24bd..bf7194f 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -144,9 +144,9 @@ const user = {
GetPermissionList ({ commit }) {
return new Promise((resolve, reject) => {
queryPermissionsByUser().then(response => {
- const menuData = response.result.menu
- const authData = response.result.auth
- const allAuthData = response.result.allAuth
+ const menuData = (response.result || {}).menu || []
+ const authData = (response.result || {}).auth || []
+ const allAuthData = (response.result || {}).allAuth
// Vue.ls.set(USER_AUTH,authData);
sessionStorage.setItem(USER_AUTH, JSON.stringify(authData))
sessionStorage.setItem(SYS_BUTTON_AUTH, JSON.stringify(allAuthData))
diff --git a/src/utils/util.js b/src/utils/util.js
index dae62d0..b522f9c 100644
--- a/src/utils/util.js
+++ b/src/utils/util.js
@@ -738,3 +738,51 @@ export function queryStandardInfoByStandardNumber (standardNumber) {
})
})
}
+
+/**
+ * 查找树节点
+ * @param tree {Array} - 树结构
+ * @param findVal - 查找的值
+ * @param valueField - 查找的属性名
+ * @param childrenField - 子节点属性名
+ * @return {null | Object} - 返回对应节点
+ */
+export function findNodeByField (tree, findVal, valueField = 'id', childrenField = 'children') {
+ for (const node of tree) {
+ if (node[valueField] === findVal) {
+ return node
+ }
+ if (node[childrenField] && node[childrenField].length > 0) {
+ const result = findNodeByField(node[childrenField], findVal)
+ if (result) {
+ return result
+ }
+ }
+ }
+ return null
+}
+
+// 判断当前是否移动端
+export function isMobile () {
+ const userAgentInfo = navigator.userAgent
+
+ const mobileAgents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod']
+
+ let mobileFlag = false
+
+ // 根据userAgent判断是否是手机
+ for (let v = 0; v < mobileAgents.length; v++) {
+ if (userAgentInfo.indexOf(mobileAgents[v]) > 0) {
+ mobileFlag = true
+ break
+ }
+ }
+ const screenWidth = window.screen.width
+ const screenHeight = window.screen.height
+
+ // 根据屏幕分辨率判断是否是手机
+ if (screenWidth < 500 && screenHeight < 800) {
+ mobileFlag = true
+ }
+ return mobileFlag
+}
diff --git a/src/views/dashboard/Analysis.vue b/src/views/dashboard/Analysis.vue
index 762288b..4bda887 100644
--- a/src/views/dashboard/Analysis.vue
+++ b/src/views/dashboard/Analysis.vue
@@ -3,26 +3,16 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -46,14 +36,45 @@ export default {
@import '~@assets/less/common.less';
.all-wrapper {
- padding: 20px 8px 0;
-}
-.flex-item {
- margin: 10px;
-}
-.mb-20 {
- margin-bottom: 20px;
+ padding: 8px 8px 0;
+ display: grid;
+ width: 100%;
+ height: calc(100vh - 60px - 8px - 20px);
+ grid-gap: 20px;
+ grid-template-columns: 0.4fr 0.6fr;
+ grid-template-rows: 56px 180px minmax(200px, auto) 180px;
+ grid-template-areas: 'Search Search'
+ 'QuickEntrance QuickEntrance'
+ 'Todo Table'
+ 'Link Table';
+
+ .home-search,
+ .home-quick-entrance,
+ .home-todo,
+ .home-link,
+ .home-table{
+ height: 100%;
+ overflow: hidden;
+ border-radius: 8px;
+ }
+ .home-search {
+ grid-area: Search;
+ overflow: visible;
+ }
+ .home-quick-entrance {
+ grid-area: QuickEntrance;
+ }
+ .home-todo {
+ grid-area: Todo;
+ }
+ .home-link {
+ grid-area: Link;
+ }
+ .home-table {
+ grid-area: Table;
+ }
}
+
/deep/ .top-wrapper {
display: flex;
align-items: center;
@@ -89,6 +110,11 @@ export default {
}
// 1366屏幕
@media screen and (max-width: 1366px) {
+ .all-wrapper {
+ height: calc(100vh - 60px - 8px - 20px + 200px);
+ // 友情链接部分减少了12像素
+ grid-template-rows: 56px 180px minmax(200px, auto) 168px;
+ }
/deep/ .top-wrapper {
.left-p {
font-size: 16px;
diff --git a/src/views/dashboard/modules/FriendLinkCard.vue b/src/views/dashboard/modules/FriendLinkCard.vue
index 10264ad..18d03d3 100644
--- a/src/views/dashboard/modules/FriendLinkCard.vue
+++ b/src/views/dashboard/modules/FriendLinkCard.vue
@@ -1,5 +1,5 @@
-
+
{{$t('dashboard.friendLink.friendLink')}}
@@ -7,15 +7,15 @@
-
+
{{ item.name }}
{{ item.name }}
-
+
diff --git a/src/views/dashboard/modules/QuickEnterCard.vue b/src/views/dashboard/modules/QuickEnterCard.vue
index edc6b6b..ca49316 100644
--- a/src/views/dashboard/modules/QuickEnterCard.vue
+++ b/src/views/dashboard/modules/QuickEnterCard.vue
@@ -1,5 +1,5 @@
-
+
{{ this.$t('dashboard.quickEnter.quickEnter') }}
@@ -24,7 +24,7 @@
-
+
diff --git a/src/views/dashboard/modules/SearchAndWarningCard.vue b/src/views/dashboard/modules/SearchAndWarningCard.vue
index 8fe1108..31c04d9 100644
--- a/src/views/dashboard/modules/SearchAndWarningCard.vue
+++ b/src/views/dashboard/modules/SearchAndWarningCard.vue
@@ -12,10 +12,11 @@
size="middle"
:rowKey="(_, index) => index"
class="table"
- :scroll="{ x: '100%', y: '40vh' }"
+ :scroll="{ x: '100%', y: 'calc(100vh - 550px)' }"
:columns="showColumns"
:dataSource="dataSource"
:pagination="ipagination"
+ :components="components"
@change="handleTableChange"
:loading="loading">
@@ -32,6 +33,14 @@
{{ global.emptyLine }}
+
+
+
+ {{ text || text === 0 ? text : global.emptyLine }}
+ {{ text }}
+ {{ global.emptyLine }}
+
+
@@ -61,7 +70,7 @@
-
diff --git a/src/views/system/DictList.vue b/src/views/system/DictList.vue
index 5437976..73ef1d7 100644
--- a/src/views/system/DictList.vue
+++ b/src/views/system/DictList.vue
@@ -132,11 +132,11 @@ export default {
title: this.$t('operation'),
// dataIndex: 'action',
align: 'center',
- width: 100,
+ width: 150,
scopedSlots: { customRender: 'action' }
}
],
- canOpeFlag: process.env.VUE_APP_TAG_FLAG === '0', // 是否可以操作编辑和删除,开发环境可以
+ canOpeFlag: false, // process.env.VUE_APP_TAG_FLAG === '0', // 是否可以操作编辑和删除,开发环境可以
dict: '',
labelCol: {
xs: { span: 8 },
@@ -158,7 +158,8 @@ export default {
// 字典配置
{
text: this.$t('system.tag.dictionaryConfiguration'),
- clickEvent: 'editDictItem'
+ clickEvent: 'editDictItem',
+ has: 'sys:dict:set'
},
// 编辑
{
diff --git a/src/views/system/RoleUserList.vue b/src/views/system/RoleUserList.vue
index 7416bd0..6e1f3cb 100644
--- a/src/views/system/RoleUserList.vue
+++ b/src/views/system/RoleUserList.vue
@@ -247,7 +247,8 @@ export default {
title: this.$t('status'),
align: 'center',
width: 80,
- dataIndex: 'status_dictText'
+ dataIndex: 'status_dictText',
+ scopedSlots: { customRender: 'dictText' }
},
{
@@ -277,13 +278,13 @@ export default {
{
text: this.$t('roleManage.userBtn'),
clickEvent: 'handleOpen',
- has: ''
+ has: 'sys:role:user'
},
// 授权
{
text: this.$t('roleManage.toGrantAuthorization'),
clickEvent: 'handlePerssion',
- has: ''
+ has: 'sys:role:permission'
},
// 编辑
{
@@ -532,6 +533,7 @@ export default {
},
searchReset2 () {
this.queryParam2 = {}
+ this.onClearSelected2()
this.loadData2(1)
},
handleTableChange2 (pagination, filters, sorter) {
diff --git a/src/views/system/UserAnnouncementList.vue b/src/views/system/UserAnnouncementList.vue
index 29d01d2..6096e10 100644
--- a/src/views/system/UserAnnouncementList.vue
+++ b/src/views/system/UserAnnouncementList.vue
@@ -63,9 +63,9 @@
- {{ text}}
+ {{ isChinese() ? text : record.readFlag_dictTextEn }}
- {{ text }}
+ {{ isChinese() ? text : record.readFlag_dictTextEn }}
@@ -142,7 +142,7 @@ export default {
align: 'center',
dataIndex: 'msgCategory_dictText',
width: 150,
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{
title: this.$t('message.my.publisher'),
diff --git a/src/views/system/UserList.vue b/src/views/system/UserList.vue
index b778b08..ce8d987 100644
--- a/src/views/system/UserList.vue
+++ b/src/views/system/UserList.vue
@@ -172,6 +172,7 @@ import JTable from '@/components/jero/JTable'
import JSearchSelectTag from '@/components/dict/JSearchSelectTag'
import UploadHandStampModal from './modules/UploadHandStampModal'
import { isHasPermission } from '../../utils/hasPermission'
+import { UserSource } from '../../enums/commonEnums'
export default {
name: 'UserList',
@@ -238,7 +239,8 @@ export default {
align: 'center',
width: 90,
dataIndex: 'sex_dictText',
- sorter: true
+ sorter: true,
+ scopedSlots: { customRender: 'dictText' }
},
{
title: this.$t('phoneNumber'),
@@ -274,7 +276,8 @@ export default {
title: this.$t('status'),
align: 'center',
width: 80,
- dataIndex: 'status_dictText'
+ dataIndex: 'status_dictText',
+ scopedSlots: { customRender: 'dictText' }
},
{
title: this.$t('operation'),
@@ -302,28 +305,37 @@ export default {
{
text: this.$t('edit'),
clickEvent: 'handleEdit',
- has: 'user:edit'
+ has: 'user:edit',
+ show: (record) => {
+ // IAM同步过来的不能编辑
+ return record.source !== UserSource.IAM.value
+ }
},
// 详情
{
text: this.$t('details'),
clickEvent: 'handleDetail',
- has: ''
+ has: 'user:detail'
},
// 密码
{
text: this.$t('user.password'),
clickEvent: 'handleChangePassword',
- has: '',
+ has: 'user:password',
show: (record) => {
- return this.isDev
+ // IAM同步过来的不能编辑
+ return record.source !== UserSource.IAM.value
}
},
// 删除
{
text: this.$t('delete'),
clickEvent: 'handleDelete',
- has: 'sys:user:sel'
+ has: 'sys:user:sel',
+ show: (record) => {
+ // IAM同步过来的不能删除
+ return record.source !== UserSource.IAM.value
+ }
},
// 冻结
{
@@ -331,7 +343,8 @@ export default {
clickEvent: 'handleFrozen',
has: 'user:edit',
show: (record) => {
- return this.isDev && (record.status + '') === '1'
+ // IAM同步过来的不能编辑
+ return (record.status + '') === '1' && record.source !== UserSource.IAM.value
}
},
// 解冻
@@ -340,15 +353,16 @@ export default {
clickEvent: 'handleFrozen',
has: 'user:edit',
show: (record) => {
- return this.isDev && (record.status + '') === '2'
+ // IAM同步过来的不能编辑
+ return (record.status + '') === '2' && record.source !== UserSource.IAM.value
}
- },
- // 上传手写章
- {
- text: this.$t('user.uploadHandStamp'),
- clickEvent: 'handleUploadHandStamp',
- has: 'user:uploadHandStamp'
}
+ // 上传手写章
+ // {
+ // text: this.$t('user.uploadHandStamp'),
+ // clickEvent: 'handleUploadHandStamp',
+ // has: 'user:uploadHandStamp'
+ // }
]
}
},
@@ -442,10 +456,10 @@ export default {
})
},
handleChangePassword (username) {
- if (process.env.VUE_APP_CURRENT_SYSTEM === 'IAM') {
- this.$message.warn('请前往IAM修改密码')
- return
- }
+ // if (process.env.VUE_APP_CURRENT_SYSTEM === 'IAM') {
+ // this.$message.warn('请前往IAM修改密码')
+ // return
+ // }
this.$refs.passwordmodal.show(username)
},
passwordModalOk () {
diff --git a/src/views/system/firendshipLinkManage/FriendshipLinkList.vue b/src/views/system/firendshipLinkManage/FriendshipLinkList.vue
index 0194d51..1d7364a 100644
--- a/src/views/system/firendshipLinkManage/FriendshipLinkList.vue
+++ b/src/views/system/firendshipLinkManage/FriendshipLinkList.vue
@@ -52,6 +52,14 @@
+
+
+ {{ text || global.emptyLine }}
+ {{ text }}
+ {{ global.emptyLine }}
+
+
+
{{ $t('edit') }}
@@ -81,6 +89,11 @@ export default {
mixins: [JeroListMixin],
data () {
return {
+ /* 排序参数 */
+ isorter: {
+ column: 'sort',
+ order: 'asc'
+ },
columns: [
{
title: this.$t('serialNumber'),
@@ -135,7 +148,10 @@ export default {
}
},
methods: {
- isHasPermission
+ isHasPermission,
+ toLink (href) {
+ window.open(href)
+ }
}
}
diff --git a/src/views/system/log/LoginLogList.vue b/src/views/system/log/LoginLogList.vue
index 655386f..7ccfc9a 100644
--- a/src/views/system/log/LoginLogList.vue
+++ b/src/views/system/log/LoginLogList.vue
@@ -43,6 +43,14 @@
:loading="loading"
@change="handleTableChange">
+
+
+
+ {{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}
+ {{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}
+
+
+
@@ -112,7 +120,8 @@ export default {
{
title: this.$t('log.logType'),
dataIndex: 'logType_dictText',
- align: 'center'
+ align: 'center',
+ scopedSlots: { customRender: 'dictText' }
},
{
title: this.$t('createTime'),
diff --git a/src/views/system/log/OperatorLogList.vue b/src/views/system/log/OperatorLogList.vue
index 9c688cd..43763f4 100644
--- a/src/views/system/log/OperatorLogList.vue
+++ b/src/views/system/log/OperatorLogList.vue
@@ -48,6 +48,14 @@
:loading="loading"
@change="handleTableChange">
+
+
+
+ {{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}
+ {{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}
+
+
+
{{ $t('log.requestMethod') }}:{{ record.method }}
{{ $t('log.requestParam') }}:{{ record.requestParam }}
@@ -127,7 +135,8 @@ export default {
{
title: this.$t('log.logType'),
dataIndex: 'logType_dictText',
- align: 'center'
+ align: 'center',
+ scopedSlots: { customRender: 'dictText' }
},
{
title: this.$t('createTime'),
diff --git a/src/views/system/modules/SelectUserModal.vue b/src/views/system/modules/SelectUserModal.vue
index c8ef27b..040bc30 100644
--- a/src/views/system/modules/SelectUserModal.vue
+++ b/src/views/system/modules/SelectUserModal.vue
@@ -100,7 +100,8 @@ export default {
title: this.$t('user.gender'),
align: 'center',
width: 100,
- dataIndex: 'sex_dictText'
+ dataIndex: 'sex_dictText',
+ scopedSlots: { customRender: 'dictText' }
},
{
title: this.$t('phoneNumber'),
diff --git a/src/views/system/modules/UserModal.vue b/src/views/system/modules/UserModal.vue
index 78be78c..8bd5f84 100644
--- a/src/views/system/modules/UserModal.vue
+++ b/src/views/system/modules/UserModal.vue
@@ -65,12 +65,24 @@
:labelCol="labelCol"
:wrapperCol="wrapperCol"
v-show="!roleDisabled">
-
+
+
+
+
+
+
-
+ mode="tags"
+ :filter-option="filterOption"
+ >
+
+ {{ item.label }}
+
+
@@ -99,23 +111,23 @@
-->
-
-
- {{ $t('user.ordinaryUsers') }}
- {{ $t('user.superior') }}
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -128,13 +140,21 @@
-
- {{ $t('user.male') }}
- {{ $t('user.female') }}
-
+
+
+
+
+
+
+
+
+
@@ -270,6 +290,9 @@ export default {
}
},
methods: {
+ filterOption (input, option) {
+ return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+ },
add () {
this.refresh()
this.validatorRules.phone = [{ validator: this.validatePhone }]
@@ -283,7 +306,7 @@ export default {
// 根据屏幕宽度自适应抽屉宽度
this.resetScreenSize()
that.model = Object.assign({}, {
- selectedroles: '',
+ selectedroles: undefined,
selecteddeparts: ''
}, record)
// 身份为上级显示负责部门,否则不显示
@@ -344,7 +367,7 @@ export default {
getUserRoles (userid) {
queryUserRole({ userid: userid }).then((res) => {
if (res.success) {
- this.model.selectedroles = res.result.join(',')
+ this.model.selectedroles = res.result
}
})
},
@@ -407,7 +430,9 @@ export default {
if (this.model.userIdentity !== 2) {
this.model.departIds = ''
}
-
+ if (Array.isArray(this.model.selectedroles)) {
+ this.model.selectedroles = this.model.selectedroles.join(',')
+ }
// 对密码、邮箱、手机号进行加密
const encrypt = new JSEncrypt()
encrypt.setPublicKey(that.rsaPublicKey)
diff --git a/src/views/system/modules/UserRoleModal.vue b/src/views/system/modules/UserRoleModal.vue
index de35051..4722952 100644
--- a/src/views/system/modules/UserRoleModal.vue
+++ b/src/views/system/modules/UserRoleModal.vue
@@ -136,6 +136,10 @@ export default {
permissionIds: that.checkedKeys.join(','),
lastpermissionIds: that.defaultCheckedKeys.join(',')
}
+ // 只勾选父节点确定后,再次打开点击父子关联时,节点只是回显,没有被真实勾上,这里需要拿到所有子集的id
+ if (!that.checkStrictly) {
+ params.permissionIds = that.collectAllRelatedKeys(this.treeData, [...that.checkedKeys]).join(',')
+ }
that.loading = true
console.log('请求参数:', params)
saveRolePermission(params).then((res) => {
@@ -166,6 +170,36 @@ export default {
console.log(this.defaultCheckedKeys)
})
})
+ },
+ /**
+ * 返回父子关联的keys
+ * @param tree - 树结构
+ * @param keys - 当前勾选的keys
+ * @return {any[]} - 返回所有父子关联的key
+ */
+ collectAllRelatedKeys (tree, keys) {
+ const result = new Set() // 使用集合来避免重复
+ function findAndCollectNodes (nodes) {
+ for (const node of nodes) {
+ if (keys.includes(node.key)) {
+ collectAllDescendants(node)
+ } else if (node.children) {
+ findAndCollectNodes(node.children)
+ }
+ }
+ }
+ function collectAllDescendants (node) {
+ if (!result.has(node.key)) {
+ result.add(node.key)
+ }
+ if (node.children) {
+ for (const child of node.children) {
+ collectAllDescendants(child)
+ }
+ }
+ }
+ findAndCollectNodes(tree)
+ return Array.from(result)
}
},
watch: {
diff --git a/src/views/system/modules/icon/Icons.vue b/src/views/system/modules/icon/Icons.vue
index d8d4f0c..06059df 100644
--- a/src/views/system/modules/icon/Icons.vue
+++ b/src/views/system/modules/icon/Icons.vue
@@ -72,7 +72,7 @@ const editIcons = ['edit', 'form', 'copy', 'scissor', 'delete', 'snippets', 'dif
const dataIcons = ['area-chart', 'pie-chart', 'bar-chart', 'dot-chart', 'line-chart', 'radar-chart', 'heat-map', 'fall', 'rise', 'stock', 'box-plot', 'fund', 'sliders']
const webIcons = ['lock', 'unlock', 'bars', 'book', 'calendar', 'cloud', 'cloud-download', 'code', 'copy', 'credit-card', 'delete', 'desktop', 'download', 'ellipsis', 'file', 'file-text', 'file-unknown', 'file-pdf', 'file-word', 'file-excel', 'file-jpg', 'file-ppt', 'file-markdown', 'file-add', 'folder', 'folder-open', 'folder-add', 'hdd', 'frown', 'meh', 'smile', 'inbox', 'laptop', 'appstore', 'link', 'mail', 'mobile', 'notification', 'paper-clip', 'picture', 'poweroff', 'reload', 'search', 'setting', 'share-alt', 'shopping-cart', 'tablet', 'tag', 'tags', 'to-top', 'upload', 'user', 'video-camera', 'home', 'loading', 'loading-3-quarters', 'cloud-upload', 'star', 'heart', 'environment', 'eye', 'camera', 'save', 'team', 'solution', 'phone', 'filter', 'exception', 'export', 'customer-service', 'qrcode', 'scan', 'like', 'dislike', 'message', 'pay-circle', 'calculator', 'pushpin', 'bulb', 'select', 'switcher', 'rocket', 'bell', 'disconnect', 'database', 'compass', 'barcode', 'hourglass', 'key', 'flag', 'layout', 'printer', 'sound', 'usb', 'skin', 'tool', 'sync', 'wifi', 'car', 'schedule', 'user-add', 'user-delete', 'usergroup-add', 'usergroup-delete', 'man', 'woman', 'shop', 'gift', 'idcard', 'medicine-box', 'red-envelope', 'coffee', 'copyright', 'trademark', 'safety', 'wallet', 'bank', 'trophy', 'contacts', 'global', 'shake', 'api', 'fork', 'dashboard', 'table', 'profile', 'alert', 'audit', 'branches', 'build', 'border', 'crown', 'experiment', 'fire', 'money-collect', 'property-safety', 'read', 'reconciliation', 'rest', 'security-scan', 'insurance', 'interation', 'safety-certificate', 'project', 'thunderbolt', 'block', 'cluster', 'deployment-unit', 'dollar', 'euro', 'pound', 'file-done', 'file-exclamation', 'file-protect', 'file-search', 'file-sync', 'gateway', 'gold', 'robot', 'shopping']
const logoIcons = ['android', 'apple', 'windows', 'ie', 'chrome', 'github', 'aliwangwang', 'dingding', 'weibo-square', 'weibo-circle', 'taobao-circle', 'html5', 'weibo', 'twitter', 'wechat', 'youtube', 'alipay-circle', 'taobao', 'skype', 'qq', 'medium-workmark', 'gitlab', 'medium', 'linkedin', 'google-plus', 'dropbox', 'facebook', 'codepen', 'amazon', 'google', 'codepen-circle', 'alipay', 'ant-design', 'aliyun', 'zhihu', 'slack', 'slack-square', 'behance', 'behance-square', 'dribbble', 'dribbble-square', 'instagram', 'yuque', 'alibaba', 'yahoo']
-const selfIcons = ['icon-kucun_crm', 'icon-24gf-folderOpen', 'icon-qicheweixiu', 'icon-yujing', 'icon-shezhi', 'icon-shouye', 'icon-file-star', 'icon-file-set', 'icon-a-iconfontgerenzhongxin1', 'icon-yingyong', 'icon-fill-message-square']
+const selfIcons = ['icon-kucun_crm', 'icon-24gf-folderOpen', 'icon-qicheweixiu', 'icon-yujing', 'icon-shezhi', 'icon-shouye', 'icon-file-star', 'icon-file-set', 'icon-a-iconfontgerenzhongxin1', 'icon-yingyong', 'icon-fill-message-square', 'icon-xiaoxi-mian--', 'icon-yun', 'icon-rizhi']
export default {
name: 'Icons',
props: {
diff --git a/src/views/system/tags/modules/ClauseSplittingDrawer.vue b/src/views/system/tags/modules/ClauseSplittingDrawer.vue
index 55b6f45..e9cdd83 100644
--- a/src/views/system/tags/modules/ClauseSplittingDrawer.vue
+++ b/src/views/system/tags/modules/ClauseSplittingDrawer.vue
@@ -100,10 +100,10 @@
-
-
-
-
+
+
+
diff --git a/src/views/system/tags/modules/StandardDrawer.vue b/src/views/system/tags/modules/StandardDrawer.vue
index f7416d5..791a85e 100644
--- a/src/views/system/tags/modules/StandardDrawer.vue
+++ b/src/views/system/tags/modules/StandardDrawer.vue
@@ -53,24 +53,25 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -196,7 +197,7 @@
diff --git a/src/views/workCenter/processCenter/table/DoneList.vue b/src/views/workCenter/processCenter/table/DoneList.vue
index 83ca2f2..d24ae65 100644
--- a/src/views/workCenter/processCenter/table/DoneList.vue
+++ b/src/views/workCenter/processCenter/table/DoneList.vue
@@ -97,7 +97,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'prcType_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 流程名称
title: this.$t('processName'),
@@ -140,7 +140,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'prcStatus_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{
title: this.$t('operation'),
diff --git a/src/views/workCenter/processCenter/table/DraftList.vue b/src/views/workCenter/processCenter/table/DraftList.vue
index 7565617..cddab45 100644
--- a/src/views/workCenter/processCenter/table/DraftList.vue
+++ b/src/views/workCenter/processCenter/table/DraftList.vue
@@ -75,7 +75,7 @@ export default {
align: 'center',
width: 300,
dataIndex: 'prcType_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 流程名称
title: this.$t('processName'),
diff --git a/src/views/workCenter/processCenter/table/MonitorList.vue b/src/views/workCenter/processCenter/table/MonitorList.vue
index d074bf2..75a9069 100644
--- a/src/views/workCenter/processCenter/table/MonitorList.vue
+++ b/src/views/workCenter/processCenter/table/MonitorList.vue
@@ -113,7 +113,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'prcType_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 流程名称
title: this.$t('processName'),
@@ -162,7 +162,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'prcStatus_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{
title: this.$t('operation'),
diff --git a/src/views/workCenter/processCenter/table/SentList.vue b/src/views/workCenter/processCenter/table/SentList.vue
index 7cffe36..fe0cabe 100644
--- a/src/views/workCenter/processCenter/table/SentList.vue
+++ b/src/views/workCenter/processCenter/table/SentList.vue
@@ -117,7 +117,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'prcType_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 流程名称
title: this.$t('processName'),
@@ -160,7 +160,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'prcStatus_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{
title: this.$t('operation'),
diff --git a/src/views/workCenter/processCenter/table/TodoList.vue b/src/views/workCenter/processCenter/table/TodoList.vue
index 3b28610..059da6a 100644
--- a/src/views/workCenter/processCenter/table/TodoList.vue
+++ b/src/views/workCenter/processCenter/table/TodoList.vue
@@ -112,7 +112,7 @@ export default {
align: 'center',
width: 260,
dataIndex: 'prcType_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 流程名称
title: this.$t('processName'),
diff --git a/src/views/workCenter/regulatoryComplianceCheckProcess/RegulatoryComplianceCheckProcess.vue b/src/views/workCenter/regulatoryComplianceCheckProcess/RegulatoryComplianceCheckProcess.vue
index e28e984..157c5db 100644
--- a/src/views/workCenter/regulatoryComplianceCheckProcess/RegulatoryComplianceCheckProcess.vue
+++ b/src/views/workCenter/regulatoryComplianceCheckProcess/RegulatoryComplianceCheckProcess.vue
@@ -148,7 +148,7 @@
- {{ $t('reject') }}
+ {{ $t('reject') }}
{{ $t('turnTo') }}
@@ -628,21 +628,17 @@ export default {
},
// 转办选完人的回调
userSelectModalChange (userIds) {
- this.approvalInfoForm.validateFields((err, values) => {
- if (!err) {
- this.loading = true
- const param = Object.assign({}, values)
- param.userId = userIds
- param.taskId = this.$route.query.taskId
- processTransfer(param).then(res => {
- if (res.success) {
- this.$message.success(res.message)
- this.goBack()
- } else {
- this.$message.warning(res.message)
- this.loading = false
- }
- })
+ this.loading = true
+ const param = {}
+ param.userId = userIds
+ param.taskId = this.$route.query.taskId
+ processTransfer(param).then(res => {
+ if (res.success) {
+ this.$message.success(res.message)
+ this.goBack()
+ } else {
+ this.$message.warning(res.message)
+ this.loading = false
}
})
},
diff --git a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/DesignEngineerEvaluation.vue b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/DesignEngineerEvaluation.vue
index eca30a7..172e021 100644
--- a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/DesignEngineerEvaluation.vue
+++ b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/DesignEngineerEvaluation.vue
@@ -4,7 +4,7 @@
-
+
+ {{ $t('view') }}
+
+
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
{{ global.emptyLine }}
@@ -29,8 +32,10 @@
style="width: 100%"
:placeholder="$t('pleaseSelect')"
dict-code="evaluation_result"
+ :getPopupContainer="(node) => node.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode"
:disabled="disabled"
@change="resultChange(record)"
+ @dropdownVisibleChange="resultDropdownVisibleChange"
v-model="record.result">
@@ -105,7 +110,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'modelStatus_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 评价结果
title: this.$t('workCenter.regulatoryComplianceCheckProcess.evaluationResult'),
@@ -298,6 +303,19 @@ export default {
}
return data
},
+ // 点击评估结果,滚动条滚动到最后
+ resultDropdownVisibleChange (open) {
+ if (!open) {
+ return
+ }
+ const table = this.$refs.expandTable
+ if (table) {
+ const scrollBox = table.$el.querySelector('.ant-table-body')
+ if (scrollBox) {
+ scrollBox.scrollLeft = scrollBox.scrollWidth
+ }
+ }
+ },
// 评估结果改变,清空备注和佐证材料,不满足要求的现状,整改方案,整改周期,整改费用,与其他项目共用性,共用后本项目所需费用
resultChange (record) {
const index = this.dataSource.findIndex(item => item.id === record.id)
@@ -321,6 +339,8 @@ export default {
}
-
diff --git a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/EngineerInitBaseInfo.vue b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/EngineerInitBaseInfo.vue
index c7a5141..70fadb8 100644
--- a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/EngineerInitBaseInfo.vue
+++ b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/EngineerInitBaseInfo.vue
@@ -91,9 +91,10 @@
@@ -113,11 +114,12 @@
@numberChange="marketRegulationNumberChange"
:name-str="formInline.applicableMarketNo"
:disabled="isRejectedData"
+ selectOnly
:placeholder="$t('pleaseSelect')+$t('applicableMarket')" />
-
-
+
+
*
@@ -129,6 +131,7 @@
:placeholder="$t('pleaseSelect') + this.$t('workCenter.regulatoryComplianceCheckProcess.isAlike')"
dict-code="yn"
:disabled="isRejectedData"
+ @change="isSameLastVersionChange"
v-model="formInline.isSameLastVersion">
@@ -191,7 +194,7 @@
-
+
+ {{ $t('view') }}
+
+
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
{{ global.emptyLine }}
@@ -219,7 +225,7 @@
@@ -265,7 +271,7 @@ const FILE_TYPE_PDF = 'pdf'
const CAN_PREVIEW_FILE_SUFFIX = ['jpg', 'jpeg', 'png', 'pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx']
const uidGenerator = () => {
- return '-' + parseInt(Math.random() * 10000 + 1, 10)
+ return '-' + parseInt(Math.random() * 1000000 + 1, 10)
}
export default {
@@ -287,6 +293,7 @@ export default {
data () {
return {
StandardSource,
+ DecompositionSource,
loading: false,
formInline: {},
splitFileSourceList: [], // 标准分解单下拉
@@ -336,7 +343,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'standardState_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 分解单来源
title: this.$t('workCenter.regulatoryComplianceCheckProcess.decompositionSingleSource'),
@@ -444,7 +451,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'modelStatus_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 责任部门
title: this.$t('responsibleDepartment'),
@@ -475,7 +482,8 @@ export default {
id: ''
}
},
- isRejectedData: false // 是否是被驳回的
+ isRejectedData: false, // 是否是被驳回的
+ isChangeStandardAfterClickGenerate: true // 是否修改标准后点击了生成按钮
}
},
mounted () {
@@ -495,6 +503,11 @@ export default {
if (this.standardDataSource[0].standardId) {
this.initInterpretGetFileByStandardId(this.standardDataSource[0].standardId)
}
+ // 如果是json回显的话会有改完标准是否重新点击了生成
+ console.log('------------isChangeStandardAfterClickGenerate', data.isChangeStandardAfterClickGenerate)
+ if (data.isChangeStandardAfterClickGenerate) {
+ this.isChangeStandardAfterClickGenerate = data.isChangeStandardAfterClickGenerate === '1'
+ }
const formInline = {}
formInline.modelFile = data.standardInfo.modelFile
formInline.applicableMarket = data.standardInfo.applicableMarket
@@ -518,6 +531,8 @@ export default {
// 组合businessInfoDTO,抛出
const data = {}
data.standardInfo = Object.assign({}, this.standardDataSource[0], this.formInline)
+ // 更换标准后是否重新生成了,保存json的时候存一下,防止保存之前改了标准,再次办理的时候直接提交校验不到改了标准
+ data.isChangeStandardAfterClickGenerate = this.isChangeStandardAfterClickGenerate ? '1' : '0'
data.detailInfoList = JSON.parse(JSON.stringify(this.dataList))
return data
},
@@ -530,6 +545,11 @@ export default {
// 提示请先生成数据
this.$message.warning(this.$t('workCenter.regulatoryComplianceCheckProcess.pleaseGenerate'))
data = false
+ } else if (!this.isChangeStandardAfterClickGenerate) {
+ // 改了标准之后没有点击生成按钮
+ // 提示请重新生成数据
+ this.$message.warning(this.$t('workCenter.regulatoryComplianceCheckProcess.pleaseAnewGenerate'))
+ data = false
} else {
data.standardInfo = Object.assign({}, this.standardDataSource[0], this.formInline)
data.detailInfoList = JSON.parse(JSON.stringify(this.dataList))
@@ -563,8 +583,20 @@ export default {
},
// 分解单来源修改
splitFileSourceChange () {
+ // 修改了数据没有点击生成按钮
+ this.isChangeStandardAfterClickGenerate = false
this.$forceUpdate()
},
+ // 车型项目修改
+ modelFileChange () {
+ // 修改了数据没有点击生成按钮
+ this.isChangeStandardAfterClickGenerate = false
+ },
+ // 是否与上一版相同切换
+ isSameLastVersionChange () {
+ // 修改了数据没有点击生成按钮
+ this.isChangeStandardAfterClickGenerate = false
+ },
// 显示条款内容弹框
showContent (val) {
this.$refs.splitClauseDetail.open(val)
@@ -615,6 +647,7 @@ export default {
// 标准状态
obj.standardState = result.standard_state
obj.standardState_dictText = result.standard_state_dictText
+ obj.standardState_dictTextEn = result.standard_state_dictTextEn
// 分解单来源初始化成不带入
obj.splitFileSource = DecompositionSource.NO_INPUT.value
// 新生产车实施日期
@@ -623,6 +656,8 @@ export default {
obj.newAuthImplDate = result.new_auth_impl_date
this.standardDataSource[0] = obj
this.isGetDataAfter = true
+ // 修改了标准没有点击生成按钮
+ this.isChangeStandardAfterClickGenerate = false
} else {
this.$message.warning(res.message)
}
@@ -646,6 +681,8 @@ export default {
manualAddOk (result, isEdit) {
console.log(result)
this.standardDataSource[0] = Object.assign({}, result)
+ // 修改了标准没有点击生成按钮
+ this.isChangeStandardAfterClickGenerate = false
this.$emit('processNameChange', (result.standardNumber || '') + '-' + (result.standardName || '') + '-' + '法规符合性排查')
this.$forceUpdate()
},
@@ -689,6 +726,10 @@ export default {
this.$emit('loading', true)
// 获取下方那个表格信息
const param = Object.assign({}, this.standardDataSource[0], this.formInline)
+ // 如果是添加标准分解单来源是不带入或者是手动新增的,是否与上一版相同设置成空
+ if ((param.standardId && param.splitFileSource === DecompositionSource.NO_INPUT.value) || !param.standardId) {
+ param.isSameLastVersion = undefined
+ }
regulatoryComplianceCheckGenerate(param).then(res => {
if (res.success) {
this.$message.success(res.message)
@@ -699,6 +740,8 @@ export default {
})
this.dataSource = JSON.parse(JSON.stringify(dataSource))
this.dataList = JSON.parse(JSON.stringify(dataSource))
+ // 点击了生成按钮
+ this.isChangeStandardAfterClickGenerate = true
} else {
if (Array.isArray(res.message) && res.message.length > 0) {
this.messageLineFeed(this.$t('fileUploadError'), res.message)
diff --git a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/FinishAuditBaseInfo.vue b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/FinishAuditBaseInfo.vue
index 4496df1..b456d69 100644
--- a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/FinishAuditBaseInfo.vue
+++ b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/FinishAuditBaseInfo.vue
@@ -4,7 +4,7 @@
-
+
+ {{ $t('view') }}
+
+
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
{{ global.emptyLine }}
@@ -99,7 +102,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'modelStatus_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 责任部门
title: this.$t('responsibleDepartment'),
@@ -120,7 +123,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'result_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 不满足要求的现状
title: this.$t('workCenter.regulatoryComplianceCheckProcess.theStatusNotMeetRequirements'),
diff --git a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/InterfacePersonDeliveryBaseInfo.vue b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/InterfacePersonDeliveryBaseInfo.vue
index 749c2d8..ec173ae 100644
--- a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/InterfacePersonDeliveryBaseInfo.vue
+++ b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/InterfacePersonDeliveryBaseInfo.vue
@@ -30,7 +30,7 @@
-
+
+ {{ $t('view') }}
+
+
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
{{ global.emptyLine }}
@@ -138,7 +141,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'modelStatus_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
}
],
dataSource: [],
diff --git a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderCollectBaseInfo.vue b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderCollectBaseInfo.vue
index 8085464..1bcff4a 100644
--- a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderCollectBaseInfo.vue
+++ b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderCollectBaseInfo.vue
@@ -11,7 +11,7 @@
-
+
+ {{ $t('view') }}
+
+
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
{{ global.emptyLine }}
@@ -190,7 +193,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'modelStatus_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 责任部门
title: this.$t('responsibleDepartment'),
@@ -211,7 +214,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'result_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 不满足要求的现状
title: this.$t('workCenter.regulatoryComplianceCheckProcess.theStatusNotMeetRequirements'),
diff --git a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderCollectEditModal.vue b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderCollectEditModal.vue
index fcd2b0d..a08e0d4 100644
--- a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderCollectEditModal.vue
+++ b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderCollectEditModal.vue
@@ -172,6 +172,7 @@ export default {
resultChange (value) {
this.model.result = value
this.model.result_dictText = this.$refs.resultRef.dictOptions.find(item => item.value === value).text
+ this.model.result_dictTextEn = this.$refs.resultRef.dictOptions.find(item => item.value === value).enText
// 清空备注和佐证材料,不满足要求的现状,整改方案,整改周期,整改费用,与其他项目共用性,共用后本项目所需费用
this.model.remark = ''
this.model.material = ''
diff --git a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderDistributesBaseInfo.vue b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderDistributesBaseInfo.vue
index e16c28f..ae3cb54 100644
--- a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderDistributesBaseInfo.vue
+++ b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderDistributesBaseInfo.vue
@@ -40,7 +40,7 @@
-
+
+ {{ $t('view') }}
+
+
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
{{ global.emptyLine }}
@@ -65,7 +68,7 @@
-
+
{{ $t('import') }}
@@ -77,7 +80,7 @@
-
+
+ {{ $t('view') }}
+
+
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
{{ global.emptyLine }}
@@ -102,8 +108,10 @@
style="width: 100%"
:placeholder="disabled ? '' : $t('pleaseSelect')"
dict-code="evaluation_result"
+ :getPopupContainer="(node) => node.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode"
:disabled="disabled"
@change="resultChange(record)"
+ @dropdownVisibleChange="resultDropdownVisibleChange"
v-model="record.result">
@@ -224,6 +232,9 @@ export default {
},
exportFileName () {
return this.formInline.standardNumber + this.formInline.standardName + '符合性排查'
+ },
+ importData () {
+ return {taskId: this.$route.query.taskId}
}
},
data () {
@@ -321,7 +332,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'modelStatus_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 设计工程师
title: this.$t('designEngineer'),
@@ -375,7 +386,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'modelStatus_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 评价结果
title: this.$t('workCenter.regulatoryComplianceCheckProcess.evaluationResult'),
@@ -860,6 +871,19 @@ export default {
// 显示条款内容弹框
showContent (val) {
this.$refs.splitClauseDetail.open(val)
+ },
+ // 点击评估结果,滚动条滚动到最后
+ resultDropdownVisibleChange (open) {
+ if (!open) {
+ return
+ }
+ const table = this.$refs.expandTable
+ if (table) {
+ const scrollBox = table.$el.querySelector('.ant-table-body')
+ if (scrollBox) {
+ scrollBox.scrollLeft = scrollBox.scrollWidth
+ }
+ }
}
}
}
diff --git a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderSingleAuditBaseInfo.vue b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderSingleAuditBaseInfo.vue
index 1bcdfca..8240a28 100644
--- a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderSingleAuditBaseInfo.vue
+++ b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderSingleAuditBaseInfo.vue
@@ -4,7 +4,7 @@
-
+
+ {{ $t('view') }}
+
+
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
{{ global.emptyLine }}
@@ -113,7 +116,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'modelStatus_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 责任部门
title: this.$t('responsibleDepartment'),
@@ -134,7 +137,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'result_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 不满足要求的现状
title: this.$t('workCenter.regulatoryComplianceCheckProcess.theStatusNotMeetRequirements'),
diff --git a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderTwiceDistributesBaseInfo.vue b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderTwiceDistributesBaseInfo.vue
index 69f44db..aa21512 100644
--- a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderTwiceDistributesBaseInfo.vue
+++ b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/MainFinderTwiceDistributesBaseInfo.vue
@@ -14,7 +14,7 @@
-
+
+ {{ $t('view') }}
+
+
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
{{ global.emptyLine }}
@@ -116,7 +119,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'modelStatus_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 设计工程师
title: this.$t('designEngineer'),
diff --git a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/ManualAddModal.vue b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/ManualAddModal.vue
index 2067773..7d79969 100644
--- a/src/views/workCenter/regulatoryComplianceCheckProcess/modules/ManualAddModal.vue
+++ b/src/views/workCenter/regulatoryComplianceCheckProcess/modules/ManualAddModal.vue
@@ -62,7 +62,7 @@
:label="$t('workCenter.regulatoryComplianceCheckProcess.resolutionAttachment')">
valueArr.includes(item.value))
this.model.standardState_dictText = arr.map(item => item.title).join(',')
+ this.model.standardState_dictTextEn = arr.map(item => item.enText).join(',')
},
// 上传拆解单文件改变
splitFileChange (value) {
@@ -166,6 +167,8 @@ export default {
const isEdit = this.model.standardNumber
const formData = Object.assign(values)
formData.splitFile_dictText = this.model.splitFile_dictText
+ formData.standardState_dictText = this.model.standardState_dictText
+ formData.standardState_dictTextEn = this.model.standardState_dictTextEn
this.$emit('ok', formData, isEdit)
this.confirmLoading = false
this.close()
diff --git a/src/views/workCenter/standardInterpretationProcess/StandardInterpretationProcess.vue b/src/views/workCenter/standardInterpretationProcess/StandardInterpretationProcess.vue
index f2fb451..1c7a190 100644
--- a/src/views/workCenter/standardInterpretationProcess/StandardInterpretationProcess.vue
+++ b/src/views/workCenter/standardInterpretationProcess/StandardInterpretationProcess.vue
@@ -659,7 +659,12 @@ export default {
this.$message.success(res.message)
this.goBack()
} else {
- this.$message.warn(res.message)
+ // 多行报错
+ if (res.code === 500) {
+ this.messageLineFeedByBr(this.$t('operationFailed'), res.message)
+ } else {
+ this.$message.warn(res.message)
+ }
}
}).catch((err) => {
if (err && err.message && tabList.includes(err.message)) {
@@ -770,6 +775,34 @@ export default {
return Promise.all(promiseList).catch(() => {
throw new Error('base')
})
+ },
+ /**
+ * 对包含
的后端错误信息进行处理
+ * @param title
+ * @param content
+ */
+ messageLineFeedByBr (title, content) {
+ // 可以用分号和
换行
+ content = content.replace(/
|<\/br>|
/g, ';')
+ const messageArr = content.split(';')
+ const htmlDom = []
+ messageArr.map(tt => {
+ if (tt) {
+ htmlDom.push(({tt}
))
+ }
+ })
+ this.$warning({
+ title: title,
+ closable: true,
+ width: 800,
+ content: () =>
+ {htmlDom}
+
+ })
+ this.$nextTick(() => {
+ document.getElementsByClassName('ant-modal-confirm-btns')[0].style = 'display: inline-block'
+ document.getElementsByClassName('ant-modal-confirm-content')[0].style = 'max-height: calc(100vh - 300px);overflow-y: auto;'
+ })
}
}
}
diff --git a/src/views/workCenter/standardInterpretationProcess/modules/InterpretationClauseTable.vue b/src/views/workCenter/standardInterpretationProcess/modules/InterpretationClauseTable.vue
index c6b2664..9140f3a 100644
--- a/src/views/workCenter/standardInterpretationProcess/modules/InterpretationClauseTable.vue
+++ b/src/views/workCenter/standardInterpretationProcess/modules/InterpretationClauseTable.vue
@@ -9,10 +9,9 @@
- {{ $t('import') }}
+ {{ $t('import') }}
@@ -56,9 +55,9 @@
:nameStr="record.interpretPersonIds_dictText" />
- {{ $t('edit') }}
+ {{ $t('edit') }}
- {{ $t('delete') }}
+ {{ $t('delete') }}
@@ -201,7 +200,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'isSameAsPrevVersion_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 相对上一版变化点说明
title: this.$t('workCenter.standardInterpretationProcess.explanationOfChangePoints'),
@@ -229,7 +228,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'keyController_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 责任部门
title: this.$t('workCenter.standardInterpretationProcess.responsibleDepartment'),
@@ -243,7 +242,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'responsibleModule_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 关联部门
title: this.$t('workCenter.standardInterpretationProcess.relatedDepartments'),
@@ -257,35 +256,35 @@ export default {
align: 'center',
width: 180,
dataIndex: 'relatedModule_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 适用车型
title: this.$t('workCenter.standardInterpretationProcess.applications'),
align: 'center',
width: 180,
dataIndex: 'applications_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 动力类型
title: this.$t('workCenter.standardInterpretationProcess.powerType'),
align: 'center',
width: 180,
dataIndex: 'powerType_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 专业领域
title: this.$t('workCenter.standardInterpretationProcess.professionalField'),
align: 'center',
width: 180,
dataIndex: 'domainArea_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 配置需求
title: this.$t('workCenter.standardInterpretationProcess.configurationRequirements'),
align: 'center',
width: 180,
dataIndex: 'configurationRequirements_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // 新认证车实施日期
title: this.$t('workCenter.standardInterpretationProcess.newCertificationImplementationDate'),
@@ -376,7 +375,7 @@ export default {
align: 'center',
width: 180,
dataIndex: 'investigationStage_dictText',
- scopedSlots: { customRender: 'text' }
+ scopedSlots: { customRender: 'dictText' }
},
{ // P3证明符合性的交付物名称
title: this.$t('workCenter.standardInterpretationProcess.pThree'),
@@ -473,7 +472,7 @@ export default {
columns.push(...this.columnsExtend)
}
// 非禁用时,需要操作的节点就加上操作列
- if (!this.disabled && !noActionCoumnsNodes.includes(this.currentNodeId)) {
+ if (!noActionCoumnsNodes.includes(this.currentNodeId)) {
columns.push(this.actionColumn)
}
return columns
@@ -579,9 +578,9 @@ export default {
* @param info
*/
handleImport (info) {
- // 限制导入大于500MB
- if (info.file.size > 1024 * 1024 * 500) {
- this.$message.error('导入文件最大500MB!')
+ // 限制导入大于20MB
+ if (info.file.size > 1024 * 1024 * 20) {
+ this.$message.error(this.$t('importMaxMsg', { size: '20MB' }))
info.fileList.pop()
return
}
@@ -937,6 +936,7 @@ export default {