Merge branch 'master' into 标准拆分译文变更
# Conflicts: # src/common/lang/en-us.js # src/common/lang/zh-cn.js # src/views/documentTool/documentSplit/modules/SplitAddForm.vue # src/views/workCenter/standardInterpretationProcess/modules/InterpretationClauseTable.vue
This commit is contained in:
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
NODE_ENV=production
|
NODE_ENV=production
|
||||||
VUE_APP_TAG_FLAG=1
|
VUE_APP_TAG_FLAG=1
|
||||||
VUE_APP_LOGIN_PAGE='https://iam.sinotruk.com:7012/idp/oauth2/authorize?redirect_uri=http://srms.sinotruk.com/dashboard/analysis&state=123&client_id=SRMS&response_type=code'
|
VUE_APP_LOGIN_PAGE='https://iamuat.mychery.com:5443/idp/oauth2/authorize?redirect_uri=http://10.2.16.8:3344/dashboard/analysis&state=123&client_id=CGRSM&response_type=code'
|
||||||
VUE_APP_CURRENT_SYSTEM='IAM'
|
VUE_APP_CURRENT_SYSTEM='IAM'
|
||||||
VUE_APP_LOGOUT_PAGE='https://iam.sinotruk.com:7012/idp/profile/OAUTH2/Redirect/GLO?redirctToUrl=http://srms.sinotruk.com/dashboard/analysis&redirectToLogin=true&entityId=SRMS'
|
VUE_APP_LOGOUT_PAGE='https://iamuat.mychery.com:5443/idp/profile/OAUTH2/Redirect/GLO?redirctToUrl=http://10.2.16.8:3344/dashboard/analysis&redirectToLogin=true&entityId=CGRSM'
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
NODE_ENV=production
|
||||||
|
VUE_APP_TAG_FLAG=1
|
||||||
|
VUE_APP_LOGIN_PAGE='https://iamuat.mychery.com:5443/idp/oauth2/authorize?redirect_uri=http://10.2.16.8:3344/dashboard/analysis&state=123&client_id=CGRSM&response_type=code'
|
||||||
|
VUE_APP_CURRENT_SYSTEM='IAM'
|
||||||
|
VUE_APP_LOGOUT_PAGE='https://iamuat.mychery.com:5443/idp/profile/OAUTH2/Redirect/GLO?redirctToUrl=http://10.2.16.8:3344/dashboard/analysis&redirectToLogin=true&entityId=CGRSM'
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
NODE_ENV=production
|
|
||||||
VUE_APP_TAG_FLAG=1
|
|
||||||
VUE_APP_LOGIN_PAGE='https://iam-uat-new.sinotruk.com/idp/oauth2/authorize?redirect_uri=http://srms-test.sinotruk.com/dashboard/analysis&state=123&client_id=SRMS&response_type=code'
|
|
||||||
VUE_APP_CURRENT_SYSTEM='IAM'
|
|
||||||
VUE_APP_LOGOUT_PAGE='https://iam-uat-new.sinotruk.com/idp/profile/OAUTH2/Redirect/GLO?redirctToUrl=http://srms-test.sinotruk.com/dashboard/analysis&redirectToLogin=true&entityId=SRMS'
|
|
||||||
Vendored
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||||
<title>奇瑞法规智库</title>
|
<title>奇瑞标准法规管理系统</title>
|
||||||
<!--<link rel="icon" href="<%= BASE_URL %>logo.png"> -->
|
<!--<link rel="icon" href="<%= BASE_URL %>logo.png"> -->
|
||||||
<script src="<%= BASE_URL %>cdn/babel-polyfill/polyfill_7_2_5.js"></script>
|
<script src="<%= BASE_URL %>cdn/babel-polyfill/polyfill_7_2_5.js"></script>
|
||||||
<script src="<%= BASE_URL %>api_address_config.js"></script>
|
<script src="<%= BASE_URL %>api_address_config.js"></script>
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ UE.I18N['en'] = {
|
|||||||
'jsonEncodeError': 'Server Return Format Error',
|
'jsonEncodeError': 'Server Return Format Error',
|
||||||
'loading':"loading...",
|
'loading':"loading...",
|
||||||
'loadError':"load error",
|
'loadError':"load error",
|
||||||
'errorLoadConfig': 'Server config not loaded, upload can not work.',
|
'errorLoadConfig': 'Cannot upload images by pasting or dragging.',
|
||||||
},
|
},
|
||||||
'simpleupload':{
|
'simpleupload':{
|
||||||
'exceedSizeError': 'File Size Exceed',
|
'exceedSizeError': 'File Size Exceed',
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ UE.I18N['zh-cn'] = {
|
|||||||
'jsonEncodeError': '服务器返回格式错误',
|
'jsonEncodeError': '服务器返回格式错误',
|
||||||
'loading':"正在上传...",
|
'loading':"正在上传...",
|
||||||
'loadError':"上传错误",
|
'loadError':"上传错误",
|
||||||
'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!'
|
'errorLoadConfig': '不支持通过粘贴或拖拽上传图片!'
|
||||||
},
|
},
|
||||||
'simpleupload':{
|
'simpleupload':{
|
||||||
'exceedSizeError': '文件大小超出限制',
|
'exceedSizeError': '文件大小超出限制',
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
<template>
|
||||||
|
<div class="mobile-empty">
|
||||||
|
<div class="box"><img :src="require('@/assets/image/notMobile.png')" alt=''></div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'MobileApp.vue'
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.mobile-empty {
|
||||||
|
position: relative;
|
||||||
|
height: 100vh;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.box {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
height: 500px;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
img {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -5,6 +5,8 @@ import { getAction, postAction, postForParams } from './manage'
|
|||||||
const releaseSplitStandard = (params) => postAction('/laws/DocumentTool/documentSplit/publish', params)
|
const releaseSplitStandard = (params) => postAction('/laws/DocumentTool/documentSplit/publish', params)
|
||||||
// 文档拆分-更改权限
|
// 文档拆分-更改权限
|
||||||
const changePermission = (params) => postAction('/laws/DocumentTool/documentSplit/updatePermissions ', params)
|
const changePermission = (params) => postAction('/laws/DocumentTool/documentSplit/updatePermissions ', params)
|
||||||
|
// 文档拆分-校验是否有更改权限
|
||||||
|
const checkChangePermission = (params) => getAction('/laws/DocumentTool/documentSplit/updatePermissionsCheck', params)
|
||||||
// 文档拆分-撤回
|
// 文档拆分-撤回
|
||||||
const withdraw = (params) => postAction('/laws/DocumentTool/documentSplit/revocation', params)
|
const withdraw = (params) => postAction('/laws/DocumentTool/documentSplit/revocation', params)
|
||||||
// 文档拆分-查看
|
// 文档拆分-查看
|
||||||
@@ -101,10 +103,14 @@ const editMaintainList = (params) => postAction('/customCompare/lawsCustomCompar
|
|||||||
// 自定义比对-对比分析结果保存
|
// 自定义比对-对比分析结果保存
|
||||||
const editComparsionResult = (params) => postAction('/customCompare/lawsCustomCompareInfo/saveCellCompareResult', params)
|
const editComparsionResult = (params) => postAction('/customCompare/lawsCustomCompareInfo/saveCellCompareResult', params)
|
||||||
|
|
||||||
|
// 涉及系统部件下拉
|
||||||
|
const getInvolvedSystem = (params) => getAction('/laws/standard/partName/', params)
|
||||||
|
|
||||||
export {
|
export {
|
||||||
// 文档拆分
|
// 文档拆分
|
||||||
releaseSplitStandard,
|
releaseSplitStandard,
|
||||||
changePermission,
|
changePermission,
|
||||||
|
checkChangePermission,
|
||||||
withdraw,
|
withdraw,
|
||||||
previewDocSplit,
|
previewDocSplit,
|
||||||
importSplitResult,
|
importSplitResult,
|
||||||
@@ -156,5 +162,7 @@ export {
|
|||||||
getTableData,
|
getTableData,
|
||||||
getMaintainList,
|
getMaintainList,
|
||||||
editMaintainList,
|
editMaintainList,
|
||||||
editComparsionResult
|
editComparsionResult,
|
||||||
|
|
||||||
|
getInvolvedSystem
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: "iconfont"; /* Project id 4236293 */
|
font-family: "iconfont"; /* Project id 4236293 */
|
||||||
src: url('iconfont.woff2?t=1721283373084') format('woff2'),
|
src: url('iconfont.woff2?t=1723190928792') format('woff2'),
|
||||||
url('iconfont.woff?t=1721283373084') format('woff'),
|
url('iconfont.woff?t=1723190928792') format('woff'),
|
||||||
url('iconfont.ttf?t=1721283373084') format('truetype');
|
url('iconfont.ttf?t=1723190928792') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
.iconfont {
|
.iconfont {
|
||||||
@@ -13,6 +13,18 @@
|
|||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon-xiaoxi-mian--:before {
|
||||||
|
content: "\e60e";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-yun:before {
|
||||||
|
content: "\e6e2";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-rizhi:before {
|
||||||
|
content: "\e64e";
|
||||||
|
}
|
||||||
|
|
||||||
.icon-fill-message-square:before {
|
.icon-fill-message-square:before {
|
||||||
content: "\e706";
|
content: "\e706";
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -5,6 +5,27 @@
|
|||||||
"css_prefix_text": "icon-",
|
"css_prefix_text": "icon-",
|
||||||
"description": "",
|
"description": "",
|
||||||
"glyphs": [
|
"glyphs": [
|
||||||
|
{
|
||||||
|
"icon_id": "5158298",
|
||||||
|
"name": "message",
|
||||||
|
"font_class": "xiaoxi-mian--",
|
||||||
|
"unicode": "e60e",
|
||||||
|
"unicode_decimal": 58894
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "8361930",
|
||||||
|
"name": "cloud",
|
||||||
|
"font_class": "yun",
|
||||||
|
"unicode": "e6e2",
|
||||||
|
"unicode_decimal": 59106
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "8431682",
|
||||||
|
"name": "log",
|
||||||
|
"font_class": "rizhi",
|
||||||
|
"unicode": "e64e",
|
||||||
|
"unicode_decimal": 58958
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"icon_id": "38297476",
|
"icon_id": "38297476",
|
||||||
"name": "fill-message-square",
|
"name": "fill-message-square",
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 1.9 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.3 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 61 KiB |
@@ -116,6 +116,18 @@
|
|||||||
color: #C30D23 !important;
|
color: #C30D23 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.operate-del-btn[disabled] {
|
||||||
|
color: rgba(0, 0, 0, 0.25) !important;
|
||||||
|
.operate-btn-icon {
|
||||||
|
color: rgba(0, 0, 0, 0.25) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.del-btn-disabled {
|
||||||
|
color: rgba(0, 0, 0, 0.25) !important;
|
||||||
|
.operate-btn-icon {
|
||||||
|
color: rgba(0, 0, 0, 0.25) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.action-span-cell > a:first-child {
|
.action-span-cell > a:first-child {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
@@ -203,6 +215,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ant-drawer-content-wrapper .ant-form-item-label,
|
||||||
|
.j-modal-box .ant-form-item-label {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
.box-title-text {
|
.box-title-text {
|
||||||
line-height: 1.4;
|
line-height: 1.4;
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -750,7 +767,8 @@
|
|||||||
color: #86909C;
|
color: #86909C;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: flex-start;
|
||||||
|
gap: 20px;
|
||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -989,3 +1007,15 @@
|
|||||||
/deep/ .ant-table-hide-scrollbar {
|
/deep/ .ant-table-hide-scrollbar {
|
||||||
scrollbar-color: unset;
|
scrollbar-color: unset;
|
||||||
}
|
}
|
||||||
|
// 日期选择框 右侧重叠的问题
|
||||||
|
.ant-calendar-picker-input.ant-input {
|
||||||
|
padding-right: 30px;
|
||||||
|
}
|
||||||
|
/deep/.ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled) {
|
||||||
|
background-color: rgba(0, 100, 250, 0.08);
|
||||||
|
}
|
||||||
|
|
||||||
|
:global(.tooltip-style .ant-tooltip-inner) {
|
||||||
|
max-height: 40vh;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
@@ -2,7 +2,7 @@ module.exports = {
|
|||||||
// 标准化活动
|
// 标准化活动
|
||||||
standardizationActivity: {
|
standardizationActivity: {
|
||||||
nodeName: 'Node name', // 节点名称
|
nodeName: 'Node name', // 节点名称
|
||||||
currentNode: 'Current node',
|
currentNode: 'Current Node',
|
||||||
conferenceStatisticsList: 'Statistical List',
|
conferenceStatisticsList: 'Statistical List',
|
||||||
pleaseSelectNode: 'Please select a node',
|
pleaseSelectNode: 'Please select a node',
|
||||||
parentNode: 'Superior Node',
|
parentNode: 'Superior Node',
|
||||||
@@ -11,22 +11,22 @@ module.exports = {
|
|||||||
contactPersonContactInformation: 'Contact person contact information',
|
contactPersonContactInformation: 'Contact person contact information',
|
||||||
unit: 'Unit',
|
unit: 'Unit',
|
||||||
phone: 'Phone',
|
phone: 'Phone',
|
||||||
groupParticipation: 'Group participation situation',
|
groupParticipation: 'Group Participation Situation',
|
||||||
paymentInfo: 'Payment Information',
|
paymentInfo: 'Payment Information',
|
||||||
attendanceRecord: 'Meeting records',
|
attendanceRecord: 'Meeting Records',
|
||||||
addContactInformation: 'Add contact information',
|
addContactInformation: 'Add Contact Information',
|
||||||
addParticipation: 'Add participation status',
|
addParticipation: 'Add Participation Status',
|
||||||
addPaymentInfo: 'Add payment information',
|
addPaymentInfo: 'Add Payment Information',
|
||||||
addAttendanceRecord: 'Add attendance record',
|
addAttendanceRecord: 'Add Attendance Record',
|
||||||
order: 'Our company\'s ranking order in the working group',
|
order: 'Our company\'s ranking order in the working group',
|
||||||
ourPersonnel: 'Our personnel',
|
ourPersonnel: 'Our personnel',
|
||||||
data: 'Information',
|
data: 'Information',
|
||||||
cost: 'Cost',
|
cost: 'Cost',
|
||||||
year: 'Year',
|
year: 'Year',
|
||||||
plan: 'Inside the plan',
|
plan: 'Inside The Plan',
|
||||||
paymentMethod: 'Payment method',
|
paymentMethod: 'Payment Method',
|
||||||
expenseReimbursement: 'Expense allocation',
|
expenseReimbursement: 'Expense Allocation',
|
||||||
meetingMaterial: 'Meeting materials',
|
meetingMaterial: 'Meeting Materials',
|
||||||
pleaseEnterCorrectPhone: 'Please enter the phone number in the correct format',
|
pleaseEnterCorrectPhone: 'Please enter the phone number in the correct format',
|
||||||
addUpToFourLevels: 'This node cannot add child nodes',
|
addUpToFourLevels: 'This node cannot add child nodes',
|
||||||
pleaseUploadGroupInfo: 'Please upload information on the participation of the group',
|
pleaseUploadGroupInfo: 'Please upload information on the participation of the group',
|
||||||
@@ -41,14 +41,14 @@ module.exports = {
|
|||||||
questionDesc: 'Problem Description',
|
questionDesc: 'Problem Description',
|
||||||
attach: 'Annex',
|
attach: 'Annex',
|
||||||
quizTime: 'Question Time',
|
quizTime: 'Question Time',
|
||||||
answer: 'answer',
|
answer: 'Answer',
|
||||||
poster: 'Poster',
|
poster: 'Poster',
|
||||||
answerNum: 'replies',
|
answerNum: 'Replies',
|
||||||
top: '【top】',
|
top: '【Top】',
|
||||||
cancelTop: 'untop',
|
cancelTop: 'Cancel Top up',
|
||||||
setTop: 'Set To Top',
|
setTop: 'Set To Top',
|
||||||
answerQuestion: 'reply to a question',
|
answerQuestion: 'Reply to a question',
|
||||||
word: 'word',
|
word: 'Word',
|
||||||
pleaseEnterAnswerDesc: 'Please enter the answer description',
|
pleaseEnterAnswerDesc: 'Please enter the answer description',
|
||||||
answerQuestionTitle: 'Question answering',
|
answerQuestionTitle: 'Question answering',
|
||||||
questionDetail: 'Problem Details'
|
questionDetail: 'Problem Details'
|
||||||
@@ -57,9 +57,9 @@ module.exports = {
|
|||||||
// 征求意见
|
// 征求意见
|
||||||
askForAdvice: {
|
askForAdvice: {
|
||||||
standardNameNumber: 'Regulation Name / Regulations No.',
|
standardNameNumber: 'Regulation Name / Regulations No.',
|
||||||
consultationCycle: 'Consultation period',
|
consultationCycle: 'Consultation Period',
|
||||||
processManuscript: 'Process manuscript',
|
processManuscript: 'Process Manuscript',
|
||||||
uploadDate: 'Upload date',
|
uploadDate: 'Upload Date',
|
||||||
detailsOfComments: 'Opinion Details'
|
detailsOfComments: 'Opinion Details'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
// 一般检索
|
// 一般检索
|
||||||
generalSearch: {
|
generalSearch: {
|
||||||
generalSearch: 'General search',
|
generalSearch: 'General Search',
|
||||||
advancedSearch: 'Advanced Search',
|
advancedSearch: 'Advanced Search',
|
||||||
homePage: 'Home page',
|
homePage: 'Home page',
|
||||||
searchHistory: 'Search History',
|
searchHistory: 'Search History',
|
||||||
@@ -34,16 +34,16 @@ module.exports = {
|
|||||||
// 高级搜索
|
// 高级搜索
|
||||||
advancedSearch: {
|
advancedSearch: {
|
||||||
searchType: 'Search Type',
|
searchType: 'Search Type',
|
||||||
standardNum: 'Standard number',
|
standardNum: 'Standard Number',
|
||||||
standardName: 'Regulation Name',
|
standardName: 'Regulation Name',
|
||||||
releaseDate: 'Published Date',
|
releaseDate: 'Published Date',
|
||||||
materialDate: 'Implementation Date',
|
materialDate: 'Implementation Date',
|
||||||
standardStatus: 'Regulation Status',
|
standardStatus: 'Regulation Status',
|
||||||
newProduceMaterialDate: 'New Certified Vehicle Implementation Date',
|
newProduceMaterialDate: 'New Certified Vehicle Implementation Date',
|
||||||
newAttestationMaterialDate: 'New Production Vehicle Implementation Date',
|
newAttestationMaterialDate: 'New Production Vehicle Implementation Date',
|
||||||
storageConditions: 'Storage conditions',
|
storageConditions: 'Storage Conditions',
|
||||||
unfoldConditions: 'Unfold conditions',
|
unfoldConditions: 'Unfold Conditions',
|
||||||
retrieveCategories: 'Retrieve categories',
|
retrieveCategories: 'Retrieve Categories',
|
||||||
standardType: 'Regulation Type',
|
standardType: 'Regulation Type',
|
||||||
all: 'All',
|
all: 'All',
|
||||||
foreignStandards: 'External Standard(s) and Regulation(s)',
|
foreignStandards: 'External Standard(s) and Regulation(s)',
|
||||||
@@ -70,14 +70,14 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
// 快捷入口
|
// 快捷入口
|
||||||
quickEnter: {
|
quickEnter: {
|
||||||
quickEnter: 'Quick entrance',
|
quickEnter: 'Quick Entrance',
|
||||||
menuManage: 'Menu management',
|
menuManage: 'Menu Management',
|
||||||
custom: 'custom',
|
custom: 'Custom',
|
||||||
optionModules: 'Option Modules',
|
optionModules: 'Option Modules',
|
||||||
personalDisplayModule: 'Personal Display Module',
|
personalDisplayModule: 'Personal Display Module',
|
||||||
itemUnit: 'term',
|
itemUnit: 'Term',
|
||||||
itemsUnit: 'term',
|
itemsUnit: 'Term',
|
||||||
listEmpty: 'List is empty',
|
listEmpty: 'List Is Empty',
|
||||||
pleaseEnterSearchContent: 'Please enter search content',
|
pleaseEnterSearchContent: 'Please enter search content',
|
||||||
maxSelected: 'Select up to 14 modules',
|
maxSelected: 'Select up to 14 modules',
|
||||||
newFunction: 'New features'
|
newFunction: 'New features'
|
||||||
@@ -89,7 +89,7 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
// 友情链接
|
// 友情链接
|
||||||
friendLink: {
|
friendLink: {
|
||||||
friendLink: 'Friendship link',
|
friendLink: 'Friendship Link',
|
||||||
more: 'More'
|
more: 'More'
|
||||||
},
|
},
|
||||||
// 检索
|
// 检索
|
||||||
@@ -100,11 +100,11 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
// 列表部分
|
// 列表部分
|
||||||
tableList: {
|
tableList: {
|
||||||
newWarehousingStandards: 'Latest warehousing standards',
|
newWarehousingStandards: 'Latest Warehousing Standards',
|
||||||
marketUpdates: 'Market updates',
|
marketUpdates: 'Market Updates',
|
||||||
newWarehousingEnterpriseStandards: 'Latest inbound enterprise standards',
|
newWarehousingEnterpriseStandards: 'Latest Inbound Enterprise Standards',
|
||||||
newInterpretationStandards: 'Latest Interpretation Standards',
|
newInterpretationStandards: 'Latest Interpretation Standards',
|
||||||
implementStandards: 'Implement standards',
|
implementStandards: 'Implement Standards',
|
||||||
interpretationInfo: 'Interpreting Information',
|
interpretationInfo: 'Interpreting Information',
|
||||||
substituteStandardNumber: 'Replacing Regulations No.',
|
substituteStandardNumber: 'Replacing Regulations No.',
|
||||||
source: 'Source'
|
source: 'Source'
|
||||||
|
|||||||
+82
-57
@@ -83,7 +83,7 @@ module.exports = {
|
|||||||
expandAll: 'Expand All',
|
expandAll: 'Expand All',
|
||||||
mergeAll: 'Drop All',
|
mergeAll: 'Drop All',
|
||||||
treeOperation: 'Tree Operation',
|
treeOperation: 'Tree Operation',
|
||||||
creator: 'Created by',
|
creator: 'Creator',
|
||||||
sort: 'Order',
|
sort: 'Order',
|
||||||
address: 'Address',
|
address: 'Address',
|
||||||
remarks: 'Comments',
|
remarks: 'Comments',
|
||||||
@@ -106,7 +106,7 @@ module.exports = {
|
|||||||
unwatermarkedDownload: 'Unwatermarked download',
|
unwatermarkedDownload: 'Unwatermarked download',
|
||||||
fileName: 'File Name',
|
fileName: 'File Name',
|
||||||
fileDeclaration: 'File Description',
|
fileDeclaration: 'File Description',
|
||||||
newNode: 'New node',
|
newNode: 'New Node',
|
||||||
modifyNode: 'Modify Node',
|
modifyNode: 'Modify Node',
|
||||||
deleteNode: 'Delete Node',
|
deleteNode: 'Delete Node',
|
||||||
moveUp: 'Move Up',
|
moveUp: 'Move Up',
|
||||||
@@ -125,10 +125,11 @@ module.exports = {
|
|||||||
confirmWithdraw: 'Confirm to Withdraw?',
|
confirmWithdraw: 'Confirm to Withdraw?',
|
||||||
confirmWithdrawContent: 'Confirm the withdrawal of this data?',
|
confirmWithdrawContent: 'Confirm the withdrawal of this data?',
|
||||||
doNotHavePermissionDeleteData: 'Do not have permission to delete this data',
|
doNotHavePermissionDeleteData: 'Do not have permission to delete this data',
|
||||||
|
publishedAndCannotDeleted: 'Published and cannot be deleted',
|
||||||
noData: 'No Data',
|
noData: 'No Data',
|
||||||
dataLoading: 'Data loading...',
|
dataLoading: 'Data loading...',
|
||||||
confirmDelete: 'Confirm the listing title you want to delete?',
|
confirmDelete: 'Confirm the listing title you want to delete?',
|
||||||
uploadedBy: 'Uploaded By',
|
uploadedBy: 'Uploader',
|
||||||
uploadTime: 'Upload Time',
|
uploadTime: 'Upload Time',
|
||||||
uploadFileBtn: 'Upload File',
|
uploadFileBtn: 'Upload File',
|
||||||
tips: 'Tips',
|
tips: 'Tips',
|
||||||
@@ -136,7 +137,7 @@ module.exports = {
|
|||||||
importTip: 'Importing, please wait',
|
importTip: 'Importing, please wait',
|
||||||
exportFile: 'Export file',
|
exportFile: 'Export file',
|
||||||
exportWithFiles: 'Export files with files',
|
exportWithFiles: 'Export files with files',
|
||||||
templateFile: 'Template file',
|
templateFile: 'Template File',
|
||||||
fileUploadSuccess: 'File uploaded successfully',
|
fileUploadSuccess: 'File uploaded successfully',
|
||||||
fileDownloadFail: 'File download failure',
|
fileDownloadFail: 'File download failure',
|
||||||
pleaseEnterTreeSystem: 'Please enter the tree system',
|
pleaseEnterTreeSystem: 'Please enter the tree system',
|
||||||
@@ -155,7 +156,7 @@ module.exports = {
|
|||||||
processExplain: 'Process Description',
|
processExplain: 'Process Description',
|
||||||
entrust: 'Entrust',
|
entrust: 'Entrust',
|
||||||
turnTo: 'Turn To',
|
turnTo: 'Turn To',
|
||||||
agree: 'agree',
|
agree: 'Agree',
|
||||||
reject: 'Reject',
|
reject: 'Reject',
|
||||||
countersign: 'Countersign',
|
countersign: 'Countersign',
|
||||||
basicInformation: 'Basic',
|
basicInformation: 'Basic',
|
||||||
@@ -171,12 +172,12 @@ module.exports = {
|
|||||||
mergeStandardInformation: 'Merge standard information',
|
mergeStandardInformation: 'Merge standard information',
|
||||||
pleaseEnterPersonnelInfo: 'Please fill in the personnel information completely',
|
pleaseEnterPersonnelInfo: 'Please fill in the personnel information completely',
|
||||||
pleaseEnterRemarks: 'Please fill in remarks',
|
pleaseEnterRemarks: 'Please fill in remarks',
|
||||||
lookDetail: 'View details',
|
lookDetail: 'View Details',
|
||||||
batchReject: 'Batch rejection',
|
batchReject: 'Batch Rejection',
|
||||||
pleaseSelectDistributeData: 'Select the data you want to distribute',
|
pleaseSelectDistributeData: 'Select the data you want to distribute',
|
||||||
pleaseSelectDeleteData: 'Please select the data to be deleted',
|
pleaseSelectDeleteData: 'Please select the data to be deleted',
|
||||||
deadline: 'Deadline',
|
deadline: 'Deadline',
|
||||||
submitAddAdd: 'Submit and add',
|
submitAddAdd: 'Submit And Add',
|
||||||
pleaseSelectOneStandard: 'Please select at least one criterion',
|
pleaseSelectOneStandard: 'Please select at least one criterion',
|
||||||
selectAtLeastOne: 'Select at least one list data',
|
selectAtLeastOne: 'Select at least one list data',
|
||||||
pleaseSelectTime: 'Please select time',
|
pleaseSelectTime: 'Please select time',
|
||||||
@@ -184,7 +185,7 @@ module.exports = {
|
|||||||
addATable: 'Please add a form',
|
addATable: 'Please add a form',
|
||||||
select: 'Select',
|
select: 'Select',
|
||||||
attach: 'Annex',
|
attach: 'Annex',
|
||||||
checkedAll: 'select all',
|
checkedAll: 'Select All',
|
||||||
pleaseCompleteTableInfo: 'Please complete the form information',
|
pleaseCompleteTableInfo: 'Please complete the form information',
|
||||||
node: 'Node',
|
node: 'Node',
|
||||||
atLeastSelect: 'At least choose',
|
atLeastSelect: 'At least choose',
|
||||||
@@ -211,7 +212,7 @@ module.exports = {
|
|||||||
listName: 'Regulation List Name',
|
listName: 'Regulation List Name',
|
||||||
countryRegion: 'Country/Region',
|
countryRegion: 'Country/Region',
|
||||||
ccPerson: 'CC Personnel',
|
ccPerson: 'CC Personnel',
|
||||||
startDate: 'Start date',
|
startDate: 'Start Date',
|
||||||
endDate: 'End Date',
|
endDate: 'End Date',
|
||||||
curBefore: 'Before this day',
|
curBefore: 'Before this day',
|
||||||
curAfter: 'After this day',
|
curAfter: 'After this day',
|
||||||
@@ -225,28 +226,29 @@ module.exports = {
|
|||||||
generate: 'Generate',
|
generate: 'Generate',
|
||||||
vehicleType: 'Vehicle Catagory',
|
vehicleType: 'Vehicle Catagory',
|
||||||
modelStatus: 'Developing Status',
|
modelStatus: 'Developing Status',
|
||||||
clickToUpload: 'Click to upload',
|
clickToUpload: 'Click To Upload',
|
||||||
designEngineer: 'Design engineer',
|
designEngineer: 'Design Engineer',
|
||||||
pleaseUpload: 'Please upload',
|
pleaseUpload: 'Please Upload',
|
||||||
supportingMaterial: 'Supporting Files',
|
supportingMaterial: 'Supporting Files',
|
||||||
support: 'You can upload files in ',
|
support: 'You can upload files in ',
|
||||||
formatUpload: ' formats. ',
|
formatUpload: ' Formats. ',
|
||||||
theSizeIs: 'Not more than ',
|
theSizeIs: 'Not more than ',
|
||||||
loginExpired: 'Login has expired',
|
loginExpired: 'Login has expired',
|
||||||
loginExpiredMessage: 'Sorry, the login has expired. Please log in again',
|
loginExpiredMessage: 'Sorry, the login has expired. Please log in again',
|
||||||
logInAgain: 'Log in again',
|
logInAgain: 'Log in again',
|
||||||
loggingBackIn: 'Login has expired, logging in again',
|
loggingBackIn: 'Login has expired, logging in again',
|
||||||
fileUploadFailed: 'File upload failed',
|
fileUploadFailed: 'File upload failed',
|
||||||
prompted: 'prompted',
|
prompted: 'Prompted',
|
||||||
noAccess: 'no access',
|
noAccess: 'No Access',
|
||||||
resourceNotFound: 'Sorry, the resource was not found!',
|
resourceNotFound: 'Sorry, the resource was not found!',
|
||||||
networkTimeout: 'Network Timeout',
|
networkTimeout: 'Network Timeout',
|
||||||
unauthorized: 'Unauthorized, please log in again',
|
unauthorized: 'Unauthorized, please log in again',
|
||||||
tableDataDisabledClear: 'The table requires at least one piece of data',
|
tableDataDisabledClear: 'The table requires at least one piece of data',
|
||||||
autoTakeout: 'Automatic takeout',
|
autoTakeout: 'Automatic Takeout',
|
||||||
goHandle: 'To deal with',
|
goHandle: 'To Deal With',
|
||||||
disableInput: 'Inhibit input',
|
disableInput: 'Inhibit Input',
|
||||||
fileUploadError: 'File upload error',
|
fileUploadError: 'File Upload Error',
|
||||||
|
importMaxMsg: 'The maximum size for importing files is {size}MB',
|
||||||
// 标准字段
|
// 标准字段
|
||||||
standardField: {
|
standardField: {
|
||||||
standardEnglishName: 'Regulation English Name',
|
standardEnglishName: 'Regulation English Name',
|
||||||
@@ -271,7 +273,7 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
// 页面头部
|
// 页面头部
|
||||||
header: {
|
header: {
|
||||||
userMenuSearchMenu: 'Search menu',
|
userMenuSearchMenu: 'Search Menu',
|
||||||
welcome: 'Welcome',
|
welcome: 'Welcome',
|
||||||
logOutOfUserMenu: 'Logout',
|
logOutOfUserMenu: 'Logout',
|
||||||
personalCenter: 'Personal Center',
|
personalCenter: 'Personal Center',
|
||||||
@@ -283,9 +285,9 @@ module.exports = {
|
|||||||
notice: 'Notice',
|
notice: 'Notice',
|
||||||
systemNotice: 'System Notifications',
|
systemNotice: 'System Notifications',
|
||||||
lookMore: 'View More',
|
lookMore: 'View More',
|
||||||
generalMsg: 'General message',
|
generalMsg: 'General Message',
|
||||||
importantMsg: 'Important news',
|
importantMsg: 'Important News',
|
||||||
EmergencyMsg: 'Emergency messages',
|
EmergencyMsg: 'Emergency Messages',
|
||||||
logOutTip: 'Do you really want to log out'
|
logOutTip: 'Do you really want to log out'
|
||||||
},
|
},
|
||||||
// 用户管理
|
// 用户管理
|
||||||
@@ -311,7 +313,7 @@ module.exports = {
|
|||||||
account: 'Account',
|
account: 'Account',
|
||||||
userName: 'User Name',
|
userName: 'User Name',
|
||||||
post: 'Post',
|
post: 'Post',
|
||||||
selectedAccount: 'Selected account?',
|
selectedAccount: 'Selected Account?',
|
||||||
// 新增、编辑用户
|
// 新增、编辑用户
|
||||||
loginPassword: 'Login Password',
|
loginPassword: 'Login Password',
|
||||||
confirmPassword: 'Confirm Password',
|
confirmPassword: 'Confirm Password',
|
||||||
@@ -332,7 +334,7 @@ module.exports = {
|
|||||||
enterMailboxCorrect: 'Please enter a mailbox in the correct format',
|
enterMailboxCorrect: 'Please enter a mailbox in the correct format',
|
||||||
userExists: 'User name already exists',
|
userExists: 'User name already exists',
|
||||||
workNoExists: 'Job number already exists',
|
workNoExists: 'Job number already exists',
|
||||||
handStamp: 'Handwritten seal',
|
handStamp: 'Handwritten Seal',
|
||||||
uploadHandStamp: 'Upload handwritten seal'
|
uploadHandStamp: 'Upload handwritten seal'
|
||||||
},
|
},
|
||||||
// 高级查询
|
// 高级查询
|
||||||
@@ -370,7 +372,7 @@ module.exports = {
|
|||||||
// 选择部门弹框
|
// 选择部门弹框
|
||||||
selectDepartment: {
|
selectDepartment: {
|
||||||
clickSelectDepartment: 'Please click Select Department',
|
clickSelectDepartment: 'Please click Select Department',
|
||||||
selectDepartment: 'Select department',
|
selectDepartment: 'Select Department',
|
||||||
enterDepartmentPressEnter: 'Please enter the department name and press Enter to search'
|
enterDepartmentPressEnter: 'Please enter the department name and press Enter to search'
|
||||||
},
|
},
|
||||||
// 用户回收站
|
// 用户回收站
|
||||||
@@ -406,8 +408,8 @@ module.exports = {
|
|||||||
// 新增,编辑角色
|
// 新增,编辑角色
|
||||||
roleDescribe: 'RoleDescribe',
|
roleDescribe: 'RoleDescribe',
|
||||||
lengthIsTwoToThirty: 'The length is 2 to 30 characters',
|
lengthIsTwoToThirty: 'The length is 2 to 30 characters',
|
||||||
notExceed: 'not exceed',
|
notExceed: 'Not Exceed',
|
||||||
charLength: 'characters in length',
|
charLength: 'Characters in length',
|
||||||
roleCodeNotChinese: 'The role code cannot enter Chinese characters!',
|
roleCodeNotChinese: 'The role code cannot enter Chinese characters!',
|
||||||
// 角色权限配置
|
// 角色权限配置
|
||||||
youHavePermissions: 'The permissions you have',
|
youHavePermissions: 'The permissions you have',
|
||||||
@@ -497,6 +499,7 @@ module.exports = {
|
|||||||
docTool: {
|
docTool: {
|
||||||
// 文档拆分
|
// 文档拆分
|
||||||
split: {
|
split: {
|
||||||
|
textSearch: 'Text Search',
|
||||||
translation: 'Translation',
|
translation: 'Translation',
|
||||||
splitText: 'Split Library File',
|
splitText: 'Split Library File',
|
||||||
importResults: 'Import Split Results',
|
importResults: 'Import Split Results',
|
||||||
@@ -505,23 +508,23 @@ module.exports = {
|
|||||||
fileStatus: 'File Status',
|
fileStatus: 'File Status',
|
||||||
splitTime: 'Split Time',
|
splitTime: 'Split Time',
|
||||||
splitResult: 'Split Result',
|
splitResult: 'Split Result',
|
||||||
batchCopy: 'Batch copy',
|
batchCopy: 'Batch Copy',
|
||||||
batchEdit: 'Batch edit',
|
batchEdit: 'Batch Edit',
|
||||||
mergerClause: 'Merge Item',
|
mergerClause: 'Merge Item',
|
||||||
dataType: 'Data type',
|
dataType: 'Data Type',
|
||||||
split: 'Split',
|
split: 'Split',
|
||||||
article: 'Article',
|
article: 'Article',
|
||||||
clauseLabel: 'Clause label',
|
clauseLabel: 'Article label',
|
||||||
splitResultFile: 'Split result file',
|
splitResultFile: 'Split Result File',
|
||||||
splitImportResultTip: 'Upload the split result file in accordance with the relevant format requirements, please ',
|
splitImportResultTip: 'Upload the split result file in accordance with the relevant format requirements, please ',
|
||||||
clickToView: 'click to view',
|
clickToView: 'Click To View',
|
||||||
gotIt: 'Got It',
|
gotIt: 'Got It',
|
||||||
formatRequirement: 'Format requirement',
|
formatRequirement: 'Format Requirement',
|
||||||
formatRequirementContentOne: '1.The imported document is in zip format',
|
formatRequirementContentOne: '1.The imported document is in zip format',
|
||||||
formatRequirementContentTwo: '2.The images are in jpg, jpeg, png, gif format',
|
formatRequirementContentTwo: '2.The images are in jpg, jpeg, png format',
|
||||||
formatRequirementContentThree: '3.The image in the document is displayed in the form of a link in the exported excel, click the link to jump to the specified local file',
|
formatRequirementContentThree: '3.The image in the document is displayed in the form of a link in the exported excel, click the link to jump to the specified local file',
|
||||||
formatRequirementContentFour: '4.The table in the document is displayed in the form of a link in the exported excel. Click the link to jump to the specified sheet page',
|
formatRequirementContentFour: '4.The table in the document is displayed in the form of a link in the exported excel. Click the link to jump to the specified sheet page',
|
||||||
changePermissions: 'Change permissions',
|
changePermissions: 'Change Permissions',
|
||||||
pleaseSelectUser: 'Please select a user',
|
pleaseSelectUser: 'Please select a user',
|
||||||
longTermEffectiveness: 'Long-term effectiveness',
|
longTermEffectiveness: 'Long-term effectiveness',
|
||||||
selectFileType: 'Please select a file type',
|
selectFileType: 'Please select a file type',
|
||||||
@@ -537,7 +540,7 @@ module.exports = {
|
|||||||
gbt: 'GB/T',
|
gbt: 'GB/T',
|
||||||
gso: 'GSO',
|
gso: 'GSO',
|
||||||
batchSetting: 'Batch Set',
|
batchSetting: 'Batch Set',
|
||||||
clauseContent: 'Item Content',
|
clauseContent: 'Article Content',
|
||||||
clauseNo: 'Article No.',
|
clauseNo: 'Article No.',
|
||||||
clauseName: 'Article Name',
|
clauseName: 'Article Name',
|
||||||
selectDirectoryTerms: 'Please Select the directory location to add terms',
|
selectDirectoryTerms: 'Please Select the directory location to add terms',
|
||||||
@@ -549,10 +552,10 @@ module.exports = {
|
|||||||
table: 'Table',
|
table: 'Table',
|
||||||
addQuantity: 'Add Quantity',
|
addQuantity: 'Add Quantity',
|
||||||
enterQuantity: 'Please enter quantity',
|
enterQuantity: 'Please enter quantity',
|
||||||
numberRows: 'Number of rows',
|
numberRows: 'Number Of Rows',
|
||||||
numberColumns: 'Number of columns',
|
numberColumns: 'Number Of Columns',
|
||||||
maximumSelection: 'Maximum selection',
|
maximumSelection: 'Maximum Selection',
|
||||||
pieceOfData: 'Article data'
|
pieceOfData: 'Article Data'
|
||||||
},
|
},
|
||||||
// 文档比对
|
// 文档比对
|
||||||
comparison: {
|
comparison: {
|
||||||
@@ -566,7 +569,7 @@ module.exports = {
|
|||||||
newDocumentTextName: 'Current Document Name',
|
newDocumentTextName: 'Current Document Name',
|
||||||
newTextState: 'Current Document Status',
|
newTextState: 'Current Document Status',
|
||||||
releaseSituation: 'Published Status',
|
releaseSituation: 'Published Status',
|
||||||
comparisonResults: 'Comparison results',
|
comparisonResults: 'Comparison Results',
|
||||||
initiateComparison: 'Initiate Comparison',
|
initiateComparison: 'Initiate Comparison',
|
||||||
textStatus: 'Text Status',
|
textStatus: 'Text Status',
|
||||||
selectedStandard: 'Selected Standard',
|
selectedStandard: 'Selected Standard',
|
||||||
@@ -600,7 +603,7 @@ module.exports = {
|
|||||||
operator: 'Operator',
|
operator: 'Operator',
|
||||||
whetherToMakePublic: 'Is it publicly available',
|
whetherToMakePublic: 'Is it publicly available',
|
||||||
referenceStandard: 'Involving Standards',
|
referenceStandard: 'Involving Standards',
|
||||||
comparisonTime: 'Compare time',
|
comparisonTime: 'Compare Time',
|
||||||
onlineComparison: 'Online Comparison',
|
onlineComparison: 'Online Comparison',
|
||||||
standardList: 'Standard List',
|
standardList: 'Standard List',
|
||||||
comparisonMaintain: 'Comparative Maintenance',
|
comparisonMaintain: 'Comparative Maintenance',
|
||||||
@@ -621,17 +624,17 @@ module.exports = {
|
|||||||
// OCR文本识别
|
// OCR文本识别
|
||||||
ocrTextRecognition: {
|
ocrTextRecognition: {
|
||||||
upload: 'Upload',
|
upload: 'Upload',
|
||||||
getFile: 'Get files',
|
getFile: 'Get Files',
|
||||||
standardCategory: 'Regulation Category',
|
standardCategory: 'Regulation Category',
|
||||||
standardNumber: 'Regulation No.',
|
standardNumber: 'Regulation No.',
|
||||||
standardName: 'Regulation Name',
|
standardName: 'Regulation Name',
|
||||||
textStatus: 'Text Status',
|
textStatus: 'Text Status',
|
||||||
conversionResults: 'Conversion results',
|
conversionResults: 'Conversion Results',
|
||||||
conversionStatus: 'Transition state',
|
conversionStatus: 'Transition State',
|
||||||
timeConsuming: 'Time consumption (seconds)',
|
timeConsuming: 'Time Consumption (Seconds)',
|
||||||
file: 'File',
|
file: 'File',
|
||||||
uploadPdf: 'Upload PDF',
|
uploadPdf: 'Upload PDF',
|
||||||
manuallySearch: 'Manually search'
|
manuallySearch: 'Manually Search'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 业务支持
|
// 业务支持
|
||||||
@@ -646,9 +649,9 @@ module.exports = {
|
|||||||
// 我的消息
|
// 我的消息
|
||||||
my: {
|
my: {
|
||||||
myMessage: 'My Message',
|
myMessage: 'My Message',
|
||||||
title: 'title',
|
title: 'Title',
|
||||||
publisher: 'publisher',
|
publisher: 'Publisher',
|
||||||
readingStatus: 'readingStatus',
|
readingStatus: 'Reading Status',
|
||||||
messageContent: 'Message Content',
|
messageContent: 'Message Content',
|
||||||
messageType: 'Message Type',
|
messageType: 'Message Type',
|
||||||
allLabelsRead: 'All Mark as Read',
|
allLabelsRead: 'All Mark as Read',
|
||||||
@@ -673,7 +676,7 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
// 市场法规清单选择器
|
// 市场法规清单选择器
|
||||||
marketRegulationsListSelect: {
|
marketRegulationsListSelect: {
|
||||||
marketRegulationsListSelection: 'Selection list'
|
marketRegulationsListSelection: 'Selection List'
|
||||||
},
|
},
|
||||||
// 条款选择器
|
// 条款选择器
|
||||||
clauseSelect: {
|
clauseSelect: {
|
||||||
@@ -699,7 +702,7 @@ module.exports = {
|
|||||||
select: 'Select',
|
select: 'Select',
|
||||||
selectUserOrOrgan: 'Select User/Organization',
|
selectUserOrOrgan: 'Select User/Organization',
|
||||||
organization: 'Organization',
|
organization: 'Organization',
|
||||||
name: 'name',
|
name: 'Name',
|
||||||
secondLevel: 'Second Level',
|
secondLevel: 'Second Level',
|
||||||
threeLevel: 'Three Level'
|
threeLevel: 'Three Level'
|
||||||
},
|
},
|
||||||
@@ -708,7 +711,7 @@ module.exports = {
|
|||||||
select: 'Select',
|
select: 'Select',
|
||||||
selectUser: 'Select User',
|
selectUser: 'Select User',
|
||||||
userList: 'Users List',
|
userList: 'Users List',
|
||||||
name: 'name',
|
name: 'Name',
|
||||||
post: 'Post',
|
post: 'Post',
|
||||||
selectedPersonnel: 'Selected personnel',
|
selectedPersonnel: 'Selected personnel',
|
||||||
workGroup: 'Internal working group'
|
workGroup: 'Internal working group'
|
||||||
@@ -728,7 +731,7 @@ module.exports = {
|
|||||||
cannotPreview: 'This file type does not support preview, is preparing for you to download...',
|
cannotPreview: 'This file type does not support preview, is preparing for you to download...',
|
||||||
cannotUploadEmpty: 'Cannot upload empty files',
|
cannotUploadEmpty: 'Cannot upload empty files',
|
||||||
maxSize: 'The file size is limited to 500M',
|
maxSize: 'The file size is limited to 500M',
|
||||||
onlyUploadPic: 'Please upload pictures',
|
onlyUploadPic: 'Please Upload Pictures',
|
||||||
pleaseUpload: 'Please Upload',
|
pleaseUpload: 'Please Upload',
|
||||||
theFollowingDocuments: 'M The following files',
|
theFollowingDocuments: 'M The following files',
|
||||||
file: 'File',
|
file: 'File',
|
||||||
@@ -777,5 +780,27 @@ module.exports = {
|
|||||||
regulatoryComplianceAssessmentDatabase,
|
regulatoryComplianceAssessmentDatabase,
|
||||||
onlineEditor: {
|
onlineEditor: {
|
||||||
missRequireField: 'Missing required fields'
|
missRequireField: 'Missing required fields'
|
||||||
|
},
|
||||||
|
// 登录
|
||||||
|
login: {
|
||||||
|
systemName: 'Chery Global Regulation And Standard Management System',
|
||||||
|
language: 'English',
|
||||||
|
userLogin: 'ACCOUNT LOGIN',
|
||||||
|
account: 'Account Number',
|
||||||
|
password: 'Password',
|
||||||
|
code: 'Verification Code',
|
||||||
|
login: 'Login',
|
||||||
|
showPassword: 'Show Password',
|
||||||
|
hidePassword: 'Hide Password',
|
||||||
|
loginFailMessage: 'Login Failed',
|
||||||
|
requestFailMessage: 'There was an error with the request, please try again later',
|
||||||
|
checkPhoneMessage: 'Your phone number format is incorrect',
|
||||||
|
checkCodeMessage: 'The verification code you entered is incorrect',
|
||||||
|
codeSendFail: 'Verification code sending failed',
|
||||||
|
welcome: 'Welcome',
|
||||||
|
welcomeBack: ',Welcome Back',
|
||||||
|
reLogin: 'Re Login',
|
||||||
|
phone: 'Mobile Phone Number',
|
||||||
|
codeSending: 'Verification code is being sent'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,30 +14,30 @@ module.exports = {
|
|||||||
templateExport: 'Enterprise Standard Template',
|
templateExport: 'Enterprise Standard Template',
|
||||||
pleaseSelectLeastOneNode: 'Please select Level 2 and below system first',
|
pleaseSelectLeastOneNode: 'Please select Level 2 and below system first',
|
||||||
myCollectNotRemove: 'My collection system cannot be removed from the standard',
|
myCollectNotRemove: 'My collection system cannot be removed from the standard',
|
||||||
authorizationDepart: 'Authorized department',
|
authorizationDepart: 'Authorized Department',
|
||||||
authorizationUser: 'Authorized officer',
|
authorizationUser: 'Authorized Officer',
|
||||||
maturityDate: 'Authorization expiration date',
|
maturityDate: 'Authorization Expiration Date',
|
||||||
detailTitle: 'Enterprise Standards Details page',
|
detailTitle: 'Enterprise Standards Details Page',
|
||||||
evaluate: 'Evaluation of enterprise standard',
|
evaluate: 'Evaluation Of Enterprise Standard',
|
||||||
updateRecord: 'Update record',
|
updateRecord: 'Update Record',
|
||||||
submitQuestion: 'Submit a question',
|
submitQuestion: 'Submit A Question',
|
||||||
standardResolutionSheet: 'Standard interpretation',
|
standardResolutionSheet: 'Standard Interpretation',
|
||||||
nodeName: 'Node name',
|
nodeName: 'Node Name',
|
||||||
subjectToClause: 'Section clause',
|
subjectToClause: 'Article',
|
||||||
standardContentOrRequirements: 'Standard content or requirements',
|
standardContentOrRequirements: 'Enterprise Standard Content',
|
||||||
rectificationDepartment: 'Rectification department',
|
rectificationDepartment: 'Rectification Dept.',
|
||||||
auditContent: 'Monitoring content',
|
auditContent: 'Supervisory Contents',
|
||||||
disabledBatchDel: 'If the selected data has no operation permission, select another data',
|
disabledBatchDel: 'If the selected data has no operation permission, select another data',
|
||||||
pleaseSelectUserOrDepart: 'The authorized department and authorized person must select at least one',
|
pleaseSelectUserOrDepart: 'The authorized department and authorized person must select at least one',
|
||||||
youNot: "You didn't",
|
youNot: "You didn't",
|
||||||
dataPremissReCheck: 'Data permission, please re-select',
|
dataPremissReCheck: 'Data permission, please re-select',
|
||||||
authorizationExpirationDate: 'Authorization expiration date',
|
authorizationExpirationDate: 'Authorization expiration date',
|
||||||
cancelAuthor: 'deauthorize',
|
cancelAuthor: 'Deauthorize',
|
||||||
authorizationDate: 'Authorization date',
|
authorizationDate: 'Authorization Date',
|
||||||
authorizationStandard: 'Authorized bid',
|
authorizationStandard: 'Authorized Bid',
|
||||||
confirmCancelAuthor: 'Confirm the deauthorization?',
|
confirmCancelAuthor: 'Confirm the deauthorization?',
|
||||||
viewAll: 'View all',
|
viewAll: 'View All',
|
||||||
inputExample: 'Input example:',
|
inputExample: 'Input Example:',
|
||||||
nullAutoCreate: 'Do not fill automatically generated',
|
nullAutoCreate: 'Do not fill automatically generated',
|
||||||
cannotJumpAfterDeletion: 'After deletion, other places using the standard cannot jump, confirm deletion?'
|
cannotJumpAfterDeletion: 'After deletion, other places using the standard cannot jump, confirm deletion?'
|
||||||
},
|
},
|
||||||
@@ -46,9 +46,9 @@ module.exports = {
|
|||||||
enterpriseStandardNum: 'Enterprise Standard No.',
|
enterpriseStandardNum: 'Enterprise Standard No.',
|
||||||
enterpriseStandardName: 'Enterprise Standard',
|
enterpriseStandardName: 'Enterprise Standard',
|
||||||
publishDate: 'Published Date',
|
publishDate: 'Published Date',
|
||||||
reviewDate: 'Review date',
|
reviewDate: 'Review Date',
|
||||||
initReview: 'Initiate a review',
|
initReview: 'Initiate A Review',
|
||||||
reviewResult: 'Review results',
|
reviewResult: 'Review Results',
|
||||||
principalDrafter: 'Chief Drafter',
|
principalDrafter: 'Chief Drafter',
|
||||||
mainDraftingUnit: 'Chief Drafting Unit'
|
mainDraftingUnit: 'Chief Drafting Unit'
|
||||||
},
|
},
|
||||||
@@ -63,24 +63,24 @@ module.exports = {
|
|||||||
headOfMainDraftingUnit: 'Chief Drafting Unit Head',
|
headOfMainDraftingUnit: 'Chief Drafting Unit Head',
|
||||||
projectStatus: 'Project Status',
|
projectStatus: 'Project Status',
|
||||||
changeState: 'Change Status',
|
changeState: 'Change Status',
|
||||||
pusherWorkNo: 'Promote artificial numbers',
|
pusherWorkNo: 'Promote Artificial Numbers',
|
||||||
standardType: 'Regulation Type',
|
standardType: 'Regulation Type',
|
||||||
revisionType: 'Revision type',
|
revisionType: 'Revision Type',
|
||||||
planApprovalDate: 'Planned approval date',
|
planApprovalDate: 'Planned Approval Date',
|
||||||
createDate: 'Creation date',
|
createDate: 'Creation Date',
|
||||||
exportFileName: 'Enterprise Standard Schedule',
|
exportFileName: 'Enterprise Standard Schedule',
|
||||||
authDepartment: 'Authorized department',
|
authDepartment: 'Authorized Department',
|
||||||
enterpriseStandardCode: 'Enterprise standard code',
|
enterpriseStandardCode: 'Enterprise Standard Code',
|
||||||
suitUnit: 'Cooperate with units',
|
suitUnit: 'Cooperate With Units',
|
||||||
standardPusher: 'Standard promoter',
|
standardPusher: 'Standard Promoter',
|
||||||
draftPlanFinishDate: 'Draft plan completion date',
|
draftPlanFinishDate: 'Draft Plan Completion Date',
|
||||||
exposureDraftPlanFinishDate: 'Draft for Solicitation of Comments Plan Completion Date',
|
exposureDraftPlanFinishDate: 'Draft for Solicitation of Comments Plan Completion Date',
|
||||||
planSubmissionDate: 'Planned approval date',
|
planSubmissionDate: 'Planned Approval Date',
|
||||||
draftFinishDate: 'Draft completion date',
|
draftFinishDate: 'Draft Completion Date',
|
||||||
submitDraftDate: 'Submission date of draft',
|
submitDraftDate: 'Submission Date Of Draft',
|
||||||
isAskForAdvice: 'Whether to solicit opinions',
|
isAskForAdvice: 'Whether To Solicit Opinions',
|
||||||
exposureDraftFinishDate: 'Date of completion of the draft for soliciting opinions',
|
exposureDraftFinishDate: 'Date of completion of the draft for soliciting opinions',
|
||||||
reviewDate: 'Review date',
|
reviewDate: 'Review Date',
|
||||||
submissionDate: 'Approval Date',
|
submissionDate: 'Approval Date',
|
||||||
releaseDate: 'Published Date',
|
releaseDate: 'Published Date',
|
||||||
detailTitle: 'Enterprise Standard Plan Details Page',
|
detailTitle: 'Enterprise Standard Plan Details Page',
|
||||||
@@ -89,10 +89,10 @@ module.exports = {
|
|||||||
gradeClassification: 'Classification of Enterprise Standard Levels',
|
gradeClassification: 'Classification of Enterprise Standard Levels',
|
||||||
projectType: 'Project Type',
|
projectType: 'Project Type',
|
||||||
rangeOfApplication: 'Scope',
|
rangeOfApplication: 'Scope',
|
||||||
enterpriseStandardSystem: 'Enterprise standard system',
|
enterpriseStandardSystem: 'Enterprise Standard System',
|
||||||
partName: 'Classification of components',
|
partName: 'Classification Of Components',
|
||||||
scopeOfApplication: 'Scope of application of the standard',
|
scopeOfApplication: 'Scope of application of the standard',
|
||||||
compilationIllustration: 'Compilation instructions',
|
compilationIllustration: 'Compilation Instructions',
|
||||||
projectBackground: 'Background and Basis of Project Proposal',
|
projectBackground: 'Background and Basis of Project Proposal',
|
||||||
similarNaStandardsAnalysis: 'Analysis of similar international, national, and industry standards',
|
similarNaStandardsAnalysis: 'Analysis of similar international, national, and industry standards',
|
||||||
similarEnStandardsAnalysis: 'Comparative analysis of similar standards in enterprises',
|
similarEnStandardsAnalysis: 'Comparative analysis of similar standards in enterprises',
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ module.exports = {
|
|||||||
compilationIllustration: '编制说明',
|
compilationIllustration: '编制说明',
|
||||||
projectBackground: '立项背景、立项依据',
|
projectBackground: '立项背景、立项依据',
|
||||||
similarNaStandardsAnalysis: '国际、国家及行业同类标准分析',
|
similarNaStandardsAnalysis: '国际、国家及行业同类标准分析',
|
||||||
similarEnStandardsAnalysis: '企业同类标准对比分析',
|
similarEnStandardsAnalysis: '企业同类标准比对分析',
|
||||||
standardLeadingNecessity: '立项标准的领先性与必要性',
|
standardLeadingNecessity: '立项标准的领先性与必要性',
|
||||||
projectExpectedEffects: '立项目的及预期效果等'
|
projectExpectedEffects: '立项目的及预期效果等'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,14 +43,14 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
// 任务转交
|
// 任务转交
|
||||||
taskCareOf: {
|
taskCareOf: {
|
||||||
basicLibraryInfo: 'Basic library information',
|
basicLibraryInfo: 'Basic Library Information',
|
||||||
processInfo: 'Process Information',
|
processInfo: 'Process Information',
|
||||||
user: 'User',
|
user: 'User',
|
||||||
type: 'Type',
|
type: 'Type',
|
||||||
standardNum: 'Regulation No.',
|
standardNum: 'Regulation No.',
|
||||||
standardName: 'Regulation Name',
|
standardName: 'Regulation Name',
|
||||||
role: 'Role',
|
role: 'Role',
|
||||||
transferUser: 'Transferred by',
|
transferUser: 'Transferred By',
|
||||||
transfer: 'Transmit',
|
transfer: 'Transmit',
|
||||||
nodeName: 'Node name'
|
nodeName: 'Node name'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,37 +1,37 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
projectName: 'Project name', // 项目名称
|
projectName: 'Project Name', // 项目名称
|
||||||
workOrderNumber: 'Work order number', // 工作令编号
|
workOrderNumber: 'Work order Number', // 工作令编号
|
||||||
projectHealthStatus: 'Project health', // 项目健康度
|
projectHealthStatus: 'Project Health', // 项目健康度
|
||||||
selectProject: 'Select Project', // 选择项目
|
selectProject: 'Select Project', // 选择项目
|
||||||
projectLevel: 'Project level', // 项目级别
|
projectLevel: 'Project Level', // 项目级别
|
||||||
|
|
||||||
// 车型项目库
|
// 车型项目库
|
||||||
vehicleItemLibrary: {
|
vehicleItemLibrary: {
|
||||||
vehicleItemLibrary: 'Vehicle item library', // 车型项目库
|
vehicleItemLibrary: 'Vehicle Item Library', // 车型项目库
|
||||||
PMSInfoSynchronization: 'PMS information synchronization', // PMS信息同步
|
PMSInfoSynchronization: 'PMS Information Synchronization', // PMS信息同步
|
||||||
projectSource: 'Project source', // 项目来源
|
projectSource: 'Project Source', // 项目来源
|
||||||
projectLeader: 'Project leader', // 项目负责人,
|
projectLeader: 'Project Leader', // 项目负责人,
|
||||||
PMSDetails: 'PMS Details', // PMS详情
|
PMSDetails: 'PMS Details', // PMS详情
|
||||||
noMatchItemDetails: 'Details of non compliant items',
|
noMatchItemDetails: 'Details of non compliant items',
|
||||||
riskOverview: 'Risk overview', // 风险性总览
|
riskOverview: 'Risk Overview', // 风险性总览
|
||||||
conform: 'Conform to', // 符合
|
conform: 'Conform To', // 符合
|
||||||
inconformity: 'Inconformity', // 不符合
|
inconformity: 'Inconformity', // 不符合
|
||||||
toBeVerified: 'To be verified', // 待验证
|
toBeVerified: 'To Be Verified', // 待验证
|
||||||
uninvolved: 'Not involve', // 不涉及
|
uninvolved: 'Not Involve', // 不涉及
|
||||||
regulationsList: 'Regulation List',
|
regulationsList: 'Regulation List',
|
||||||
standardNumberStandardName: 'Regulation No. / Regulation Name',
|
standardNumberStandardName: 'Regulation No. / Regulation Name',
|
||||||
transfer: 'Transfer',
|
transfer: 'Transfer',
|
||||||
standardNumber: 'Regulation No.',
|
standardNumber: 'Regulation No.',
|
||||||
standardName: 'Regulation Name',
|
standardName: 'Regulation Name',
|
||||||
englishName: 'English name',
|
englishName: 'English Name',
|
||||||
standardState: 'Regulation Status',
|
standardState: 'Regulation Status',
|
||||||
applicableVehicleType: 'Vehicle Catagory',
|
applicableVehicleType: 'Vehicle Catagory',
|
||||||
productionDate: 'On the production date',
|
productionDate: 'On The Production Date',
|
||||||
newModelImplementationDate: 'New model implementation date',
|
newModelImplementationDate: 'New Model Implementation Date',
|
||||||
processState: 'Process state',
|
processState: 'Process State',
|
||||||
evaluationResult: 'Evaluation Result',
|
evaluationResult: 'Evaluation Result',
|
||||||
responsibleDepartment: 'Responsible Dept.',
|
responsibleDepartment: 'Responsible Dept.',
|
||||||
evaluationResultHistory: 'Evaluation result history',
|
evaluationResultHistory: 'Evaluation Result History',
|
||||||
evaluationProcessDetail: 'Evaluation Process Details',
|
evaluationProcessDetail: 'Evaluation Process Details',
|
||||||
standardNumberClauseNumber: 'Regulation No. / Article No.',
|
standardNumberClauseNumber: 'Regulation No. / Article No.',
|
||||||
projectNumber: 'Project No.',
|
projectNumber: 'Project No.',
|
||||||
@@ -39,27 +39,27 @@ module.exports = {
|
|||||||
dateOfEvaluation: 'Date of Assessment',
|
dateOfEvaluation: 'Date of Assessment',
|
||||||
nonConformanceTerm: 'Non-conformance',
|
nonConformanceTerm: 'Non-conformance',
|
||||||
solutions: 'Countermeasures',
|
solutions: 'Countermeasures',
|
||||||
riskPoint: 'Risk points',
|
riskPoint: 'Risk Points',
|
||||||
verificationScheme: 'Authentication scheme',
|
verificationScheme: 'Authentication Scheme',
|
||||||
estimateTheChangeCycle: 'Estimated Change Cycle',
|
estimateTheChangeCycle: 'Estimated Change Cycle',
|
||||||
estimatedDateOfCompletionOfRectification: 'Expected completion date of rectification'
|
estimatedDateOfCompletionOfRectification: 'Expected completion date of rectification'
|
||||||
},
|
},
|
||||||
noncoincidenceItem: {
|
noncoincidenceItem: {
|
||||||
noncoincidenceItem: 'Non compliant items',
|
noncoincidenceItem: 'Non Compliant Items',
|
||||||
batchClose: 'Batch Close',
|
batchClose: 'Batch Close',
|
||||||
actualRectificationCompletionDate: 'Actual completion date of rectification',
|
actualRectificationCompletionDate: 'Actual completion date of rectification',
|
||||||
projectSelection: 'Project selection',
|
projectSelection: 'Project Selection',
|
||||||
relevantProject: 'Related projects',
|
relevantProject: 'Related Projects',
|
||||||
relatedProcess: 'Related processes',
|
relatedProcess: 'Related Processes',
|
||||||
viewNonMatchItemEvaluationResult: 'View the rectification results of non compliant items',
|
viewNonMatchItemEvaluationResult: 'View the rectification results of non compliant items',
|
||||||
involvedItem: 'Involving projects'
|
involvedItem: 'Involving Projects'
|
||||||
},
|
},
|
||||||
specialProjectLibrary: {
|
specialProjectLibrary: {
|
||||||
specialProjectLibrary: 'Special Project Library',
|
specialProjectLibrary: 'Special Project Library',
|
||||||
vehicleSeries: 'Model series',
|
vehicleSeries: 'Model Series',
|
||||||
complianceAssessmentResults: 'Compliance assessment results',
|
complianceAssessmentResults: 'Compliance Assessment Results',
|
||||||
basisDescription: 'According to the description',
|
basisDescription: 'According To The Description',
|
||||||
whetherToApproveAProjectOrNot: 'Is the project approved',
|
whetherToApproveAProjectOrNot: 'Is The Project Approved',
|
||||||
vehicleModel: 'Vehicle Catagory',
|
vehicleModel: 'Vehicle Catagory',
|
||||||
supportingMaterial: 'Supporting Files'
|
supportingMaterial: 'Supporting Files'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ module.exports = {
|
|||||||
rectificationCycle: 'Rectification Time',
|
rectificationCycle: 'Rectification Time',
|
||||||
rectificationCost: 'Rectification Costs',
|
rectificationCost: 'Rectification Costs',
|
||||||
sharedWithOtherProjects: 'Commonality',
|
sharedWithOtherProjects: 'Commonality',
|
||||||
costOfThisItemAfterSharing: 'Expenses after Sharing',
|
costOfThisItemAfterSharing: 'Expenses After Sharing',
|
||||||
remarks: 'Note',
|
remarks: 'Note',
|
||||||
supportingMaterial: 'Supporting Files'
|
supportingMaterial: 'Supporting Files'
|
||||||
},
|
},
|
||||||
@@ -36,7 +36,7 @@ module.exports = {
|
|||||||
rectificationCycle: 'Rectification Time',
|
rectificationCycle: 'Rectification Time',
|
||||||
rectificationCost: 'Rectification Costs',
|
rectificationCost: 'Rectification Costs',
|
||||||
sharedWithOtherProjects: 'Commonality',
|
sharedWithOtherProjects: 'Commonality',
|
||||||
costOfThisItemAfterSharing: 'Expenses after Sharing',
|
costOfThisItemAfterSharing: 'Expenses After Sharing',
|
||||||
isHaveClosed: 'Select the data whose rectification status is to be rectified and close it',
|
isHaveClosed: 'Select the data whose rectification status is to be rectified and close it',
|
||||||
exportName: 'Non-conformance term Library table'
|
exportName: 'Non-conformance term Library table'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,29 +1,29 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
configStandard: 'Configuration standard', // 配置标准
|
configStandard: 'Configuration Standard', // 配置标准
|
||||||
removeStandard: 'Removal criteria', // 移出标准
|
removeStandard: 'Removal Criteria', // 移出标准
|
||||||
nodeName: 'Node name', // 节点名称
|
nodeName: 'Node Name', // 节点名称
|
||||||
nodeOrder: 'Node ordering', // 节点排序
|
nodeOrder: 'Node Ordering', // 节点排序
|
||||||
configStandardNoTreeNode: 'Please select Level 2 and below system first', // 请先选择二级及以下体系
|
configStandardNoTreeNode: 'Please select Level 2 and below system first', // 请先选择二级及以下体系
|
||||||
selectLeastOneTableData: 'Select at least one list data', // 选中至少一条列表数据
|
selectLeastOneTableData: 'Select at least one list data', // 选中至少一条列表数据
|
||||||
standardResolutionSheet: 'Standard interpretation', // 标准解读
|
standardResolutionSheet: 'Standard interpretation', // 标准解读
|
||||||
updateRecord: 'Update record', // 更新记录
|
updateRecord: 'Update Record', // 更新记录
|
||||||
submitQuestion: 'Submit a question', // 提交问题
|
submitQuestion: 'Submit A Question', // 提交问题
|
||||||
standardCatalogue: 'Standard catalogue', // 标准目录
|
standardCatalogue: 'Standard Catalogue', // 标准目录
|
||||||
clauseLabel: 'Clause label', // 条文标签
|
clauseLabel: 'Article Label', // 条文标签
|
||||||
translation: 'Translation',
|
translation: 'Translation',
|
||||||
clauseNumber: 'Article number', // 条文号
|
clauseNumber: 'Article number', // 条文号
|
||||||
clauseTitle: 'Title of article', // 条文标题
|
clauseTitle: 'Title of Article', // 条文标题
|
||||||
regulatoryRequirementsType: 'Types of regulatory requirements', // 法规要求类型
|
regulatoryRequirementsType: 'Types of Regulatory Requirements', // 法规要求类型
|
||||||
functionalClassification: 'Functional classification', // 功能分类
|
functionalClassification: 'Functional Classification', // 功能分类
|
||||||
functionalSpecialty: 'Functional specialty', // 功能专业
|
functionalSpecialty: 'Functional Specialty', // 功能专业
|
||||||
blockCoding: 'Block coding', // 分组编码
|
blockCoding: 'Block Coding', // 分组编码
|
||||||
groupName: 'Group name', // 分组名称
|
groupName: 'Group Name', // 分组名称
|
||||||
newCertificationImplementationTime: 'New Production Vehicle Implementation Date', // 新认证实施时间
|
newCertificationImplementationTime: 'New Production Vehicle Implementation Date', // 新认证实施时间
|
||||||
certifiedImplementationTime: 'Certified implementation time', // 已认证实施时间
|
certifiedImplementationTime: 'Certified Implementation Time', // 已认证实施时间
|
||||||
newRegistrationImplementationTime: 'New registration implementation time', // 新注册实施时间
|
newRegistrationImplementationTime: 'New Registration Implementation Time', // 新注册实施时间
|
||||||
applicableVehicleType: 'Vehicle Catagory', // 适用车型
|
applicableVehicleType: 'Vehicle Catagory', // 适用车型
|
||||||
dynamicType: 'Power Propulsion Type', // 动力类型
|
dynamicType: 'Power Propulsion Type', // 动力类型
|
||||||
inputExample: 'Input example:', // 输入示例
|
inputExample: 'Input Example:', // 输入示例
|
||||||
applicableComponents: 'Applicable Components',
|
applicableComponents: 'Applicable Components',
|
||||||
involvingSystemsComponents: 'Related System(s)/Component(s)',
|
involvingSystemsComponents: 'Related System(s)/Component(s)',
|
||||||
applications: 'Vehicle Catagory',
|
applications: 'Vehicle Catagory',
|
||||||
@@ -52,9 +52,9 @@ module.exports = {
|
|||||||
// 资料中心
|
// 资料中心
|
||||||
profileCenter: {
|
profileCenter: {
|
||||||
typeOfOwnership: 'Type of ownership',
|
typeOfOwnership: 'Type of ownership',
|
||||||
uploadData: 'Upload data',
|
uploadData: 'Upload Data',
|
||||||
addAPeer: 'Add a peer',
|
addAPeer: 'Add A Peer',
|
||||||
newChild: 'New child',
|
newChild: 'New Child',
|
||||||
pleaseSelectTheDirectoryOnTheLeft: 'Please select the directory on the left'
|
pleaseSelectTheDirectoryOnTheLeft: 'Please select the directory on the left'
|
||||||
},
|
},
|
||||||
// 市场法规清单
|
// 市场法规清单
|
||||||
@@ -68,11 +68,11 @@ module.exports = {
|
|||||||
listVersion: 'Version',
|
listVersion: 'Version',
|
||||||
releaseTime: 'Published Date',
|
releaseTime: 'Published Date',
|
||||||
listState: 'Status',
|
listState: 'Status',
|
||||||
customName: 'Custom name',
|
customName: 'Custom Name',
|
||||||
securityClass: 'Confidential level',
|
securityClass: 'Confidential Level',
|
||||||
listDeclaration: 'Manifest declaration',
|
listDeclaration: 'Manifest Declaration',
|
||||||
templateName: 'Market regulation list import template',
|
templateName: 'Market regulation list import template',
|
||||||
historicalVersion: 'Historical version',
|
historicalVersion: 'Historical Version',
|
||||||
standardExist: 'The standard already exists',
|
standardExist: 'The standard already exists',
|
||||||
haveStandardExist: 'Some standards already exist',
|
haveStandardExist: 'Some standards already exist',
|
||||||
pleaseSelectAListPublish: 'Please select a list to publish',
|
pleaseSelectAListPublish: 'Please select a list to publish',
|
||||||
@@ -89,7 +89,7 @@ module.exports = {
|
|||||||
applicableVehicleType: 'Vehicle Catagory',
|
applicableVehicleType: 'Vehicle Catagory',
|
||||||
authenticationObject: 'Certification Item',
|
authenticationObject: 'Certification Item',
|
||||||
certifiedDeliverables: 'Verification',
|
certifiedDeliverables: 'Verification',
|
||||||
type: 'Type',
|
type: 'Requirement Category',
|
||||||
dynamicType: 'Power Propulsion Type',
|
dynamicType: 'Power Propulsion Type',
|
||||||
mainControlDepartment: 'Main Responsible Dept.',
|
mainControlDepartment: 'Main Responsible Dept.',
|
||||||
masterControlDepartmentProfessionalModule: 'Module of Main Responsible Dept. ',
|
masterControlDepartmentProfessionalModule: 'Module of Main Responsible Dept. ',
|
||||||
@@ -97,7 +97,8 @@ module.exports = {
|
|||||||
associateDepartmentSpecializedModules: 'Module of Related Dept. ',
|
associateDepartmentSpecializedModules: 'Module of Related Dept. ',
|
||||||
batchRestriction: 'Production Amount',
|
batchRestriction: 'Production Amount',
|
||||||
automaticDrivingLevel: 'Automatic Driving Level',
|
automaticDrivingLevel: 'Automatic Driving Level',
|
||||||
requirementType: 'Optional/Compulsory'
|
requirementType: 'Optional/Compulsory',
|
||||||
|
remarks: 'Note'
|
||||||
},
|
},
|
||||||
// 标准主计划
|
// 标准主计划
|
||||||
standardMasterPlan: {
|
standardMasterPlan: {
|
||||||
|
|||||||
@@ -97,7 +97,8 @@ module.exports = {
|
|||||||
associateDepartmentSpecializedModules: '关联部门专业模块',
|
associateDepartmentSpecializedModules: '关联部门专业模块',
|
||||||
batchRestriction: '批量限制',
|
batchRestriction: '批量限制',
|
||||||
automaticDrivingLevel: '自动驾驶等级',
|
automaticDrivingLevel: '自动驾驶等级',
|
||||||
requirementType: '要求类型'
|
requirementType: '要求类型',
|
||||||
|
remarks: '备注'
|
||||||
},
|
},
|
||||||
// 标准主计划
|
// 标准主计划
|
||||||
standardMasterPlan: {
|
standardMasterPlan: {
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ module.exports = {
|
|||||||
labelName: 'Tag Name',
|
labelName: 'Tag Name',
|
||||||
labelType: 'Tag Type',
|
labelType: 'Tag Type',
|
||||||
essentialInformation: 'Basis',
|
essentialInformation: 'Basis',
|
||||||
domesticLaws: 'Domestic regulations',
|
domesticLaws: 'Domestic Regulations',
|
||||||
foreignStandards: 'Overseas standards',
|
foreignStandards: 'Overseas Standards',
|
||||||
foreignStandardRegulations: 'External Standards',
|
foreignStandardRegulations: 'External Standards',
|
||||||
enterpriseStandards: 'Enterprise Standards',
|
enterpriseStandards: 'Enterprise Standards',
|
||||||
clauseSplitting: 'Articles',
|
clauseSplitting: 'Articles',
|
||||||
@@ -51,10 +51,10 @@ module.exports = {
|
|||||||
name: 'Name',
|
name: 'Name',
|
||||||
dataValue: 'Value',
|
dataValue: 'Value',
|
||||||
parentName: 'Parent Name',
|
parentName: 'Parent Name',
|
||||||
select: 'select',
|
select: 'Select',
|
||||||
tree: 'Tree',
|
tree: 'Tree',
|
||||||
pleaseEnterYourEnglishName: 'Please input english name',
|
pleaseEnterYourEnglishName: 'Please input english name',
|
||||||
usableRange: 'Scope of use'
|
usableRange: 'Scope Of Use'
|
||||||
},
|
},
|
||||||
// 内部工作组
|
// 内部工作组
|
||||||
internalWorkGroup: {
|
internalWorkGroup: {
|
||||||
@@ -63,8 +63,8 @@ module.exports = {
|
|||||||
workNo: 'Job Number',
|
workNo: 'Job Number',
|
||||||
role: 'Role',
|
role: 'Role',
|
||||||
post: 'Position',
|
post: 'Position',
|
||||||
templateName: 'Internal workgroup table template',
|
templateName: 'Internal Workgroup Table Template',
|
||||||
exportName: 'Internal workgroup table',
|
exportName: 'Internal Workgroup Table',
|
||||||
nodeName: 'Branch Name',
|
nodeName: 'Branch Name',
|
||||||
adminAuthority: 'Administration Privileges',
|
adminAuthority: 'Administration Privileges',
|
||||||
workGroupName: 'Workgroup Name',
|
workGroupName: 'Workgroup Name',
|
||||||
@@ -93,35 +93,35 @@ module.exports = {
|
|||||||
contact: {
|
contact: {
|
||||||
departName: 'Department Name',
|
departName: 'Department Name',
|
||||||
standardizationEngineer: 'Standardization Engineer',
|
standardizationEngineer: 'Standardization Engineer',
|
||||||
contactPerson: 'Contact person',
|
contactPerson: 'Contact Person',
|
||||||
contactPersonSupervisorLevelLeader: 'Departmental liaison person, supervisor level leader'
|
contactPersonSupervisorLevelLeader: 'Departmental liaison person, supervisor level leader'
|
||||||
},
|
},
|
||||||
// 绑定零部件
|
// 绑定零部件
|
||||||
bindingParts: {
|
bindingParts: {
|
||||||
partNumber: 'Part Number',
|
partNumber: 'Part Number',
|
||||||
partName: 'Component Name',
|
partName: 'Component Name',
|
||||||
bindingPersonnel: 'Binding personnel',
|
bindingPersonnel: 'Binding Personnel',
|
||||||
useBindingRelationship: 'Use binding relationships',
|
useBindingRelationship: 'Use Binding Relationships',
|
||||||
clauseNumber: 'Article No.',
|
clauseNumber: 'Article No.',
|
||||||
bindingTime: 'Binding time',
|
bindingTime: 'Binding Time',
|
||||||
confirmUseBindRelationship: 'Confirm the use of binding relationship',
|
confirmUseBindRelationship: 'Confirm the use of binding relationship',
|
||||||
isUseBindRelationship: 'Whether to use binding relationship?',
|
isUseBindRelationship: 'Whether to use binding relationship?',
|
||||||
isBringIn: 'Whether to introduce',
|
isBringIn: 'Whether To Introduce',
|
||||||
haveBind: 'Under the current component classification structure, there are already',
|
haveBind: 'Under the current component classification structure, there are already',
|
||||||
isBringInRelation: 'Bind standard association relationships, do you want to introduce corresponding relationships?'
|
isBringInRelation: 'Bind standard association relationships, do you want to introduce corresponding relationships?'
|
||||||
},
|
},
|
||||||
// 分组管理
|
// 分组管理
|
||||||
groupMange: {
|
groupMange: {
|
||||||
groupName: 'Group name',
|
groupName: 'Group Name',
|
||||||
peopleNumber: 'Number of people',
|
peopleNumber: 'Number Of People',
|
||||||
groupMembers: 'Group members',
|
groupMembers: 'Group Members',
|
||||||
userName: 'User Name'
|
userName: 'User Name'
|
||||||
},
|
},
|
||||||
// 未发送成功的消息管理
|
// 未发送成功的消息管理
|
||||||
notSentMessage: {
|
notSentMessage: {
|
||||||
messageType: 'Message type',
|
messageType: 'Message Type',
|
||||||
pushContent: 'Push content',
|
pushContent: 'Push Content',
|
||||||
pushAddress: 'Push address',
|
pushAddress: 'Push Address',
|
||||||
resend: 'Resend',
|
resend: 'Resend',
|
||||||
areYouSureResend: 'Are you sure to resend it'
|
areYouSureResend: 'Are you sure to resend it'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,25 +18,27 @@ module.exports = {
|
|||||||
stageWeAreIn: 'Regulation Status',
|
stageWeAreIn: 'Regulation Status',
|
||||||
materialDate: 'Implementation Date',
|
materialDate: 'Implementation Date',
|
||||||
applicableMarket: 'Applicable Market',
|
applicableMarket: 'Applicable Market',
|
||||||
ccPerson: 'Cc person',
|
competentDepartment: 'Competent department',
|
||||||
|
mainControlDepartment: 'Main control department',
|
||||||
|
ccPerson: 'CC Person',
|
||||||
briefDescription: 'The statute requires a brief description'
|
briefDescription: 'The statute requires a brief description'
|
||||||
},
|
},
|
||||||
// 法规符合性排查流程
|
// 法规符合性排查流程
|
||||||
regulatoryComplianceCheckProcess: {
|
regulatoryComplianceCheckProcess: {
|
||||||
addStandard: 'Addition standard',
|
addStandard: 'Addition Standard',
|
||||||
manualAddition: 'Manual addition',
|
manualAddition: 'Manual Addition',
|
||||||
vehicleTypeItem: 'Vehicle type item',
|
vehicleTypeItem: 'Vehicle Type Item',
|
||||||
applicableMarket: 'Applicable Market',
|
applicableMarket: 'Applicable Market',
|
||||||
isAlike: 'Differences',
|
isAlike: 'Differences',
|
||||||
resolutionAttachment: 'Resolution attachment',
|
resolutionAttachment: 'Resolution Attachment',
|
||||||
decompositionSingleSource: 'Decomposition single source',
|
decompositionSingleSource: 'Decomposition single source',
|
||||||
pleaseAddStandard: 'Please add a new criterion first',
|
pleaseAddStandard: 'Please add a new criterion first',
|
||||||
modelStatus: 'Model status',
|
modelStatus: 'Model Status',
|
||||||
primaryInvestigator: 'Primary investigator',
|
primaryInvestigator: 'Primary investigator',
|
||||||
checkWhetherTheTaskIsDelivered: 'Check whether the task is delivered',
|
checkWhetherTheTaskIsDelivered: 'Check whether the task is delivered',
|
||||||
batchSelector: 'Batch selector',
|
batchSelector: 'Batch Selector',
|
||||||
mainFinderImportTemplate: 'Compliance check process Import template',
|
mainFinderImportTemplate: 'Compliance check process Import template',
|
||||||
countersigningOfficer: 'Countersigning officer',
|
countersigningOfficer: 'Countersigning Officer',
|
||||||
auditor: 'Auditor',
|
auditor: 'Auditor',
|
||||||
approvingOfficer: 'Approving officer',
|
approvingOfficer: 'Approving officer',
|
||||||
evaluationResult: 'Evaluation Result',
|
evaluationResult: 'Evaluation Result',
|
||||||
@@ -45,27 +47,28 @@ module.exports = {
|
|||||||
rectificationCycle: 'Rectification Time',
|
rectificationCycle: 'Rectification Time',
|
||||||
rectificationCost: 'Rectification Costs',
|
rectificationCost: 'Rectification Costs',
|
||||||
sharedWithOtherProjects: 'Commonality',
|
sharedWithOtherProjects: 'Commonality',
|
||||||
costOfThisItemAfterSharing: 'Expenses after Sharing',
|
costOfThisItemAfterSharing: 'Expenses After Sharing',
|
||||||
appraiser: 'Evaluator',
|
appraiser: 'Evaluator',
|
||||||
salvageListTemplateDownload: 'Split single file template download',
|
salvageListTemplateDownload: 'Split single file template download',
|
||||||
salvageListTemplateName: 'Decomposes a single file upload template',
|
salvageListTemplateName: 'Decomposes a single file upload template',
|
||||||
carTypeFileTemplateDownload: 'Model project file template download',
|
carTypeFileTemplateDownload: 'Model project file template download',
|
||||||
carTypeFileTemplateName: 'Model project file upload template',
|
carTypeFileTemplateName: 'Model project file upload template',
|
||||||
pleaseGenerate: 'Please generate data',
|
pleaseGenerate: 'Please generate data',
|
||||||
|
pleaseAnewGenerate: 'Please re-generate the data',
|
||||||
pleaseClickNext: 'Please click Next to display the information',
|
pleaseClickNext: 'Please click Next to display the information',
|
||||||
pleaseSelectDesignEngineer: 'Please select Design Engineer',
|
pleaseSelectDesignEngineer: 'Please select Design Engineer',
|
||||||
atLeastSelectOneDesignEngineer: 'Please select at least one design engineer'
|
atLeastSelectOneDesignEngineer: 'Please select at least one design engineer'
|
||||||
},
|
},
|
||||||
// 市场清单发布流程
|
// 市场清单发布流程
|
||||||
marketListReleaseProcess: {
|
marketListReleaseProcess: {
|
||||||
englishName: 'English name',
|
englishName: 'English Name',
|
||||||
newProductionVehicleImplementationDate: 'New Certified Vehicle Implementation Date',
|
newProductionVehicleImplementationDate: 'New Certified Vehicle Implementation Date',
|
||||||
newCertifiedVehicleImplementationDate: 'New Production Vehicle Implementation Date',
|
newCertifiedVehicleImplementationDate: 'New Production Vehicle Implementation Date',
|
||||||
applicableCountryRegion: 'Country/Region',
|
applicableCountryRegion: 'Country/Region',
|
||||||
applicableVehicleType: 'Vehicle Catagory',
|
applicableVehicleType: 'Vehicle Catagory',
|
||||||
authenticationObject: 'Certification Item',
|
authenticationObject: 'Certification Item',
|
||||||
certifiedDeliverables: 'Verification',
|
certifiedDeliverables: 'Verification',
|
||||||
type: '类型',
|
type: 'Type',
|
||||||
dynamicType: 'Power Propulsion Type',
|
dynamicType: 'Power Propulsion Type',
|
||||||
mainControlDepartment: 'Main Responsible Dept.',
|
mainControlDepartment: 'Main Responsible Dept.',
|
||||||
masterControlDepartmentProfessionalModule: 'Module of Main Responsible Dept. ',
|
masterControlDepartmentProfessionalModule: 'Module of Main Responsible Dept. ',
|
||||||
@@ -116,49 +119,49 @@ module.exports = {
|
|||||||
pFive: 'P5 Deliverables',
|
pFive: 'P5 Deliverables',
|
||||||
notes: 'Note',
|
notes: 'Note',
|
||||||
configurationRequirements: 'Optional / Compulsory',
|
configurationRequirements: 'Optional / Compulsory',
|
||||||
countersigningPerson: 'Countersigning personnel',
|
countersigningPerson: 'Countersigning Personnel',
|
||||||
reviewersPerson: 'Reviewer',
|
reviewersPerson: 'Reviewer',
|
||||||
approvedPerson: 'Approved personnel',
|
approvedPerson: 'Approved Personnel',
|
||||||
batchEdit: 'Bulk edit',
|
batchEdit: 'Bulk Edit',
|
||||||
pleaseSelectInterpreter: 'Select at least one piece of data for each department involved to interpret',
|
pleaseSelectInterpreter: 'Select at least one piece of data for each department involved to interpret',
|
||||||
pleaseSelectClause: 'Please select terms',
|
pleaseSelectClause: 'Please Select Terms',
|
||||||
interpretationDistribution: 'Interpretation and Distribution',
|
interpretationDistribution: 'Interpretation and Distribution',
|
||||||
interpretationTable: 'Interpretation Table',
|
interpretationTable: 'Interpretation Table',
|
||||||
interpretationAttributes: 'Interpretation of attributes',
|
interpretationAttributes: 'Interpretation of Attributes',
|
||||||
summarySingleChoiceTip: 'Need to summarize as single choice'
|
summarySingleChoiceTip: 'Need to summarize as single choice'
|
||||||
},
|
},
|
||||||
// 流程配置
|
// 流程配置
|
||||||
processConfig: {
|
processConfig: {
|
||||||
processType: 'Process Type',
|
processType: 'Process Type',
|
||||||
editFlowchart: 'Edit flowchart',
|
editFlowchart: 'Edit Flowchart',
|
||||||
editFlowNode: 'Edit process nodes',
|
editFlowNode: 'Edit Process Nodes',
|
||||||
deploy: 'Arrange'
|
deploy: 'Arrange'
|
||||||
},
|
},
|
||||||
processDetail: {
|
processDetail: {
|
||||||
urgeHandle: 'Urge sb. to do STH.',
|
urgeHandle: 'Urge sb. to do STH.',
|
||||||
flowChart: 'Flow chart',
|
flowChart: 'Flow Chart',
|
||||||
taskNode: 'Task node',
|
taskNode: 'Task Node',
|
||||||
taskHandler: 'Task handler',
|
taskHandler: 'Task Handler',
|
||||||
completionTime: 'Completion time',
|
completionTime: 'Completion Time',
|
||||||
timeConsuming: 'Time consuming',
|
timeConsuming: 'Time Consuming',
|
||||||
approvalOpinion: 'Approval opinion',
|
approvalOpinion: 'Approval Opinion',
|
||||||
opinionContent: 'Opinion content'
|
opinionContent: 'Opinion Content'
|
||||||
},
|
},
|
||||||
// 流程中心
|
// 流程中心
|
||||||
processCenter: {
|
processCenter: {
|
||||||
todoProcess: 'To-do',
|
todoProcess: 'To-do',
|
||||||
doneProcess: 'Completed',
|
doneProcess: 'Completed',
|
||||||
sentProcess: 'Issued',
|
sentProcess: 'Issued',
|
||||||
monitorProcess: 'Follow up',
|
monitorProcess: 'Follow Up',
|
||||||
draft: 'Draft',
|
draft: 'Draft',
|
||||||
processNumber: 'Process number',
|
processNumber: 'Process Number',
|
||||||
processType: 'Process type',
|
processType: 'Process Type',
|
||||||
nodeName: 'Node name',
|
nodeName: 'Node Name',
|
||||||
initiator: 'Initiator',
|
initiator: 'Initiator',
|
||||||
receivingTaskTime: 'Receiving task time',
|
receivingTaskTime: 'Receiving Task Time',
|
||||||
currentProcessor: 'Current processor',
|
currentProcessor: 'Current Processor',
|
||||||
finishTime: 'Completion time',
|
finishTime: 'Completion Time',
|
||||||
processState: 'Process state',
|
processState: 'Process State',
|
||||||
processTime: 'Process Time (hours)'
|
processTime: 'Process Time (Hours)'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ module.exports = {
|
|||||||
stageWeAreIn: '所处阶段',
|
stageWeAreIn: '所处阶段',
|
||||||
materialDate: '实施日期',
|
materialDate: '实施日期',
|
||||||
applicableMarket: '适用市场',
|
applicableMarket: '适用市场',
|
||||||
|
competentDepartment: '主管部门',
|
||||||
|
mainControlDepartment: '主控部门',
|
||||||
ccPerson: '抄送人员',
|
ccPerson: '抄送人员',
|
||||||
briefDescription: '法规要求简要描述'
|
briefDescription: '法规要求简要描述'
|
||||||
},
|
},
|
||||||
@@ -52,6 +54,7 @@ module.exports = {
|
|||||||
carTypeFileTemplateDownload: '车型项目文件模板下载',
|
carTypeFileTemplateDownload: '车型项目文件模板下载',
|
||||||
carTypeFileTemplateName: '车型项目文件上传模板',
|
carTypeFileTemplateName: '车型项目文件上传模板',
|
||||||
pleaseGenerate: '请先生成数据',
|
pleaseGenerate: '请先生成数据',
|
||||||
|
pleaseAnewGenerate: '请重新生成数据',
|
||||||
pleaseClickNext: '请点击下一步显示信息',
|
pleaseClickNext: '请点击下一步显示信息',
|
||||||
pleaseSelectDesignEngineer: '请选择设计工程师',
|
pleaseSelectDesignEngineer: '请选择设计工程师',
|
||||||
atLeastSelectOneDesignEngineer: '请至少选择一条数据的设计工程师'
|
atLeastSelectOneDesignEngineer: '请至少选择一条数据的设计工程师'
|
||||||
|
|||||||
+41
-16
@@ -125,6 +125,7 @@ module.exports = {
|
|||||||
confirmWithdraw: '确认撤回?',
|
confirmWithdraw: '确认撤回?',
|
||||||
confirmWithdrawContent: '确认撤回该条数据?',
|
confirmWithdrawContent: '确认撤回该条数据?',
|
||||||
doNotHavePermissionDeleteData: '没有权限删除此数据',
|
doNotHavePermissionDeleteData: '没有权限删除此数据',
|
||||||
|
publishedAndCannotDeleted: '已发布不能删除',
|
||||||
noData: '暂无数据',
|
noData: '暂无数据',
|
||||||
dataLoading: '数据加载中...',
|
dataLoading: '数据加载中...',
|
||||||
confirmDelete: '确定删除?',
|
confirmDelete: '确定删除?',
|
||||||
@@ -247,6 +248,7 @@ module.exports = {
|
|||||||
goHandle: '去处理',
|
goHandle: '去处理',
|
||||||
disableInput: '禁止输入',
|
disableInput: '禁止输入',
|
||||||
fileUploadError: '文件上传错误',
|
fileUploadError: '文件上传错误',
|
||||||
|
importMaxMsg: '导入文件最大{size}MB',
|
||||||
// 标准字段
|
// 标准字段
|
||||||
standardField: {
|
standardField: {
|
||||||
standardEnglishName: '标准英文名称',
|
standardEnglishName: '标准英文名称',
|
||||||
@@ -497,6 +499,7 @@ module.exports = {
|
|||||||
docTool: {
|
docTool: {
|
||||||
// 文档拆分
|
// 文档拆分
|
||||||
split: {
|
split: {
|
||||||
|
textSearch: '文本搜索',
|
||||||
translation: '译文',
|
translation: '译文',
|
||||||
splitText: '拆分已入库文本',
|
splitText: '拆分已入库文本',
|
||||||
importResults: '导入拆分结果',
|
importResults: '导入拆分结果',
|
||||||
@@ -518,7 +521,7 @@ module.exports = {
|
|||||||
gotIt: '知道了',
|
gotIt: '知道了',
|
||||||
formatRequirement: '格式要求',
|
formatRequirement: '格式要求',
|
||||||
formatRequirementContentOne: '1.导入的文档是zip格式',
|
formatRequirementContentOne: '1.导入的文档是zip格式',
|
||||||
formatRequirementContentTwo: '2.图片为jpg、jpeg、png、gif格式',
|
formatRequirementContentTwo: '2.图片为jpg、jpeg、png格式',
|
||||||
formatRequirementContentThree: '3.文档中的图片,在导出excel中以链接的形式展示,点击链接跳转到本地指定的文件',
|
formatRequirementContentThree: '3.文档中的图片,在导出excel中以链接的形式展示,点击链接跳转到本地指定的文件',
|
||||||
formatRequirementContentFour: '4.文档中的表格,在导出excel中以链接的形式展示,点击链接跳转到指定的sheet页面',
|
formatRequirementContentFour: '4.文档中的表格,在导出excel中以链接的形式展示,点击链接跳转到指定的sheet页面',
|
||||||
changePermissions: '更改权限',
|
changePermissions: '更改权限',
|
||||||
@@ -537,7 +540,7 @@ module.exports = {
|
|||||||
gbt: 'GB/T',
|
gbt: 'GB/T',
|
||||||
gso: 'GSO',
|
gso: 'GSO',
|
||||||
batchSetting: '批量设置',
|
batchSetting: '批量设置',
|
||||||
clauseContent: '条文内容',
|
clauseContent: '条款内容',
|
||||||
clauseNo: '条款号',
|
clauseNo: '条款号',
|
||||||
clauseName: '条款名称',
|
clauseName: '条款名称',
|
||||||
selectDirectoryTerms: '请选择添加条款的目录位置',
|
selectDirectoryTerms: '请选择添加条款的目录位置',
|
||||||
@@ -566,29 +569,29 @@ module.exports = {
|
|||||||
newDocumentTextName: '新文档文本名称',
|
newDocumentTextName: '新文档文本名称',
|
||||||
newTextState: '新文本状态',
|
newTextState: '新文本状态',
|
||||||
releaseSituation: '发布情况',
|
releaseSituation: '发布情况',
|
||||||
comparisonResults: '对比结果',
|
comparisonResults: '比对结果',
|
||||||
initiateComparison: '发起对比',
|
initiateComparison: '发起比对',
|
||||||
textStatus: '文本状态',
|
textStatus: '文本状态',
|
||||||
selectedStandard: '所选标准',
|
selectedStandard: '所选标准',
|
||||||
noComparisonDocumentSelected: '未选择对比文档',
|
noComparisonDocumentSelected: '未选择比对文档',
|
||||||
remarkInfo: '备注信息',
|
remarkInfo: '备注信息',
|
||||||
initiateDocumentComparison: '发起文档对比',
|
initiateDocumentComparison: '发起文档比对',
|
||||||
documentComparison: '文档对比',
|
documentComparison: '文档比对',
|
||||||
viewTheComparisonResults: '查看对比结果',
|
viewTheComparisonResults: '查看比对结果',
|
||||||
addFullTextComment: '添加全文评论',
|
addFullTextComment: '添加全文评论',
|
||||||
turnOffAutomaticMatching: '关闭自动匹配',
|
turnOffAutomaticMatching: '关闭自动匹配',
|
||||||
turnOnAutoMatch: '打开自动匹配',
|
turnOnAutoMatch: '打开自动匹配',
|
||||||
comparisonOfArticles: '条款对比评论',
|
comparisonOfArticles: '条款比对评论',
|
||||||
consistentAssessment: '一致',
|
consistentAssessment: '一致',
|
||||||
fullTextComments: '全文评论',
|
fullTextComments: '全文评论',
|
||||||
pleaseSelectTheDataCompared: '请选择需要对比的数据',
|
pleaseSelectTheDataCompared: '请选择需要比对的数据',
|
||||||
viewVarianceAssessment: '查看差异项',
|
viewVarianceAssessment: '查看差异项',
|
||||||
viewConsistentAssessment: '查看一致项',
|
viewConsistentAssessment: '查看一致项',
|
||||||
viewAll: '查看全部',
|
viewAll: '查看全部',
|
||||||
exportComparisonReport: '导出对比报告',
|
exportComparisonReport: '导出比对报告',
|
||||||
comment: '评论',
|
comment: '评论',
|
||||||
comparisonDifferenceComment: '对比差异评论',
|
comparisonDifferenceComment: '比对差异评论',
|
||||||
comparativeComments: '对比评论',
|
comparativeComments: '比对评论',
|
||||||
publishComment: '发表评论',
|
publishComment: '发表评论',
|
||||||
noComment: '暂无评论',
|
noComment: '暂无评论',
|
||||||
replyToComments: '回复评论'
|
replyToComments: '回复评论'
|
||||||
@@ -601,11 +604,11 @@ module.exports = {
|
|||||||
whetherToMakePublic: '是否公开',
|
whetherToMakePublic: '是否公开',
|
||||||
referenceStandard: '涉及标准',
|
referenceStandard: '涉及标准',
|
||||||
comparisonTime: '比对时间',
|
comparisonTime: '比对时间',
|
||||||
onlineComparison: '在线对比',
|
onlineComparison: '在线比对',
|
||||||
standardList: '标准列表',
|
standardList: '标准列表',
|
||||||
comparisonMaintain: '对比维护',
|
comparisonMaintain: '比对维护',
|
||||||
listDetails: '清单详情',
|
listDetails: '清单详情',
|
||||||
comparativeAnalysisResult: '对比分析结果',
|
comparativeAnalysisResult: '比对分析结果',
|
||||||
exitEdit: '退出编辑',
|
exitEdit: '退出编辑',
|
||||||
specialty: '特点',
|
specialty: '特点',
|
||||||
comparisonItem: '比对项',
|
comparisonItem: '比对项',
|
||||||
@@ -777,5 +780,27 @@ module.exports = {
|
|||||||
regulatoryComplianceAssessmentDatabase,
|
regulatoryComplianceAssessmentDatabase,
|
||||||
onlineEditor: {
|
onlineEditor: {
|
||||||
missRequireField: '缺少必填字段'
|
missRequireField: '缺少必填字段'
|
||||||
|
},
|
||||||
|
// 登录
|
||||||
|
login: {
|
||||||
|
systemName: '奇瑞标准法规管理系统',
|
||||||
|
language: '中文',
|
||||||
|
userLogin: '账号登录',
|
||||||
|
account: '账号',
|
||||||
|
password: '密码',
|
||||||
|
code: '验证码',
|
||||||
|
login: '登录',
|
||||||
|
showPassword: '显示密码',
|
||||||
|
hidePassword: '隐藏密码',
|
||||||
|
loginFailMessage: '登录失败',
|
||||||
|
requestFailMessage: '请求出现错误,请稍后再试',
|
||||||
|
checkPhoneMessage: '您的手机号码格式不正确',
|
||||||
|
checkCodeMessage: '您输入的验证码不正确',
|
||||||
|
codeSendFail: '验证码发送失败',
|
||||||
|
welcome: '欢迎',
|
||||||
|
welcomeBack: ',欢迎回来',
|
||||||
|
reLogin: '重新登陆',
|
||||||
|
phone: '手机号',
|
||||||
|
codeSending: '验证码发送中'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,12 @@ export default {
|
|||||||
type: Array,
|
type: Array,
|
||||||
required: false,
|
required: false,
|
||||||
default: () => []
|
default: () => []
|
||||||
|
},
|
||||||
|
// 是否返回区间,只选择一侧,另一侧会返回一个minDate或maxDate
|
||||||
|
returnInterval: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
@@ -112,7 +118,14 @@ export default {
|
|||||||
},
|
},
|
||||||
// 触发change事件
|
// 触发change事件
|
||||||
triggerChange () {
|
triggerChange () {
|
||||||
this.$emit('change', [this.startDate || minDate, this.endDate || maxDate])
|
const startDate = this.startDate || minDate
|
||||||
|
const endDate = this.endDate || maxDate
|
||||||
|
// 是否一侧为空时,返回最大日期或最小日期
|
||||||
|
if (this.returnInterval) {
|
||||||
|
this.$emit('change', [startDate, endDate])
|
||||||
|
} else {
|
||||||
|
this.$emit('change', [this.startDate, this.endDate])
|
||||||
|
}
|
||||||
},
|
},
|
||||||
// 记录最后一次点击的日期
|
// 记录最后一次点击的日期
|
||||||
clickCalendarDate (val) {
|
clickCalendarDate (val) {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
v-on="$listeners"
|
v-on="$listeners"
|
||||||
:row-key="rowKey"
|
:row-key="rowKey"
|
||||||
:bordered="bordered"
|
:bordered="bordered"
|
||||||
:scroll="{x: '100%'}"
|
:scroll="scroll"
|
||||||
:row-class-name="lineCanExpand"
|
:row-class-name="lineCanExpand"
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
:expandedRowKeys.sync="expandedRowKeys"
|
:expandedRowKeys.sync="expandedRowKeys"
|
||||||
@@ -23,6 +23,13 @@
|
|||||||
<div class="table-text">{{ text || text === 0 ? text : global.emptyLine }}</div>
|
<div class="table-text">{{ text || text === 0 ? text : global.emptyLine }}</div>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</template>
|
</template>
|
||||||
|
<!--增加数据字典双语翻译的插槽-->
|
||||||
|
<template slot="dictText" slot-scope="text, record, index, column">
|
||||||
|
<a-tooltip overlay-class-name="tooltip-style">
|
||||||
|
<template slot="title">{{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}</template>
|
||||||
|
<div class="table-text">{{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</template>
|
||||||
<!-- 表格扩展插槽 -->
|
<!-- 表格扩展插槽 -->
|
||||||
<div slot="expandedRowRender" slot-scope="record, index" style="margin: 0">
|
<div slot="expandedRowRender" slot-scope="record, index" style="margin: 0">
|
||||||
<!-- 如果表单会依赖某个字段变化就需要加判断,循环判断extraForm中的表单 -->
|
<!-- 如果表单会依赖某个字段变化就需要加判断,循环判断extraForm中的表单 -->
|
||||||
@@ -189,6 +196,13 @@ export default {
|
|||||||
name: 'JExpandTable',
|
name: 'JExpandTable',
|
||||||
components: { JUpload },
|
components: { JUpload },
|
||||||
props: {
|
props: {
|
||||||
|
scroll: {
|
||||||
|
type: Object,
|
||||||
|
required: false,
|
||||||
|
default: () => {
|
||||||
|
return { x: '100%' }
|
||||||
|
}
|
||||||
|
},
|
||||||
columns: {
|
columns: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: () => {
|
default: () => {
|
||||||
|
|||||||
@@ -101,7 +101,8 @@ export default {
|
|||||||
const oldVal = this.checkedValue.join(',')
|
const oldVal = this.checkedValue.join(',')
|
||||||
if (newVal !== oldVal) {
|
if (newVal !== oldVal) {
|
||||||
if (newVal) {
|
if (newVal) {
|
||||||
this.checkedValue = [...new Set(newVal.split(','))]
|
// 去重、去掉格式不对的
|
||||||
|
this.checkedValue = [...new Set(newVal.split(','))].filter(dateStr => dateStr && /^\d{4}-\d{2}-\d{2}$/.test(dateStr))
|
||||||
} else {
|
} else {
|
||||||
this.checkedValue = []
|
this.checkedValue = []
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -250,7 +250,8 @@ export default {
|
|||||||
{
|
{
|
||||||
dataIndex: 'finishFlag_dictText',
|
dataIndex: 'finishFlag_dictText',
|
||||||
title: this.$t('status'),
|
title: this.$t('status'),
|
||||||
width: 100
|
width: 100,
|
||||||
|
scopedSlots: { customRender: 'dictText' }
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
image: false,
|
image: false,
|
||||||
|
|||||||
@@ -4,18 +4,30 @@
|
|||||||
<div class="table-page-search-wrapper">
|
<div class="table-page-search-wrapper">
|
||||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||||
<a-row :gutter="24" style="margin: 0;">
|
<a-row :gutter="24" style="margin: 0;">
|
||||||
<!--适用零部件-->
|
<!--文本搜索-->
|
||||||
<a-col :md="4" :sm="12">
|
<a-col :md="4" :sm="12">
|
||||||
<a-form-item :label="$t('standardRegulationLibrary.applicableComponents')">
|
<a-form-item :label="$t('docTool.split.textSearch')">
|
||||||
<a-input :placeholder="$t('pleaseEnter') + $t('standardRegulationLibrary.applicableComponents')"
|
<a-input :placeholder="$t('pleaseEnter') + $t('docTool.split.textSearch')"
|
||||||
v-model="queryParam.applicable_components"></a-input>
|
v-model="queryParam.item_content"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<!--涉及系统/部件-->
|
<!--涉及系统/部件-->
|
||||||
<a-col :md="4" :sm="12">
|
<a-col :md="4" :sm="12">
|
||||||
<a-form-item :label="$t('standardRegulationLibrary.involvingSystemsComponents')">
|
<a-form-item :label="$t('standardRegulationLibrary.involvingSystemsComponents')">
|
||||||
<a-input :placeholder="$t('pleaseEnter') + $t('standardRegulationLibrary.involvingSystemsComponents')"
|
<!--<a-input :placeholder="$t('pleaseEnter') + $t('standardRegulationLibrary.involvingSystemsComponents')"-->
|
||||||
v-model="queryParam.keywords"></a-input>
|
<!-- v-model="queryParam.part_name"></a-input>-->
|
||||||
|
<a-tree-select
|
||||||
|
tree-node-filter-prop="title"
|
||||||
|
v-model="queryParam.part_name"
|
||||||
|
:maxTagCount="1"
|
||||||
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||||
|
:tree-data="systemPartList"
|
||||||
|
:replaceFields="{key: 'id', value: 'id', title: 'name', children: 'childPartNameList'}"
|
||||||
|
show-search
|
||||||
|
allowClear
|
||||||
|
:filterTreeNode="filterTreeOption"
|
||||||
|
:placeholder="$t('pleaseEnter') + $t('standardRegulationLibrary.involvingSystemsComponents')"
|
||||||
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<!--适用车型-->
|
<!--适用车型-->
|
||||||
@@ -85,7 +97,7 @@
|
|||||||
:replaceFields="{children: 'children', key: 'id'}">
|
:replaceFields="{children: 'children', key: 'id'}">
|
||||||
<a-icon slot="switcherIcon" type="down" :style="{ fontSize: '12px', color: '#103770' }" />
|
<a-icon slot="switcherIcon" type="down" :style="{ fontSize: '12px', color: '#103770' }" />
|
||||||
<template slot="title" slot-scope="{name, itemName}">
|
<template slot="title" slot-scope="{name, itemName}">
|
||||||
<span :style="name && name.indexOf('.')===-1?'font-weight: 600;':''">{{ `${name} ${itemName || ''}` }}</span>
|
<span :style="name && name.indexOf('.')===-1?'font-weight: 600;':''" :title="`${name} ${itemName || ''}`">{{ `${name} ${itemName || ''}` }}</span>
|
||||||
</template>
|
</template>
|
||||||
</a-tree>
|
</a-tree>
|
||||||
</div>
|
</div>
|
||||||
@@ -111,7 +123,7 @@
|
|||||||
</a-button>
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
<!--条文内容-->
|
<!--条文内容-->
|
||||||
<div class="standard-content">
|
<div class="standard-content" ref="standardContent">
|
||||||
<div class="clause-content-item"
|
<div class="clause-content-item"
|
||||||
v-for="clause in clauseContentList"
|
v-for="clause in clauseContentList"
|
||||||
:key="clause.id"
|
:key="clause.id"
|
||||||
@@ -199,7 +211,12 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getDocSplitEditForm, getStandardInterpretation, previewDocSplit } from '@api/documentToolApi'
|
import {
|
||||||
|
getDocSplitEditForm,
|
||||||
|
getInvolvedSystem,
|
||||||
|
getStandardInterpretation,
|
||||||
|
previewDocSplit
|
||||||
|
} from '@api/documentToolApi'
|
||||||
import { FieldType } from '@/enums/commonEnums'
|
import { FieldType } from '@/enums/commonEnums'
|
||||||
import VueDraggableResizable from 'vue-draggable-resizable'
|
import VueDraggableResizable from 'vue-draggable-resizable'
|
||||||
import { queryDepartTreeList } from '@api/api'
|
import { queryDepartTreeList } from '@api/api'
|
||||||
@@ -221,7 +238,16 @@ export default {
|
|||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
labelCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 6 }
|
||||||
|
},
|
||||||
|
wrapperCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 16 }
|
||||||
|
},
|
||||||
queryParam: {},
|
queryParam: {},
|
||||||
|
systemPartList: [], // 涉及系统部件下拉
|
||||||
categoryTreeList: [], // 组织机构下拉框数据
|
categoryTreeList: [], // 组织机构下拉框数据
|
||||||
showClauseLabel: true, // 是否展示条文标签
|
showClauseLabel: true, // 是否展示条文标签
|
||||||
// 条文标签字段
|
// 条文标签字段
|
||||||
@@ -239,7 +265,18 @@ export default {
|
|||||||
translationContentList: [], // 译文内容的数据
|
translationContentList: [], // 译文内容的数据
|
||||||
clauseLabelInfo: {}, // 条文标签数据
|
clauseLabelInfo: {}, // 条文标签数据
|
||||||
clauseLabelHideField: ['item_content', 'item_title', 'translation'],
|
clauseLabelHideField: ['item_content', 'item_title', 'translation'],
|
||||||
needDictField: [FieldType.USER_SINGLE.value, FieldType.ORGAN_SINGLE.value, FieldType.STANDARD_MORE.value, FieldType.ORGAN_MORE.value, FieldType.OPTION_SINGLE.value, FieldType.OPTION_MORE.value, FieldType.TREE.value],
|
needDictField: [
|
||||||
|
FieldType.USER_SINGLE.value,
|
||||||
|
FieldType.ORGAN_SINGLE.value,
|
||||||
|
FieldType.ORGAN_MORE.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
|
||||||
|
],
|
||||||
queryParams: {},
|
queryParams: {},
|
||||||
isDragging: false, // 是否拖拽中
|
isDragging: false, // 是否拖拽中
|
||||||
standardCatalogueRefX: 280, // 标准目录默认宽度
|
standardCatalogueRefX: 280, // 标准目录默认宽度
|
||||||
@@ -250,6 +287,7 @@ export default {
|
|||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
this.getSysCategoryTree()
|
this.getSysCategoryTree()
|
||||||
|
this.initInvolvedSystem()
|
||||||
// 容器实际剩余宽度 = 右侧内容宽度 - 内容中的间距
|
// 容器实际剩余宽度 = 右侧内容宽度 - 内容中的间距
|
||||||
// const boxWidth = this.$refs.sheetBoxRef.getBoundingClientRect().width - this.$refs.clauseLabelChangeRef.getBoundingClientRect().width - (16 * 4)
|
// const boxWidth = this.$refs.sheetBoxRef.getBoundingClientRect().width - this.$refs.clauseLabelChangeRef.getBoundingClientRect().width - (16 * 4)
|
||||||
// this.sheetContainerRefX = boxWidth - this.standardCatalogueRefX - this.clauseLabelRefX
|
// this.sheetContainerRefX = boxWidth - this.standardCatalogueRefX - this.clauseLabelRefX
|
||||||
@@ -260,7 +298,9 @@ export default {
|
|||||||
this.loading = true
|
this.loading = true
|
||||||
getStandardInterpretation({ standard_id: this.spiltInfo.standardId }).then(res => {
|
getStandardInterpretation({ standard_id: this.spiltInfo.standardId }).then(res => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.standardInterpret = res.result[0] || {}
|
const list = res.result || []
|
||||||
|
// 后端说id是随时间递增的,取最新数据也就是取id最大的数据
|
||||||
|
this.standardInterpret = list.sort((a, b) => b.id - a.id)[0] || {}
|
||||||
this.selectedTreeKeys = []
|
this.selectedTreeKeys = []
|
||||||
this.hightMenuId = null
|
this.hightMenuId = null
|
||||||
this.clauseLabelInfo = this.standardInterpret
|
this.clauseLabelInfo = this.standardInterpret
|
||||||
@@ -275,6 +315,12 @@ export default {
|
|||||||
handleViewFile (ids) {
|
handleViewFile (ids) {
|
||||||
this.$refs.uploadFile.open(ids)
|
this.$refs.uploadFile.open(ids)
|
||||||
},
|
},
|
||||||
|
// 获取涉及系统/部件
|
||||||
|
initInvolvedSystem () {
|
||||||
|
getInvolvedSystem().then(res => {
|
||||||
|
this.systemPartList = res.result.records || res.result || []
|
||||||
|
})
|
||||||
|
},
|
||||||
// 获取组织机构树
|
// 获取组织机构树
|
||||||
getSysCategoryTree () {
|
getSysCategoryTree () {
|
||||||
queryDepartTreeList().then((res) => {
|
queryDepartTreeList().then((res) => {
|
||||||
@@ -298,6 +344,12 @@ export default {
|
|||||||
this.queryParam = {}
|
this.queryParam = {}
|
||||||
this.initDetailInfo()
|
this.initDetailInfo()
|
||||||
},
|
},
|
||||||
|
// 清除选中状态
|
||||||
|
clearSelect () {
|
||||||
|
this.selectedTreeKeys = []
|
||||||
|
this.hightMenuId = null
|
||||||
|
this.clauseLabelInfo = {}
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 拖拽回调
|
* 拖拽回调
|
||||||
* @param min - 拖拽最小宽度
|
* @param min - 拖拽最小宽度
|
||||||
@@ -349,10 +401,15 @@ export default {
|
|||||||
}
|
}
|
||||||
previewDocSplit(params).then(res => {
|
previewDocSplit(params).then(res => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
|
// 清除选中状态
|
||||||
|
this.clearSelect()
|
||||||
const data = res.result || {}
|
const data = res.result || {}
|
||||||
this.treeData = data.sarFileSplitMenuEO || []
|
this.treeData = data.sarFileSplitMenuEO || []
|
||||||
this.spiltInfo = data.documentSplitInfo || {}
|
this.spiltInfo = data.documentSplitInfo || {}
|
||||||
this.clauseContentList = data.documentSplitDetail || []
|
this.clauseContentList = data.documentSplitDetail || []
|
||||||
|
this.$refs.standardContent.scrollTop = 0
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
}
|
}
|
||||||
}).finally(() => {
|
}).finally(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
@@ -782,4 +839,7 @@ export default {
|
|||||||
.disabledSelect {
|
.disabledSelect {
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
.table-page-search-wrapper .ant-form-inline /deep/ .ant-form-item > .ant-form-item-label {
|
||||||
|
min-width: auto;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -57,6 +57,7 @@
|
|||||||
:disabledSourceSearch="!selectStandardCanUpdateTypeField.includes(item.dbFieldName)"
|
:disabledSourceSearch="!selectStandardCanUpdateTypeField.includes(item.dbFieldName)"
|
||||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||||
:exclude-standard-numbers="excludeStandardFields.includes(item.dbFieldName) ? excludeStandardNumbers : null"
|
:exclude-standard-numbers="excludeStandardFields.includes(item.dbFieldName) ? excludeStandardNumbers : null"
|
||||||
|
:is-value-have-name="selectStandardValueNeedNameField.includes(item.dbFieldName)"
|
||||||
v-model="formInline[item.dbFieldName]" />
|
v-model="formInline[item.dbFieldName]" />
|
||||||
<!-- 7, 多选组织机构 -->
|
<!-- 7, 多选组织机构 -->
|
||||||
<j-select-depart v-else-if="item.fieldShowType === FieldType.ORGAN_MORE.value"
|
<j-select-depart v-else-if="item.fieldShowType === FieldType.ORGAN_MORE.value"
|
||||||
@@ -113,6 +114,7 @@
|
|||||||
tree-checkable
|
tree-checkable
|
||||||
treeCheckStrictly
|
treeCheckStrictly
|
||||||
dropdownMatchSelectWidth
|
dropdownMatchSelectWidth
|
||||||
|
:replaceFields="notNeedEnTitleTreeField.includes(item.dbFieldName) ? null : {title: isChinese() ? 'title' : 'enTitle'}"
|
||||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt" />
|
:placeholder="$t('pleaseSelect')+item.dbFieldTxt" />
|
||||||
<!-- 14, 年份选择 -->
|
<!-- 14, 年份选择 -->
|
||||||
<j-date v-else-if="item.fieldShowType === FieldType.YEAR_PICKER.value"
|
<j-date v-else-if="item.fieldShowType === FieldType.YEAR_PICKER.value"
|
||||||
@@ -130,18 +132,27 @@
|
|||||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||||
:tree-data="optionsData[item.dbFieldName]"
|
:tree-data="optionsData[item.dbFieldName]"
|
||||||
:label-in-value="false"
|
:label-in-value="false"
|
||||||
|
:replaceFields="notNeedEnTitleTreeField.includes(item.dbFieldName) ? null : {title: isChinese() ? 'title' : 'enTitle'}"
|
||||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt" />
|
:placeholder="$t('pleaseSelect')+item.dbFieldTxt" />
|
||||||
<!--16、树形弹框选择-->
|
<!--16、树形弹框选择-->
|
||||||
<tree-selection v-else-if="item.fieldShowType === FieldType.TREE_MODAL_SELECT.value || item.fieldShowType === FieldType.TREE_MODAL_SELECT_SEARCH_DIFF.value"
|
<!-- <tree-selection v-else-if="item.fieldShowType === FieldType.TREE_MODAL_SELECT.value || item.fieldShowType === FieldType.TREE_MODAL_SELECT_SEARCH_DIFF.value"-->
|
||||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
<!-- :placeholder="$t('pleaseSelect')+item.dbFieldTxt"-->
|
||||||
v-model="formInline[item.dbFieldName]"
|
<!-- v-model="formInline[item.dbFieldName]"-->
|
||||||
@nameChange="treeSelectNameChange"
|
<!-- @nameChange="treeSelectNameChange"-->
|
||||||
:filedName="item.dbFieldName"
|
<!-- :filedName="item.dbFieldName"-->
|
||||||
type="checkbox"
|
<!-- type="checkbox"-->
|
||||||
:options-href="item.fieldHref"
|
<!-- :options-href="item.fieldHref"-->
|
||||||
:nameStr="formInline[item.dbFieldName + '_dictText']"
|
<!-- :nameStr="formInline[item.dbFieldName + '_dictText']"-->
|
||||||
:dict-id="item.dictId"
|
<!-- :dict-id="item.dictId"-->
|
||||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" />
|
<!-- :disabled="disabled || disabledFieldList.includes(item.dbFieldName)" />-->
|
||||||
|
<tree-data-selection v-else-if="item.fieldShowType === FieldType.TREE_MODAL_SELECT.value || item.fieldShowType === FieldType.TREE_MODAL_SELECT_SEARCH_DIFF.value"
|
||||||
|
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
||||||
|
v-model="formInline[item.dbFieldName]"
|
||||||
|
:fieldName="item.dbFieldName"
|
||||||
|
:nameStr="formInline[item.dbFieldName + '_dictText']"
|
||||||
|
@nameChange="treeDataSelectNameChange"
|
||||||
|
:optionsHref="item.treeFirstHref"
|
||||||
|
:dict-id="item.dictId"/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -173,10 +184,12 @@ import TreeSelection from '../selection/TreeSelection'
|
|||||||
import STreeSelect from '../STreeSelect'
|
import STreeSelect from '../STreeSelect'
|
||||||
import { isHasPermission } from '../../utils/hasPermission'
|
import { isHasPermission } from '../../utils/hasPermission'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
|
import TreeDataSelection from '../selection/TreeDataSelection'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AddForm',
|
name: 'AddForm',
|
||||||
components: {
|
components: {
|
||||||
|
TreeDataSelection,
|
||||||
UserSelection,
|
UserSelection,
|
||||||
JMultipleDatePicker,
|
JMultipleDatePicker,
|
||||||
StandardSelection,
|
StandardSelection,
|
||||||
@@ -295,6 +308,14 @@ export default {
|
|||||||
default: () => {
|
default: () => {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
// 选标准字段需要在value里面加标准名称的字段
|
||||||
|
selectStandardValueNeedNameField: {
|
||||||
|
type: Array,
|
||||||
|
required: false,
|
||||||
|
default: () => {
|
||||||
|
return []
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
@@ -320,7 +341,8 @@ export default {
|
|||||||
dictNotCodes: ['name_code'], // 用到字典的字段不传dictCode的字段
|
dictNotCodes: ['name_code'], // 用到字典的字段不传dictCode的字段
|
||||||
filePerm: { // 上传文件根据权限控制只能查看,没有权限的除了系统管理员外不可见不可下载
|
filePerm: { // 上传文件根据权限控制只能查看,没有权限的除了系统管理员外不可见不可下载
|
||||||
associated_file: 'enterpriseStandard:associatedFile:look' // 关联文件
|
associated_file: 'enterpriseStandard:associatedFile:look' // 关联文件
|
||||||
}
|
},
|
||||||
|
notNeedEnTitleTreeField: ['standard_system'] // 树形不需要enTitle判断的字段,暂时只有结构树不需要
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@@ -361,12 +383,8 @@ export default {
|
|||||||
},
|
},
|
||||||
fileIsDownload () { // 文件是否可下载
|
fileIsDownload () { // 文件是否可下载
|
||||||
if (Object.keys(this.filePerm).includes(this.uploadName)) {
|
if (Object.keys(this.filePerm).includes(this.uploadName)) {
|
||||||
// 系统管理员可下载
|
// 需要特殊判断的字段不可下载
|
||||||
if (this.isSystemAdmin) {
|
return false
|
||||||
return true
|
|
||||||
} else {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// 不是需要特殊判断的字段正常可下载
|
// 不是需要特殊判断的字段正常可下载
|
||||||
return true
|
return true
|
||||||
@@ -577,6 +595,9 @@ export default {
|
|||||||
treeSelectNameChange (value, fieldName) {
|
treeSelectNameChange (value, fieldName) {
|
||||||
this.formInline[fieldName + '_dictText'] = value
|
this.formInline[fieldName + '_dictText'] = value
|
||||||
},
|
},
|
||||||
|
treeDataSelectNameChange (value, fieldName) {
|
||||||
|
this.formInline[fieldName + '_dictText'] = value
|
||||||
|
},
|
||||||
submit () {
|
submit () {
|
||||||
this.$refs.ruleForm.validate(valid => {
|
this.$refs.ruleForm.validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
@@ -628,13 +649,14 @@ export default {
|
|||||||
|
|
||||||
.form-flex-item-half {
|
.form-flex-item-half {
|
||||||
width: calc((100% - 10px) / 2);
|
width: calc((100% - 10px) / 2);
|
||||||
|
margin: 0 2px;
|
||||||
}
|
}
|
||||||
.form-flex-item-half:nth-child(2n+1) {
|
//.form-flex-item-half:nth-child(2n+1) {
|
||||||
margin-right: 5px;
|
// margin-right: 5px;
|
||||||
}
|
//}
|
||||||
.form-flex-item-half:nth-child(2n) {
|
//.form-flex-item-half:nth-child(2n) {
|
||||||
margin-left: 5px;
|
// margin-left: 5px;
|
||||||
}
|
//}
|
||||||
|
|
||||||
.form-flex-item-line {
|
.form-flex-item-line {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
show-search
|
show-search
|
||||||
allowClear
|
allowClear
|
||||||
:filterTreeNode="filterTreeOption"
|
:filterTreeNode="filterTreeOption"
|
||||||
|
:replaceFields="{title: isChinese() ? 'title' : 'enTitle'}"
|
||||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -35,6 +36,7 @@
|
|||||||
show-search
|
show-search
|
||||||
allowClear
|
allowClear
|
||||||
:filterTreeNode="filterTreeOption"
|
:filterTreeNode="filterTreeOption"
|
||||||
|
:replaceFields="{title: isChinese() ? 'title' : 'enTitle'}"
|
||||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -141,9 +143,28 @@
|
|||||||
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||||
:tree-data="optionsData[item.dbFieldName]"
|
:tree-data="optionsData[item.dbFieldName]"
|
||||||
:replaceFields="{key: 'id', value: 'id', title: 'name', children: 'childPartNameList'}"
|
:replaceFields="{key: 'id', value: 'id', title: 'name', children: 'childPartNameList'}"
|
||||||
tree-checkable
|
|
||||||
show-search
|
show-search
|
||||||
allowClear
|
allowClear
|
||||||
|
dropdownMatchSelectWidth
|
||||||
|
:filterTreeNode="filterTreeOption"
|
||||||
|
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</template>
|
||||||
|
<!-- 树形弹框(带出所有子级) -->
|
||||||
|
<template v-if="item.fieldShowType === FieldType.TREE_MODAL_SELECT_SEARCH_CHILD.value">
|
||||||
|
<a-form-item :label="item.dbFieldTxt" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<a-tree-select
|
||||||
|
tree-node-filter-prop="title"
|
||||||
|
v-model="queryParam[item.dbFieldName]"
|
||||||
|
:maxTagCount="1"
|
||||||
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||||
|
:tree-data="optionsData[item.dbFieldName]"
|
||||||
|
tree-checkable
|
||||||
|
treeCheckStrictly
|
||||||
|
show-search
|
||||||
|
allowClear
|
||||||
|
dropdownMatchSelectWidth
|
||||||
:filterTreeNode="filterTreeOption"
|
:filterTreeNode="filterTreeOption"
|
||||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
||||||
/>
|
/>
|
||||||
@@ -171,6 +192,7 @@
|
|||||||
show-search
|
show-search
|
||||||
allowClear
|
allowClear
|
||||||
:filterTreeNode="filterTreeOption"
|
:filterTreeNode="filterTreeOption"
|
||||||
|
:replaceFields="{title: isChinese() ? 'title' : 'enTitle'}"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</template>
|
</template>
|
||||||
@@ -187,6 +209,7 @@
|
|||||||
show-search
|
show-search
|
||||||
allowClear
|
allowClear
|
||||||
:filterTreeNode="filterTreeOption"
|
:filterTreeNode="filterTreeOption"
|
||||||
|
:replaceFields="{title: isChinese() ? 'title' : 'enTitle'}"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</template>
|
</template>
|
||||||
@@ -280,13 +303,31 @@
|
|||||||
<a-tree-select
|
<a-tree-select
|
||||||
tree-node-filter-prop="title"
|
tree-node-filter-prop="title"
|
||||||
v-model="queryParam[item.dbFieldName]"
|
v-model="queryParam[item.dbFieldName]"
|
||||||
:maxTagCount="1"
|
|
||||||
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||||
:tree-data="optionsData[item.dbFieldName]"
|
:tree-data="optionsData[item.dbFieldName]"
|
||||||
:replaceFields="{key: 'id', value: 'id', title: 'name', children: 'childPartNameList'}"
|
:replaceFields="{key: 'id', value: 'id', title: 'name', children: 'childPartNameList'}"
|
||||||
tree-checkable
|
|
||||||
show-search
|
show-search
|
||||||
allowClear
|
allowClear
|
||||||
|
dropdownMatchSelectWidth
|
||||||
|
:filterTreeNode="filterTreeOption"
|
||||||
|
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</template>
|
||||||
|
<!-- 树形弹框(带出所有子级) -->
|
||||||
|
<template v-if="item.fieldShowType === FieldType.TREE_MODAL_SELECT_SEARCH_CHILD.value">
|
||||||
|
<a-form-item :label="item.dbFieldTxt" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<a-tree-select
|
||||||
|
tree-node-filter-prop="title"
|
||||||
|
v-model="queryParam[item.dbFieldName]"
|
||||||
|
:maxTagCount="1"
|
||||||
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||||
|
:tree-data="optionsData[item.dbFieldName]"
|
||||||
|
tree-checkable
|
||||||
|
treeCheckStrictly
|
||||||
|
show-search
|
||||||
|
allowClear
|
||||||
|
dropdownMatchSelectWidth
|
||||||
:filterTreeNode="filterTreeOption"
|
:filterTreeNode="filterTreeOption"
|
||||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
||||||
/>
|
/>
|
||||||
@@ -432,6 +473,13 @@ export default {
|
|||||||
if (standardStateIndex !== -1) {
|
if (standardStateIndex !== -1) {
|
||||||
this.searchList[standardStateIndex].fieldShowType = FieldType.OPTION_MORE.value
|
this.searchList[standardStateIndex].fieldShowType = FieldType.OPTION_MORE.value
|
||||||
}
|
}
|
||||||
|
// 把标准名称放到第二个
|
||||||
|
const standardNameIndex = this.searchList.findIndex(item => item.dbFieldName === 'standard_name')
|
||||||
|
const standardName = this.searchList.find(item => item.dbFieldName === 'standard_name')
|
||||||
|
if (standardNameIndex !== -1) {
|
||||||
|
this.searchList.splice(standardNameIndex, 1)
|
||||||
|
this.searchList.splice(1, 0, standardName)
|
||||||
|
}
|
||||||
this.getOptionsData() // 获取下拉数据
|
this.getOptionsData() // 获取下拉数据
|
||||||
console.log(this.searchList)
|
console.log(this.searchList)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ export default {
|
|||||||
/* 分页参数 */
|
/* 分页参数 */
|
||||||
ipagination: {
|
ipagination: {
|
||||||
current: 1,
|
current: 1,
|
||||||
pageSize: 50,
|
pageSize: 10,
|
||||||
pageSizeOptions: ['10', '30', '50', '100', '150', '200'],
|
pageSizeOptions: ['10', '30', '50', '100', '150', '200'],
|
||||||
showTotal: (total, range) => {
|
showTotal: (total, range) => {
|
||||||
return range[0] + '-' + range[1] + ' ' + this.$t('total') + ' ' + total + ' ' + this.$t('strip')
|
return range[0] + '-' + range[1] + ' ' + this.$t('total') + ' ' + total + ' ' + this.$t('strip')
|
||||||
|
|||||||
@@ -20,12 +20,13 @@
|
|||||||
v-bind="$attrs"
|
v-bind="$attrs"
|
||||||
show-search
|
show-search
|
||||||
:filter-option="filterOption"
|
:filter-option="filterOption"
|
||||||
|
@dropdownVisibleChange="dropdownVisibleChange"
|
||||||
@change="handleInput"
|
@change="handleInput"
|
||||||
>
|
>
|
||||||
<a-select-option :value="undefined">请选择</a-select-option>
|
<a-select-option :value="undefined">{{ $t('pleaseSelect') }}</a-select-option>
|
||||||
<a-select-option v-for="(item, key) in dictOptions" :key="key" :value="item.value" :disabled="item.disabled || false">
|
<a-select-option v-for="(item, key) in dictOptions" :key="key" :value="item.value" :disabled="item.disabled || false">
|
||||||
<span style="display: inline-block;width: 100%" :title=" item.text || item.label ">
|
<span :title=" $i18n.locale === EN ? item.enText : (item.text || item.label) ">
|
||||||
{{ item.text || item.label }}
|
{{ $i18n.locale === EN ? item.enText : (item.text || item.label) }}
|
||||||
</span>
|
</span>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -56,6 +57,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
EN: 'en-us',
|
||||||
dictOptions: [],
|
dictOptions: [],
|
||||||
tagType: ''
|
tagType: ''
|
||||||
}
|
}
|
||||||
@@ -105,6 +107,7 @@ export default {
|
|||||||
// 优先从缓存中读取字典配置
|
// 优先从缓存中读取字典配置
|
||||||
if (getDictItemsFromCache(this.dictCode)) {
|
if (getDictItemsFromCache(this.dictCode)) {
|
||||||
this.dictOptions = getDictItemsFromCache(this.dictCode)
|
this.dictOptions = getDictItemsFromCache(this.dictCode)
|
||||||
|
console.log('-----------缓存获取', this.dictCode, this.dictOptions)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,6 +115,7 @@ export default {
|
|||||||
ajaxGetDictItems(this.dictCode, null).then((res) => {
|
ajaxGetDictItems(this.dictCode, null).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.dictOptions = res.result
|
this.dictOptions = res.result
|
||||||
|
console.log('-----------接口获取', this.dictCode, this.dictOptions)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -123,9 +127,15 @@ export default {
|
|||||||
val = e
|
val = e
|
||||||
}
|
}
|
||||||
console.log(val)
|
console.log(val)
|
||||||
|
// 返回名字
|
||||||
if (this.$listeners.nameChange) {
|
if (this.$listeners.nameChange) {
|
||||||
this.$emit('nameChange', this.getDictLabelByValue(val))
|
this.$emit('nameChange', this.getDictLabelByValue(val))
|
||||||
}
|
}
|
||||||
|
// 返回选中字典对象
|
||||||
|
if (this.$listeners.dictChange) {
|
||||||
|
const dictItem = this.dictOptions.find(item => item.value === val)
|
||||||
|
this.$emit('dictChange', JSON.parse(JSON.stringify(dictItem || null)))
|
||||||
|
}
|
||||||
this.$emit('change', val)
|
this.$emit('change', val)
|
||||||
// 解决数据规则,选择自定义SQL 规则值无法输入空格
|
// 解决数据规则,选择自定义SQL 规则值无法输入空格
|
||||||
this.$emit('input', val)
|
this.$emit('input', val)
|
||||||
@@ -140,6 +150,9 @@ export default {
|
|||||||
},
|
},
|
||||||
getCurrentDictOptions () {
|
getCurrentDictOptions () {
|
||||||
return this.dictOptions
|
return this.dictOptions
|
||||||
|
},
|
||||||
|
dropdownVisibleChange (open) {
|
||||||
|
this.$emit('dropdownVisibleChange', open)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
model: {
|
model: {
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
:class="(openSelectedAll && arrayValue[0] === selectedAllValue) ? 'multi-select-tag-check-all' : ''"
|
:class="(openSelectedAll && arrayValue[0] === selectedAllValue) ? 'multi-select-tag-check-all' : ''"
|
||||||
v-bind="$attrs">
|
v-bind="$attrs">
|
||||||
<a-select-option :key="-1" :value="selectedAllValue" v-if="openSelectedAll && dictOptions.length > 0">{{ $t('checkedAll') }}</a-select-option>
|
<a-select-option :key="-1" :value="selectedAllValue" v-if="openSelectedAll && dictOptions.length > 0">{{ $t('checkedAll') }}</a-select-option>
|
||||||
<a-select-option v-for="(item, key) in dictOptions" :key="key" :value="item.value">{{ item.text || item.label }}</a-select-option>
|
<a-select-option v-for="(item, key) in dictOptions" :key="key" :value="item.value">{{ $i18n.locale === EN ? item.enText : (item.text || item.label) }}</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
@@ -61,6 +61,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
EN: 'en-us',
|
||||||
// 全选的value
|
// 全选的value
|
||||||
selectedAllValue,
|
selectedAllValue,
|
||||||
dictOptions: [],
|
dictOptions: [],
|
||||||
@@ -140,20 +141,22 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.arrayValue = selectedValue
|
this.arrayValue = selectedValue
|
||||||
|
let list = selectedValue
|
||||||
// 开启全选时,不把全选的value进行返回
|
// 开启全选时,不把全选的value进行返回
|
||||||
if (this.openSelectedAll) {
|
if (this.openSelectedAll) {
|
||||||
const list = selectedValue.filter(item => item !== selectedAllValue)
|
list = selectedValue.filter(item => item !== selectedAllValue)
|
||||||
if (this.$listeners.nameChange) {
|
|
||||||
const labelList = list.map(val => this.getDictLabelByValue(val))
|
|
||||||
this.$emit('nameChange', labelList.join(this.spliter))
|
|
||||||
}
|
|
||||||
this.$emit('change', list.join(this.spliter))
|
|
||||||
} else {
|
|
||||||
if (this.$listeners.nameChange) {
|
|
||||||
this.$emit('nameChange', selectedValue.map(val => this.getDictLabelByValue(val)).join(this.spliter))
|
|
||||||
}
|
|
||||||
this.$emit('change', selectedValue.join(this.spliter))
|
|
||||||
}
|
}
|
||||||
|
// 返回名字
|
||||||
|
if (this.$listeners.nameChange) {
|
||||||
|
const labelList = list.map(val => this.getDictLabelByValue(val))
|
||||||
|
this.$emit('nameChange', labelList.join(this.spliter))
|
||||||
|
}
|
||||||
|
// 返回选中字典对象列表
|
||||||
|
if (this.$listeners.dictChange) {
|
||||||
|
const dictList = list.map(val => this.dictOptions.find(item => item.value === val))
|
||||||
|
this.$emit('dictChange', JSON.parse(JSON.stringify(dictList)))
|
||||||
|
}
|
||||||
|
this.$emit('change', list.join(this.spliter))
|
||||||
},
|
},
|
||||||
// 通过val获取字典项
|
// 通过val获取字典项
|
||||||
getDictLabelByValue (val) {
|
getDictLabelByValue (val) {
|
||||||
|
|||||||
@@ -22,7 +22,13 @@
|
|||||||
<div class="table-text">{{ text || text === 0 ? text : global.emptyLine }}</div>
|
<div class="table-text">{{ text || text === 0 ? text : global.emptyLine }}</div>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</template>
|
</template>
|
||||||
|
<!--增加数据字典双语翻译的插槽-->
|
||||||
|
<template slot="dictText" slot-scope="text, record, index, column">
|
||||||
|
<a-tooltip overlay-class-name="tooltip-style">
|
||||||
|
<template slot="title">{{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}</template>
|
||||||
|
<div class="table-text">{{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</template>
|
||||||
<!-- 操作栏 -->
|
<!-- 操作栏 -->
|
||||||
<template slot="action" slot-scope="text, record, index">
|
<template slot="action" slot-scope="text, record, index">
|
||||||
<slot name="action" v-bind="{text, record, index}">
|
<slot name="action" v-bind="{text, record, index}">
|
||||||
|
|||||||
@@ -375,7 +375,7 @@ export default {
|
|||||||
if (!info.file.status && this.uploadGoOn === false) {
|
if (!info.file.status && this.uploadGoOn === false) {
|
||||||
info.fileList.pop()
|
info.fileList.pop()
|
||||||
}
|
}
|
||||||
let fileList = info.fileList
|
let fileList = info.fileList.filter(item => item.uploadGoOn)
|
||||||
if (info.file.status === 'done') {
|
if (info.file.status === 'done') {
|
||||||
if (this.number > 0) {
|
if (this.number > 0) {
|
||||||
fileList = fileList.slice(-this.number)
|
fileList = fileList.slice(-this.number)
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
// update-begin-author:sunjianlei date:20200120 for: 动态更改页面标题
|
// update-begin-author:sunjianlei date:20200120 for: 动态更改页面标题
|
||||||
changeTitle (title) {
|
changeTitle (title) {
|
||||||
const projectTitle = '奇瑞法规智库'
|
const projectTitle = '奇瑞标准法规管理系统'
|
||||||
// 首页特殊处理
|
// 首页特殊处理
|
||||||
if (this.$route.path === indexKey) {
|
if (this.$route.path === indexKey) {
|
||||||
document.title = projectTitle
|
document.title = projectTitle
|
||||||
|
|||||||
@@ -13,7 +13,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="illustration" v-if="!mobile">
|
<div class="illustration" v-if="!mobile">
|
||||||
<img src="@/assets/home.png" alt="">
|
<div class="illustration-img"><img src="@/assets/image/loginLogo.png" alt=""></div>
|
||||||
|
<p class="illustration-title">{{$t('login.systemName')}}</p>
|
||||||
</div>
|
</div>
|
||||||
<route-view></route-view>
|
<route-view></route-view>
|
||||||
</div>
|
</div>
|
||||||
@@ -124,15 +125,37 @@ function isMobile () {
|
|||||||
|
|
||||||
.illustration{
|
.illustration{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
max-width: 50%;
|
left: 12vw;
|
||||||
|
top: 20vh;
|
||||||
|
max-width: 40%;
|
||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
height: 100%;
|
|
||||||
min-width: 400px;
|
min-width: 400px;
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
.illustration-img {
|
||||||
align-items: center;
|
margin-bottom: 40px;
|
||||||
img{
|
}
|
||||||
max-width: 70%;
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.illustration-title {
|
||||||
|
font-family: PingFang SC, PingFang SC, sans-serif;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 40px;
|
||||||
|
color: #333333;
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media screen and (max-width: 1366px) {
|
||||||
|
.illustration{
|
||||||
|
top: 15vh;
|
||||||
|
|
||||||
|
.illustration-img {
|
||||||
|
margin-bottom: 32px;
|
||||||
|
}
|
||||||
|
.illustration-title {
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-layout-sider
|
<a-layout-sider
|
||||||
|
:collapsedWidth="64"
|
||||||
:class="['sider', isDesktop() ? null : 'shadow', theme, fixSiderbar ? 'ant-fixed-sidemenu' : null ]"
|
:class="['sider', isDesktop() ? null : 'shadow', theme, fixSiderbar ? 'ant-fixed-sidemenu' : null ]"
|
||||||
width="208px"
|
width="208px"
|
||||||
:collapsible="collapsible"
|
:collapsible="collapsible"
|
||||||
@@ -165,6 +166,17 @@ export default {
|
|||||||
<!-- update_begin author:sunjianlei date:20190530 for: 选中首页的时候不显示背景颜色 -->
|
<!-- update_begin author:sunjianlei date:20190530 for: 选中首页的时候不显示背景颜色 -->
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
.ant-menu.ant-menu-root {
|
.ant-menu.ant-menu-root {
|
||||||
|
&:not(.ant-menu-horizontal) .ant-menu-item-selected {
|
||||||
|
background-color: rgba(0, 100, 250, 0.08);
|
||||||
|
}
|
||||||
|
&.ant-menu-inline-collapsed {
|
||||||
|
width: 64px;
|
||||||
|
& > .ant-menu-item,
|
||||||
|
& > .ant-menu-submenu > .ant-menu-submenu-title {
|
||||||
|
padding: 0 24px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
& > .ant-menu-item:first-child {
|
& > .ant-menu-item:first-child {
|
||||||
//background-color: transparent;
|
//background-color: transparent;
|
||||||
|
|
||||||
|
|||||||
@@ -285,9 +285,9 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.trigger {
|
.trigger {
|
||||||
font-size: 22px;
|
font-size: 12px;
|
||||||
line-height: 42px;
|
//line-height: 42px;
|
||||||
padding: 0 18px;
|
padding: 22px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: color 300ms, background 300ms;
|
transition: color 300ms, background 300ms;
|
||||||
|
|
||||||
@@ -343,7 +343,7 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
&.ant-header-side-closed {
|
&.ant-header-side-closed {
|
||||||
width: calc(100% - 80px)
|
width: calc(100% - 56px)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,6 +90,14 @@
|
|||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!--增加数据字典双语翻译的插槽-->
|
||||||
|
<template slot="dictText" slot-scope="text, record, index, column">
|
||||||
|
<a-tooltip overlay-class-name="tooltip-style">
|
||||||
|
<template slot="title">{{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}</template>
|
||||||
|
<div class="table-text">{{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</template>
|
||||||
|
|
||||||
<!-- 清单编号/清单名称 -->
|
<!-- 清单编号/清单名称 -->
|
||||||
<template v-slot:toDetail="text, record">
|
<template v-slot:toDetail="text, record">
|
||||||
<a-tooltip overlay-class-name="tooltip-style">
|
<a-tooltip overlay-class-name="tooltip-style">
|
||||||
@@ -198,7 +206,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'country_dictText',
|
dataIndex: 'country_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 清单编号
|
{ // 清单编号
|
||||||
title: this.$t('standardRegulationLibrary.marketRegulationsList.listNumber'),
|
title: this.$t('standardRegulationLibrary.marketRegulationsList.listNumber'),
|
||||||
@@ -219,7 +227,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'drivePosition_dictText',
|
dataIndex: 'drivePosition_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 清单版本
|
{ // 清单版本
|
||||||
title: this.$t('standardRegulationLibrary.marketRegulationsList.listVersion'),
|
title: this.$t('standardRegulationLibrary.marketRegulationsList.listVersion'),
|
||||||
@@ -247,7 +255,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'manifestStatus_dictText',
|
dataIndex: 'manifestStatus_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
dataList: []
|
dataList: []
|
||||||
|
|||||||
@@ -11,8 +11,9 @@
|
|||||||
|
|
||||||
<a-icon v-if="(nameStr || value) && !disabled" slot="suffix" class="close-icon" type="close-circle" theme="filled" @click="clearInput" />
|
<a-icon v-if="(nameStr || value) && !disabled" slot="suffix" class="close-icon" type="close-circle" theme="filled" @click="clearInput" />
|
||||||
</a-input>
|
</a-input>
|
||||||
<a-button v-if="!disabled" type="primary" class="button-box" @click="standardClick">
|
<a-button v-if="!disabled" type="primary" class="button-box" :title="$t('standardSelect.standardSelection')" @click="standardClick">
|
||||||
{{ $t('standardSelect.standardSelection') }}
|
<span v-if="isSmall && $i18n.locale === EN" type="select">{{$t('standardSelect.standardSelection').charAt(0)}}</span>
|
||||||
|
<span v-else>{{ $t('standardSelect.standardSelection') }}</span>
|
||||||
</a-button>
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
<standard-selection-modal ref="standardSelectionModal"
|
<standard-selection-modal ref="standardSelectionModal"
|
||||||
@@ -61,6 +62,18 @@ export default {
|
|||||||
default: null
|
default: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
mounted () {
|
||||||
|
const offsetWidth = document.getElementsByClassName('selection-wrapper')[0].offsetWidth
|
||||||
|
if (offsetWidth >= 0 && offsetWidth <= 300) {
|
||||||
|
this.isSmall = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
EN: 'en-us',
|
||||||
|
isSmall: false
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 点击选择标准按钮
|
// 点击选择标准按钮
|
||||||
standardClick () {
|
standardClick () {
|
||||||
@@ -134,4 +147,15 @@ export default {
|
|||||||
.close-icon:hover {
|
.close-icon:hover {
|
||||||
color: rgba(0, 0, 0, 0.45);
|
color: rgba(0, 0, 0, 0.45);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//.small-btn {
|
||||||
|
// max-width: 60px;
|
||||||
|
// span {
|
||||||
|
// display: inline-block;
|
||||||
|
// width: 40px;
|
||||||
|
// overflow-x: hidden;
|
||||||
|
// text-overflow: ellipsis;
|
||||||
|
// white-space: nowrap;
|
||||||
|
// }
|
||||||
|
//}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<div class="table-page-search-wrapper">
|
<div class="table-page-search-wrapper">
|
||||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col :sm="6">
|
<a-col :sm="6" v-show="!splitSearch">
|
||||||
<a-form-item :label="$t('standardSelect.source')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item :label="$t('standardSelect.source')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<j-dict-select-tag style="width: 100%" v-model="queryParam.source"
|
<j-dict-select-tag style="width: 100%" v-model="queryParam.source"
|
||||||
:disabled="disabledSourceSearch"
|
:disabled="disabledSourceSearch"
|
||||||
@@ -22,6 +22,24 @@
|
|||||||
@change="handleTypeChange" />
|
@change="handleTypeChange" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
<!--标准结构树-->
|
||||||
|
<a-col :md="8" :sm="12" v-if="splitSearch">
|
||||||
|
<a-form-item :label="$t('docTool.comparison.standardStructureTree')">
|
||||||
|
<a-tree-select
|
||||||
|
tree-node-filter-prop="title"
|
||||||
|
v-model="queryParam.standardSystem"
|
||||||
|
:maxTagCount="1"
|
||||||
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||||
|
:tree-data="standardStructureTree"
|
||||||
|
tree-checkable
|
||||||
|
show-search
|
||||||
|
allowClear
|
||||||
|
tree-check-strictly
|
||||||
|
:filterTreeNode="filterTreeOption"
|
||||||
|
:placeholder="$t('pleaseSelect') + $t('docTool.comparison.standardStructureTree')"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
<a-col :sm="8">
|
<a-col :sm="8">
|
||||||
<a-form-item :label="$t('standardSelect.standardNumOrName')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item :label="$t('standardSelect.standardNumOrName')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<a-input :placeholder="$t('pleaseEnter')+$t('standardSelect.standardNumOrName')"
|
<a-input :placeholder="$t('pleaseEnter')+$t('standardSelect.standardNumOrName')"
|
||||||
@@ -38,7 +56,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<a-table
|
<a-table
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
:rowKey="record => {return record.standardNumber + '|' + record.standardName}"
|
:rowKey="record => {return isValueHaveName ? record.standardNumber + '《' + record.standardName + '》' : record.standardNumber}"
|
||||||
:scroll="{x: 900}"
|
:scroll="{x: 900}"
|
||||||
:data-source="dataList"
|
:data-source="dataList"
|
||||||
:pagination="ipagination"
|
:pagination="ipagination"
|
||||||
@@ -64,8 +82,20 @@
|
|||||||
<!-- 标准状态 -->
|
<!-- 标准状态 -->
|
||||||
<template slot="standardState" slot-scope="text, record">
|
<template slot="standardState" slot-scope="text, record">
|
||||||
<a-tooltip overlay-class-name="tooltip-style">
|
<a-tooltip overlay-class-name="tooltip-style">
|
||||||
<template slot="title">{{ record.source === '3' ? (record.esStandardState_dictText || global.emptyLine) : (record.standardState_dictText || global.emptyLine) }}</template>
|
<template slot="title">
|
||||||
<div class="table-text">{{ record.source === '3' ? (record.esStandardState_dictText || global.emptyLine) : (record.standardState_dictText || global.emptyLine) }}</div>
|
{{
|
||||||
|
record.source === '3' ?
|
||||||
|
(isChinese() ? (record.esStandardState_dictText || global.emptyLine) : (record.esStandardState_dictTextEn || global.emptyLine)) :
|
||||||
|
(isChinese() ? (record.standardState_dictText || global.emptyLine) : (record.standardState_dictTextEn || global.emptyLine))
|
||||||
|
}}
|
||||||
|
</template>
|
||||||
|
<div class="table-text">
|
||||||
|
{{
|
||||||
|
record.source === '3' ?
|
||||||
|
(isChinese() ? (record.esStandardState_dictText || global.emptyLine) : (record.esStandardState_dictTextEn || global.emptyLine)) :
|
||||||
|
(isChinese() ? (record.standardState_dictText || global.emptyLine) : (record.standardState_dictTextEn || global.emptyLine))
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -83,6 +113,7 @@
|
|||||||
import { ajaxGetDictItems, getStandardList } from '@/api/api'
|
import { ajaxGetDictItems, getStandardList } from '@/api/api'
|
||||||
import JDictSelectTag from '../dict/JDictSelectTag'
|
import JDictSelectTag from '../dict/JDictSelectTag'
|
||||||
import { StandardSource } from '../../enums/commonEnums'
|
import { StandardSource } from '../../enums/commonEnums'
|
||||||
|
import { getForeignStandardTree } from '@api/standardRegulationLibraryApi'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'StandardSelectionModal',
|
name: 'StandardSelectionModal',
|
||||||
@@ -127,6 +158,18 @@ export default {
|
|||||||
default: () => {
|
default: () => {
|
||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
// 是否拆分的搜索(来源换成外部标准结构树)
|
||||||
|
splitSearch: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
// 是否value要有标准名称
|
||||||
|
isValueHaveName: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
@@ -189,7 +232,15 @@ export default {
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
dataList: [],
|
dataList: [],
|
||||||
sourceOptions: []
|
sourceOptions: [],
|
||||||
|
// 标准结构树
|
||||||
|
standardStructureTree: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
// 拆分的需要加载标准结构树
|
||||||
|
if (this.splitSearch) {
|
||||||
|
this.loadStandardStructureTree()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -210,6 +261,34 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
// 加载标准结构树
|
||||||
|
loadStandardStructureTree () {
|
||||||
|
// option 不传显示我的收藏,1不显示我的收藏, 2只能选二级中国及中国下三级,和欧盟EU
|
||||||
|
getForeignStandardTree({ option: 1 }).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.standardStructureTree = res.result || []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// tree-select搜索
|
||||||
|
filterTreeOption (input, option) {
|
||||||
|
const text = option.componentOptions.propsData.title || option.componentOptions.propsData.label
|
||||||
|
return text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
|
},
|
||||||
|
// 获取树结构没有被禁用的value值
|
||||||
|
getValuesWhereNotDisabled (tree = []) {
|
||||||
|
const values = []
|
||||||
|
function traverse (node) {
|
||||||
|
if (!node.disabled) { // 只处理 disabled 不为 true 的节点
|
||||||
|
values.push(node.value)
|
||||||
|
}
|
||||||
|
if (node.children && node.children.length > 0) {
|
||||||
|
node.children.forEach(child => traverse(child))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tree.forEach(node => traverse(node))
|
||||||
|
return values
|
||||||
|
},
|
||||||
// 获取表格数据
|
// 获取表格数据
|
||||||
replacePage (arg) {
|
replacePage (arg) {
|
||||||
if (arg === 1) {
|
if (arg === 1) {
|
||||||
@@ -222,6 +301,10 @@ export default {
|
|||||||
pageSize: this.ipagination.pageSize,
|
pageSize: this.ipagination.pageSize,
|
||||||
excludeStandardNumbers: this.excludeStandardNumbers
|
excludeStandardNumbers: this.excludeStandardNumbers
|
||||||
}
|
}
|
||||||
|
// 标准结构树
|
||||||
|
if (Array.isArray(query.standardSystem)) {
|
||||||
|
query.standardSystem = query.standardSystem.map(item => item.value).join(',')
|
||||||
|
}
|
||||||
// 清空在可选范围内进行查询
|
// 清空在可选范围内进行查询
|
||||||
if (!query.source && this.canSelectedSource.length < 3) {
|
if (!query.source && this.canSelectedSource.length < 3) {
|
||||||
query.source = this.canSelectedSource.join(',')
|
query.source = this.canSelectedSource.join(',')
|
||||||
@@ -259,21 +342,43 @@ export default {
|
|||||||
if (this.type === 'checkbox') {
|
if (this.type === 'checkbox') {
|
||||||
if (selectedRowKeys.length > this.selectedRowList.length) {
|
if (selectedRowKeys.length > this.selectedRowList.length) {
|
||||||
// 说明是增加了数据
|
// 说明是增加了数据
|
||||||
for (const rowIndex in selectedRows) {
|
if (this.isValueHaveName) {
|
||||||
if (!this.selectedRowList.find(item => (item.standardNumber + '|' + item.standardName) === (selectedRows[rowIndex].standardNumber + '|' + selectedRows[rowIndex].standardName))) {
|
// value里面要带标准名称
|
||||||
// 不存在,追加
|
for (const rowIndex in selectedRows) {
|
||||||
this.selectedRowList.push(selectedRows[rowIndex])
|
if (!this.selectedRowList.find(item => (item.standardNumber + '《' + item.standardName + '》') === (selectedRows[rowIndex].standardNumber + '《' + selectedRows[rowIndex].standardName + '》'))) {
|
||||||
|
// 不存在,追加
|
||||||
|
this.selectedRowList.push(selectedRows[rowIndex])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// value不带标准名称
|
||||||
|
for (const rowIndex in selectedRows) {
|
||||||
|
if (!this.selectedRowList.find(item => item.standardNumber === selectedRows[rowIndex].standardNumber)) {
|
||||||
|
// 不存在,追加
|
||||||
|
this.selectedRowList.push(selectedRows[rowIndex])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 说明是删除了数据
|
// 说明是删除了数据
|
||||||
if (selectedRowKeys && selectedRowKeys.length > 0) {
|
if (selectedRowKeys && selectedRowKeys.length > 0) {
|
||||||
// 没有选中数据,说明这一页没有选中数据了
|
// 没有选中数据,说明这一页没有选中数据了
|
||||||
for (let i = 0; i < this.selectedRowList.length; i++) {
|
if (this.isValueHaveName) {
|
||||||
if (!selectedRowKeys.find(item => item === this.selectedRowList[i].standardNumber + '|' + this.selectedRowList[i].standardName)) {
|
// value里面要带标准名称
|
||||||
// 表格选中中没有找到这一条数据,说明已经被删了
|
for (let i = 0; i < this.selectedRowList.length; i++) {
|
||||||
this.selectedRowList.splice(i, 1)
|
if (!selectedRowKeys.find(item => item === this.selectedRowList[i].standardNumber + '《' + this.selectedRowList[i].standardName + '》')) {
|
||||||
i--
|
// 表格选中中没有找到这一条数据,说明已经被删了
|
||||||
|
this.selectedRowList.splice(i, 1)
|
||||||
|
i--
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (let i = 0; i < this.selectedRowList.length; i++) {
|
||||||
|
if (!selectedRowKeys.find(item => item === this.selectedRowList[i].standardNumber)) {
|
||||||
|
// 表格选中中没有找到这一条数据,说明已经被删了
|
||||||
|
this.selectedRowList.splice(i, 1)
|
||||||
|
i--
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -0,0 +1,531 @@
|
|||||||
|
<template>
|
||||||
|
<j-modal
|
||||||
|
:title="$t('userSelect.select')"
|
||||||
|
:width="width"
|
||||||
|
:visible="visible"
|
||||||
|
switchFullscreen
|
||||||
|
:maskClosable="false"
|
||||||
|
:confirmLoading="confirmLoading"
|
||||||
|
@ok="handleOk"
|
||||||
|
@cancel="handleCancel">
|
||||||
|
|
||||||
|
<div class="modal-content">
|
||||||
|
<a-spin :spinning="topLoading">
|
||||||
|
<a-input-search style="margin-bottom: 1px" :placeholder="$t('pleaseEnter') + $t('treeSelection.primaryNodeName')" @search="onSearch" />
|
||||||
|
<a-tree
|
||||||
|
ref="tree"
|
||||||
|
:checkable="checkable"
|
||||||
|
:checkStrictly="true"
|
||||||
|
:replaceFields="replaceFields"
|
||||||
|
:class="treeScreenClass"
|
||||||
|
:treeData="treeData"
|
||||||
|
:autoExpandParent="autoExpandParent"
|
||||||
|
@check="onCheck"
|
||||||
|
@select="onSelect"
|
||||||
|
@expand="onExpand"
|
||||||
|
@load="onLoad"
|
||||||
|
:loadData="loadData"
|
||||||
|
:expandedKeys="expandedKeys"
|
||||||
|
:checkedKeys="checkedKeys"
|
||||||
|
:loadedKeys="loadedKeys"
|
||||||
|
:selectedKeys.sync="selectedKeys">
|
||||||
|
|
||||||
|
<template slot="title" slot-scope="{dataRef}">
|
||||||
|
<span v-if="searchValue && dataRef[replaceFields.title].indexOf(searchValue) > -1">
|
||||||
|
<span style="color: #f50">{{ dataRef[replaceFields.title] }}</span>
|
||||||
|
</span>
|
||||||
|
<span v-else>{{ dataRef[replaceFields.title] }}</span>
|
||||||
|
</template>
|
||||||
|
</a-tree>
|
||||||
|
</a-spin>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p class="modal-content-title">{{ $t('treeSelection.selectedData') }}</p>
|
||||||
|
<a-spin :spinning="bottomLoading">
|
||||||
|
<div v-if="dataSourceRight && dataSourceRight.length > 0" class="name-content">
|
||||||
|
<div v-for="(item, index) in dataSourceRight" :key="item[replaceFields.key]" class="name-div">
|
||||||
|
{{ item[replaceFields.title] }}
|
||||||
|
<a-icon type="close" @click="handleDelete(item, index)" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a-empty v-else />
|
||||||
|
</a-spin>
|
||||||
|
|
||||||
|
<!--底部父子关联操作和确认取消按钮-->
|
||||||
|
<template slot="footer" v-if="treeOpera && checkable">
|
||||||
|
<div class="drawer-bootom-button">
|
||||||
|
<a-dropdown style="float: left" :trigger="['click']" placement="topCenter">
|
||||||
|
<a-menu slot="overlay">
|
||||||
|
<a-menu-item key="1" @click="switchCheckStrictly(2)">{{ $t('parentChildConnection') }}</a-menu-item>
|
||||||
|
<a-menu-item key="2" @click="switchCheckStrictly(1)">{{ $t('cancelConnection') }}</a-menu-item>
|
||||||
|
</a-menu>
|
||||||
|
<a-button>
|
||||||
|
{{ treeOperationText }} <a-icon type="up" />
|
||||||
|
</a-button>
|
||||||
|
</a-dropdown>
|
||||||
|
<!-- <a-button style="float: left" @click="switchCheckStrictly(parentChildRelate ? 1 : 2)">{{ treeOperationText }}</a-button>-->
|
||||||
|
<a-button @click="handleCancel" type="primary" style="margin-right: 0.8rem">{{ $t('close') }}</a-button>
|
||||||
|
<a-button @click="handleOk" type="primary" >{{ $t('confirm') }}</a-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</j-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getAction, postAction } from '../../api/manage'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'TreeDataSelectModal',
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
checkable: { // 是否多选
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
// 是否校验必选
|
||||||
|
checkRequired: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
// 获取数据的接口
|
||||||
|
optionsHref: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
// 标签库的限制,只能选第三级
|
||||||
|
isTagLibraryRestriction: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
dictId: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
treeOpera: { // 是否可以切换父子关联
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
treeScreenClass () {
|
||||||
|
return {
|
||||||
|
'my-dept-select-tree': true,
|
||||||
|
fullscreen: this.fullscreen
|
||||||
|
}
|
||||||
|
},
|
||||||
|
treeOperationText () {
|
||||||
|
return this.parentChildRelate ? this.$t('parentChildConnection') : this.$t('cancelConnection')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
// 是否只能选第三级
|
||||||
|
isTagLibraryRestriction (val) {
|
||||||
|
if (val) {
|
||||||
|
this.setOnlySelectThreeLevel(this.treeData)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
value (val) {
|
||||||
|
if (val) {
|
||||||
|
this.checkedKeys = val.split(',')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
optionsHref: {
|
||||||
|
immediate: true,
|
||||||
|
handler (val) {
|
||||||
|
console.log('-------------optionsHref', val)
|
||||||
|
if (val === '/laws/standard/partName/queryFirstList') {
|
||||||
|
// 是涉及系统/部件
|
||||||
|
this.replaceFields = { children: 'childPartNameList', title: 'name', key: 'code' }
|
||||||
|
this.lazyLoadHref = '/laws/standard/partName/getChild'
|
||||||
|
this.searchFieldName = 'nodeName'
|
||||||
|
this.lazyLoadPidFieldName = 'parentCode'
|
||||||
|
} else { // 标签库
|
||||||
|
this.replaceFields = { children: 'childrenList', title: 'itemText', key: 'itemValue' }
|
||||||
|
this.lazyLoadHref = '/laws/dictTree/getChild'
|
||||||
|
this.searchFieldName = 'nodeName'
|
||||||
|
this.lazyLoadPidFieldName = 'dictItemId'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
// if (this.treeOpera) {
|
||||||
|
// this.switchCheckStrictly(1)
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
width: 800,
|
||||||
|
visible: false,
|
||||||
|
confirmLoading: false,
|
||||||
|
topLoading: false,
|
||||||
|
bottomLoading: false,
|
||||||
|
parentChildRelate: true, // 父子节点是否关联
|
||||||
|
autoExpandParent: false, // 是否自动展开父节点
|
||||||
|
treeData: [],
|
||||||
|
expandedKeys: [],
|
||||||
|
checkedKeys: [],
|
||||||
|
checkedRows: [],
|
||||||
|
selectedKeys: [],
|
||||||
|
loadedKeys: [],
|
||||||
|
searchValue: '', // 查询框内容
|
||||||
|
replaceFields: {},
|
||||||
|
dataSourceRight: [],
|
||||||
|
lazyLoadHref: '', // 懒加载接口
|
||||||
|
searchFieldName: '', // 查询传的字段名
|
||||||
|
lazyLoadPidFieldName: '' // 懒加载传父级的字段名
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
show () {
|
||||||
|
this.visible = true
|
||||||
|
this.treeData = []
|
||||||
|
this.checkedRows = []
|
||||||
|
this.checkedKeys = []
|
||||||
|
this.loadedKeys = []
|
||||||
|
this.selectedKeys = []
|
||||||
|
this.dataSourceRight = []
|
||||||
|
this.searchValue = ''
|
||||||
|
this.getTreeData()
|
||||||
|
if (this.value) {
|
||||||
|
if (this.checkable) {
|
||||||
|
this.checkedKeys = this.value.split(',')
|
||||||
|
} else {
|
||||||
|
this.selectedKeys = this.value.split(',')
|
||||||
|
}
|
||||||
|
// 初始化选中数据列表
|
||||||
|
this.getSelectedList(this.value)
|
||||||
|
}
|
||||||
|
this.$forceUpdate()
|
||||||
|
},
|
||||||
|
onCheck (checkedKeys, info) {
|
||||||
|
console.log('----------onCheck', checkedKeys)
|
||||||
|
console.log('----------info.checked', info.checked)
|
||||||
|
console.log('----------info.node', info.node.dataRef)
|
||||||
|
if (this.checkable) {
|
||||||
|
// 是多选
|
||||||
|
if (this.parentChildRelate) {
|
||||||
|
// 是父子关联
|
||||||
|
if (info.checked) {
|
||||||
|
// 是选中数据了
|
||||||
|
let childrenList = []
|
||||||
|
if (info.node.dataRef[this.replaceFields.children]) {
|
||||||
|
// 有子节点获取子节点数据
|
||||||
|
childrenList = info.node.dataRef[this.replaceFields.children].map(item => item[this.replaceFields.key])
|
||||||
|
}
|
||||||
|
this.checkedKeys = [...this.checkedKeys, ...checkedKeys.checked, ...childrenList]
|
||||||
|
} else {
|
||||||
|
// 是取消选中了,把当前和子节点都取消选中
|
||||||
|
let currAndChildNode = []
|
||||||
|
if (info.node.dataRef[this.replaceFields.children]) {
|
||||||
|
// 有子节点获取子节点数据
|
||||||
|
const childrenNode = info.node.dataRef[this.replaceFields.children].map(item => item[this.replaceFields.key])
|
||||||
|
currAndChildNode = [...childrenNode, info.node.dataRef[this.replaceFields.key]]
|
||||||
|
} else {
|
||||||
|
currAndChildNode = [info.node.dataRef[this.replaceFields.key]]
|
||||||
|
}
|
||||||
|
this.checkedKeys = this.checkedKeys.filter(item => !currAndChildNode.includes(item))
|
||||||
|
}
|
||||||
|
// 处理下方显示已选数据
|
||||||
|
if (info.checked) {
|
||||||
|
console.log('------------增加了数据')
|
||||||
|
// 说明是增加了数据,把点击的数据和子数据追加进去
|
||||||
|
for (const key of checkedKeys.checked) {
|
||||||
|
// 当前选中没在选中列表中的加进去
|
||||||
|
if (!this.dataSourceRight.find(item => item[this.replaceFields.key] === key)) {
|
||||||
|
// 右侧不存在,追加到右侧表格
|
||||||
|
this.dataSourceRight.push(info.node.dataRef)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (info.node.dataRef[this.replaceFields.children]) {
|
||||||
|
// 有子集追加
|
||||||
|
for (const keyItem of info.node.dataRef[this.replaceFields.children]) {
|
||||||
|
// 当前选中的子集没在列表中的加进去
|
||||||
|
if (!this.dataSourceRight.find(item => item[this.replaceFields.key] === keyItem[this.replaceFields.key])) {
|
||||||
|
// 右侧不存在,追加到右侧表格
|
||||||
|
this.dataSourceRight.push(keyItem)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log('----------删除了数据')
|
||||||
|
// 说明是删除了数据
|
||||||
|
if (this.checkedKeys && this.checkedKeys.length > 0) {
|
||||||
|
// 还有选中数据,从dataSourceRight里面找到点击的数据和他的子数据清空
|
||||||
|
for (let i = 0; i < this.dataSourceRight.length; i++) {
|
||||||
|
if (!this.checkedKeys.find(item => item === this.dataSourceRight[i][this.replaceFields.key])) {
|
||||||
|
// 表格选中中没有找到这一条数据,说明已经被删了
|
||||||
|
this.dataSourceRight.splice(i, 1)
|
||||||
|
i--
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 已经没有选中数据了,直接清空展示数据
|
||||||
|
this.dataSourceRight = []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 不是父子关联
|
||||||
|
console.log('-----------checkedKeys', this.checkedKeys, checkedKeys)
|
||||||
|
if (info.checked) {
|
||||||
|
// 是选中数据了
|
||||||
|
this.checkedKeys = [...this.checkedKeys, ...checkedKeys.checked]
|
||||||
|
} else {
|
||||||
|
// 是取消选中了
|
||||||
|
this.checkedKeys = this.checkedKeys.filter(item => item !== info.node.dataRef[this.replaceFields.key])
|
||||||
|
}
|
||||||
|
// 处理下方显示已选数据
|
||||||
|
if (info.checked) {
|
||||||
|
console.log('------------不父子关联增加了数据')
|
||||||
|
// 说明是增加了数据,把点击的数据追加进去
|
||||||
|
for (const key of checkedKeys.checked) {
|
||||||
|
// 当前选中没在选中列表中的加进去
|
||||||
|
if (!this.dataSourceRight.find(item => item[this.replaceFields.key] === key)) {
|
||||||
|
// 右侧不存在,追加到右侧表格
|
||||||
|
this.dataSourceRight.push(info.node.dataRef)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log('----------不父子关联删除了数据')
|
||||||
|
// 说明是删除了数据
|
||||||
|
if (this.checkedKeys && this.checkedKeys.length > 0) {
|
||||||
|
// 还有选中数据,从dataSourceRight里面找到点击的数据和他的子数据清空
|
||||||
|
for (let i = 0; i < this.dataSourceRight.length; i++) {
|
||||||
|
if (!this.checkedKeys.find(item => item === this.dataSourceRight[i][this.replaceFields.key])) {
|
||||||
|
// 表格选中中没有找到这一条数据,说明已经被删了
|
||||||
|
this.dataSourceRight.splice(i, 1)
|
||||||
|
i--
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 已经没有选中数据了,直接清空展示数据
|
||||||
|
this.dataSourceRight = []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onSelect (selectedKeys, info) {
|
||||||
|
// 取消关联的情况下才走onSelect的逻辑
|
||||||
|
if (!this.parentChildRelate) {
|
||||||
|
if (selectedKeys && selectedKeys.length > 0) {
|
||||||
|
// 说明是选中了数据
|
||||||
|
this.selectedKeys = [...selectedKeys]
|
||||||
|
this.dataSourceRight = [info.node.dataRef]
|
||||||
|
} else {
|
||||||
|
// 没有数据,直接清空
|
||||||
|
this.selectedKeys = []
|
||||||
|
this.dataSourceRight = []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad (loadedKeys) {
|
||||||
|
this.loadedKeys = loadedKeys
|
||||||
|
},
|
||||||
|
onExpand (expandedKeys) {
|
||||||
|
console.log('========expandedKeys', expandedKeys)
|
||||||
|
this.expandedKeys = expandedKeys
|
||||||
|
},
|
||||||
|
// 异步加载
|
||||||
|
async loadData (node) {
|
||||||
|
console.log('-------------loadData', node)
|
||||||
|
if (node.dataRef.children) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.topLoading = true
|
||||||
|
const params = {}
|
||||||
|
if (this.optionsHref !== '/laws/standard/partName/queryFirstList') {
|
||||||
|
// 不是涉及系统部件
|
||||||
|
params.dictId = this.dictId
|
||||||
|
}
|
||||||
|
// 查询条件的名称
|
||||||
|
if (this.searchValue) {
|
||||||
|
params[this.searchFieldName] = this.searchValue
|
||||||
|
}
|
||||||
|
// 父节点id
|
||||||
|
if (this.optionsHref === '/laws/standard/partName/queryFirstList') {
|
||||||
|
// 是涉及系统部件
|
||||||
|
params[this.lazyLoadPidFieldName] = node.dataRef.code
|
||||||
|
} else {
|
||||||
|
params[this.lazyLoadPidFieldName] = node.dataRef.id
|
||||||
|
}
|
||||||
|
await getAction(this.lazyLoadHref, params).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
node.dataRef[this.replaceFields.children] = res.result.record || res.result
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.topLoading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleCancel () {
|
||||||
|
this.visible = false
|
||||||
|
},
|
||||||
|
close () {
|
||||||
|
this.visible = false
|
||||||
|
this.checkedKeys = []
|
||||||
|
this.expandedKeys = []
|
||||||
|
this.loadedKeys = []
|
||||||
|
this.dataSourceRight = []
|
||||||
|
this.treeData = []
|
||||||
|
this.searchValue = ''
|
||||||
|
},
|
||||||
|
onSearch (value) {
|
||||||
|
this.searchValue = value
|
||||||
|
// this.autoExpandParent = true
|
||||||
|
this.getTreeData()
|
||||||
|
this.expandedKeys = []
|
||||||
|
this.loadedKeys = []
|
||||||
|
this.$forceUpdate()
|
||||||
|
},
|
||||||
|
// 设置树只能选第三级
|
||||||
|
setOnlySelectThreeLevel (treeData) {
|
||||||
|
for (const item of treeData) {
|
||||||
|
item.disabled = item.level + '' !== '3'
|
||||||
|
item.disableCheckbox = item.level + '' !== '3'
|
||||||
|
if (item.childPartNameList && item.childPartNameList.length > 0) {
|
||||||
|
this.setOnlySelectThreeLevel(item.childPartNameList)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 切换父子关联
|
||||||
|
switchCheckStrictly (v) {
|
||||||
|
if (v === 1) {
|
||||||
|
// 取消父子关联
|
||||||
|
this.parentChildRelate = false
|
||||||
|
} else if (v === 2) {
|
||||||
|
// 增加父子关联
|
||||||
|
this.parentChildRelate = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getTreeData () {
|
||||||
|
this.topLoading = true
|
||||||
|
const params = {}
|
||||||
|
if (this.optionsHref !== '/laws/standard/partName/queryFirstList') {
|
||||||
|
// 不是涉及系统部件
|
||||||
|
params.dictId = this.dictId
|
||||||
|
}
|
||||||
|
// 查询条件的名称
|
||||||
|
if (this.searchValue) {
|
||||||
|
params[this.searchFieldName] = this.searchValue
|
||||||
|
}
|
||||||
|
getAction(this.optionsHref, params).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.treeData = res.result.records || res.result
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.topLoading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 已选数据列表的删除
|
||||||
|
handleDelete (record, index) {
|
||||||
|
this.dataSourceRight.splice(index, 1)
|
||||||
|
if (this.checkable) {
|
||||||
|
// 多选从checkedKeys里面筛选出去
|
||||||
|
this.checkedKeys = this.checkedKeys.filter(item => item !== record[this.replaceFields.key])
|
||||||
|
} else {
|
||||||
|
// 单选从selectedKeys里面筛选出去
|
||||||
|
this.selectedKeys = this.selectedKeys.filter(item => item !== record[this.replaceFields.key])
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleOk () {
|
||||||
|
if (this.checkRequired && (!this.checkedKeys || this.checkedKeys.length === 0)) {
|
||||||
|
this.$message.warning(this.$t('selectLeastOne'))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.$emit('nameChange', this.dataSourceRight.map(item => item[this.replaceFields.title]).join(','))
|
||||||
|
this.$emit('change', this.dataSourceRight.map(item => item[this.replaceFields.key]).join(','))
|
||||||
|
this.$emit('listChange', this.dataSourceRight)
|
||||||
|
this.close()
|
||||||
|
},
|
||||||
|
getSelectedList (codes) {
|
||||||
|
this.bottomLoading = true
|
||||||
|
const params = {
|
||||||
|
selectNodeCodes: codes,
|
||||||
|
dictId: this.dictId
|
||||||
|
}
|
||||||
|
let url
|
||||||
|
// 涉及系统/部件
|
||||||
|
if (this.optionsHref === '/laws/standard/partName/queryFirstList') {
|
||||||
|
url = '/laws/standard/partName/echo'
|
||||||
|
} else { // 标签库
|
||||||
|
url = '/laws/dictTree/echo'
|
||||||
|
}
|
||||||
|
if (!url) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
postAction(url, params).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.dataSourceRight = JSON.parse(JSON.stringify(res.result))
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.bottomLoading = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
/deep/ .ant-modal-content {
|
||||||
|
padding-bottom: 18px;
|
||||||
|
}
|
||||||
|
.my-dept-select-tree{
|
||||||
|
height:350px;
|
||||||
|
|
||||||
|
&.fullscreen{
|
||||||
|
height: calc(100vh - 250px);
|
||||||
|
}
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-content-title {
|
||||||
|
color: #1D2129;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-right: 12px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
margin-top: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drawer-bootom-button {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
border-top: 1px solid #e8e8e8;
|
||||||
|
padding: 10px 16px;
|
||||||
|
text-align: right;
|
||||||
|
left: 0;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 0 0 2px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.name-content {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
max-height: 200px;
|
||||||
|
overflow-y: auto;
|
||||||
|
.name-div {
|
||||||
|
width: auto;
|
||||||
|
padding: 5px 16px;
|
||||||
|
margin-right: 12px;
|
||||||
|
margin-top: 8px;
|
||||||
|
background: rgba(0, 100, 250, 0.08);
|
||||||
|
border-radius: 4px 4px 4px 4px;
|
||||||
|
opacity: 1;
|
||||||
|
color: @primary-color;
|
||||||
|
white-space: nowrap;
|
||||||
|
/deep/ .anticon {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,145 @@
|
|||||||
|
<template>
|
||||||
|
<div class="components-input-demo-presuffix">
|
||||||
|
<div class="user-organ-wrap">
|
||||||
|
<a-input class="user-input" @click="openModal" :placeholder="placeholder" v-model="nameStr" :title="nameStr" readOnly>
|
||||||
|
<a-icon v-if="nameStr" slot="suffix" type="close-circle" @click="handleEmpty" title="清空"/>
|
||||||
|
</a-input>
|
||||||
|
<a-button type="primary" class="button-box" @click="openModal" :disabled="disabled" v-if="showBtn && !disabled">
|
||||||
|
{{ $t('select') }}
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<tree-data-select-modal
|
||||||
|
ref="selectModal"
|
||||||
|
:checkable="checkable"
|
||||||
|
:value="value"
|
||||||
|
:dict-id="dictId"
|
||||||
|
v-bind="$attrs"
|
||||||
|
:options-href="optionsHref"
|
||||||
|
@change="handleChange"
|
||||||
|
@nameChange="nameChange"
|
||||||
|
@listChange="listChange"/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import TreeDataSelectModal from './TreeDataSelectModal'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'TreeDataSelection',
|
||||||
|
components: { TreeDataSelectModal },
|
||||||
|
props: {
|
||||||
|
checkable: { // 是否多选
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
value: {
|
||||||
|
type: String,
|
||||||
|
required: false
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
// 获取数据的接口
|
||||||
|
optionsHref: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
// 名称字符串
|
||||||
|
nameStr: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
fieldName: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
dictId: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
showBtn: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
placeholder: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
nameStr: {
|
||||||
|
immediate: true,
|
||||||
|
handler (val) {
|
||||||
|
console.log('----------nameStr', val)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
confirmLoading: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
openModal () {
|
||||||
|
this.$refs.selectModal.show()
|
||||||
|
},
|
||||||
|
handleChange (value) {
|
||||||
|
this.$emit('change', value, this.fieldName)
|
||||||
|
},
|
||||||
|
nameChange (value) {
|
||||||
|
this.$emit('nameChange', value, this.fieldName)
|
||||||
|
},
|
||||||
|
listChange (value) {
|
||||||
|
this.$emit('listChange', value, this.fieldName)
|
||||||
|
},
|
||||||
|
handleEmpty () {
|
||||||
|
if (this.disabled) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.handleChange('')
|
||||||
|
this.nameChange('')
|
||||||
|
this.listChange([])
|
||||||
|
}
|
||||||
|
},
|
||||||
|
model: {
|
||||||
|
prop: 'value',
|
||||||
|
event: 'change'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.user-organ-wrap {
|
||||||
|
width: 100%;
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
//height: 39.98px;
|
||||||
|
|
||||||
|
.user-input {
|
||||||
|
resize: none;
|
||||||
|
width: calc(100% - 70px);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 因为需要加title,所以不能把鼠标事件去掉
|
||||||
|
/deep/ .ant-input-disabled {
|
||||||
|
background: #fff;
|
||||||
|
color: rgba(0, 0, 0, 0.65);
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-box {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -138,7 +138,7 @@ export default {
|
|||||||
deep: true,
|
deep: true,
|
||||||
handler (val) {
|
handler (val) {
|
||||||
console.log(this.currentQueryAllData)
|
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 arrTwo = this.dataSourceRight.map(item => item.id)
|
||||||
const temp = []
|
const temp = []
|
||||||
for (const item of arrTwo) {
|
for (const item of arrTwo) {
|
||||||
@@ -157,7 +157,7 @@ export default {
|
|||||||
deep: true,
|
deep: true,
|
||||||
handler (val) {
|
handler (val) {
|
||||||
console.log(this.currentQueryAllData)
|
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 arrTwo = this.dataSourceRight.map(item => item.id)
|
||||||
const temp = []
|
const temp = []
|
||||||
for (const item of arrTwo) {
|
for (const item of arrTwo) {
|
||||||
@@ -240,7 +240,8 @@ export default {
|
|||||||
isCheckedAll: false, // 是否选中所有
|
isCheckedAll: false, // 是否选中所有
|
||||||
url: {
|
url: {
|
||||||
userList: '/sys/user/page',
|
userList: '/sys/user/page',
|
||||||
userListByIds: '/sys/user/queryByIds'
|
userListByIds: '/sys/user/queryByIds',
|
||||||
|
queryList: '/sys/user/list'
|
||||||
},
|
},
|
||||||
isClickedSearch: false, // 改完搜索条件是否点击过搜索
|
isClickedSearch: false, // 改完搜索条件是否点击过搜索
|
||||||
oldQueryParam: {}, // 上一次的搜索条件,用于从一个搜索条件改成另一个搜索条件,但是没有点搜索,这时候全选时传旧的搜索条件
|
oldQueryParam: {}, // 上一次的搜索条件,用于从一个搜索条件改成另一个搜索条件,但是没有点搜索,这时候全选时传旧的搜索条件
|
||||||
@@ -298,7 +299,7 @@ export default {
|
|||||||
this.checkCurrentAll()
|
this.checkCurrentAll()
|
||||||
} else {
|
} else {
|
||||||
const field = 'id'
|
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])
|
this.selectedRowKeys = JSON.parse(JSON.stringify(this.dataSourceRight)).map(item => item[field])
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -340,14 +341,14 @@ export default {
|
|||||||
// 获取当前查询条件的所有数据
|
// 获取当前查询条件的所有数据
|
||||||
async getCurrentAllData () {
|
async getCurrentAllData () {
|
||||||
const params = Object.assign({}, this.queryParam)
|
const params = Object.assign({}, this.queryParam)
|
||||||
params.pageNo = 1
|
// params.pageNo = 1
|
||||||
params.pageSize = 100000000
|
// params.pageSize = 100000000
|
||||||
params.field = 'id,avatar,username,realname,sex_dictText,phone,orgCodeTxt,roleTxt,status_dictText'
|
params.field = 'id,avatar,username,realname,sex_dictText,phone,orgCodeTxt,roleTxt,status_dictText'
|
||||||
params.column = 'createTime'
|
params.column = 'createTime'
|
||||||
params.order = 'desc'
|
params.order = 'desc'
|
||||||
await getAction(this.url.userList, params).then(res => {
|
await getAction(this.url.queryList, params).then(res => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.currentQueryAllData = res.result.records || []
|
this.currentQueryAllData = res.result || []
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -544,4 +545,8 @@ export default {
|
|||||||
/deep/ .ant-form-item-label{
|
/deep/ .ant-form-item-label{
|
||||||
min-width: 70px !important;
|
min-width: 70px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/deep/ .ant-table-hide-scrollbar {
|
||||||
|
margin-right: -8px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ export default {
|
|||||||
headers: '',
|
headers: '',
|
||||||
previewImage: {},
|
previewImage: {},
|
||||||
uploadFileFlag: 0,
|
uploadFileFlag: 0,
|
||||||
fileMaxSize: 500
|
fileMaxSize: 20
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
@@ -103,7 +103,7 @@ export default {
|
|||||||
// const fileTypes = this.accept.split('/')
|
// const fileTypes = this.accept.split('/')
|
||||||
const fileNowTypes = file.type.split('/')
|
const fileNowTypes = file.type.split('/')
|
||||||
// 修改判断方法 限制jpg\jpeg\png\gif 可以上传 其他不能上传。
|
// 修改判断方法 限制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)
|
// console.log('filetype',fileFlag)
|
||||||
if (!fileFlag) {
|
if (!fileFlag) {
|
||||||
this.$message.warning(this.$t('uploadFile.fileFormatIncorrect'))
|
this.$message.warning(this.$t('uploadFile.fileFormatIncorrect'))
|
||||||
|
|||||||
@@ -62,6 +62,16 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
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/'
|
UEDITOR_CONFIG.UEDITOR_HOME_URL = '../../../public/ueditor/'
|
||||||
// 初始化UE
|
// 初始化UE
|
||||||
this.editor = UE.delEditor('editor')
|
this.editor = UE.delEditor('editor')
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ export const FieldType = {
|
|||||||
YEAR_PICKER: { text: '年份选择', value: '14' },
|
YEAR_PICKER: { text: '年份选择', value: '14' },
|
||||||
TREE_SINGLE: { text: '树形结构(单选)', value: '15' },
|
TREE_SINGLE: { text: '树形结构(单选)', value: '15' },
|
||||||
TREE_MODAL_SELECT: { text: '树形弹框', value: '16' },
|
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({
|
export const TagsTypeEnums = new EsEnums({
|
||||||
@@ -84,13 +85,12 @@ export const IsTrial = {
|
|||||||
|
|
||||||
// 外来标准状态
|
// 外来标准状态
|
||||||
export const StandardStatus = {
|
export const StandardStatus = {
|
||||||
DRAFT: { text: '起草', value: '1' },
|
CURRENTLY_EFFECTIVE: { text: '现行', value: '1' },
|
||||||
SEEK_FOR_OPTIONS: { text: '征求意见', value: '2' },
|
RELEASE: { text: '发布', value: '2' },
|
||||||
EXAMINE: { text: '审查', value: '2.1' },
|
|
||||||
APPROVAL: { text: '报批', value: '3' },
|
APPROVAL: { text: '报批', value: '3' },
|
||||||
RELEASE: { text: '发布', value: '4' },
|
EXAMINE: { text: '审查', value: '4' },
|
||||||
BE_IMPLEMENTED_SOON: { text: '即将实施', value: '5' },
|
SEEK_FOR_OPTIONS: { text: '征求意见', value: '5' },
|
||||||
CURRENTLY_EFFECTIVE: { text: '现行有效', value: '6' },
|
DRAFT: { text: '草案', value: '6' },
|
||||||
ABOLISH: { text: '废止', value: '7' }
|
ABOLISH: { text: '废止', value: '7' }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -190,7 +190,7 @@ export const StandardInterpretationNodes = new EsEnums({
|
|||||||
initiated: { text: '法规工程师发起', value: 'regulatory_engineer_start', btn: ['save', 'submit'] },
|
initiated: { text: '法规工程师发起', value: 'regulatory_engineer_start', btn: ['save', 'submit'] },
|
||||||
controlDepartLiaisonDistribution: { text: '主控部门联络人分发', value: 'contact_person_distribute', btn: ['transfer', 'save', 'submit'] },
|
controlDepartLiaisonDistribution: { text: '主控部门联络人分发', value: 'contact_person_distribute', btn: ['transfer', 'save', 'submit'] },
|
||||||
standardInterpreterDistribution: { text: '标准主解读人分发', value: 'master_interpret_distribute', btn: ['reject', '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'] },
|
interpreterFillInfo: { text: '解读人填写信息', value: 'interpreting_people_fillout', btn: ['reject', 'transfer', 'save', 'submit'] },
|
||||||
mainInterpreterSingleLineReview: { text: '标准主解读人审核', value: 'master_interpret_approve', btn: ['reject', 'transfer', 'save', 'agree'] },
|
mainInterpreterSingleLineReview: { text: '标准主解读人审核', value: 'master_interpret_approve', btn: ['reject', 'transfer', 'save', 'agree'] },
|
||||||
standardInterpreterSummary: { text: '标准主解读人汇总', value: 'master_interpret_summary', btn: ['transfer', 'save', 'submit'] },
|
standardInterpreterSummary: { text: '标准主解读人汇总', value: 'master_interpret_summary', btn: ['transfer', 'save', 'submit'] },
|
||||||
@@ -253,6 +253,12 @@ export const OcrConvertStateEnums = {
|
|||||||
CONVERTED: { text: '转换完成', value: '2' }
|
CONVERTED: { text: '转换完成', value: '2' }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 用户管理来源
|
||||||
|
export const UserSource = {
|
||||||
|
IAM: { text: 'IAM', value: '2' },
|
||||||
|
SYSTEMADD: { text: '系统新增', value: '1' }
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 展示区域管理
|
* 展示区域管理
|
||||||
* TODO 标签管理要改了,这里也要同步一下
|
* TODO 标签管理要改了,这里也要同步一下
|
||||||
|
|||||||
+11
-1
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import App from './App.vue'
|
import App from './App.vue'
|
||||||
|
import MobileApp from './MobileApp'
|
||||||
import Storage from 'vue-ls'
|
import Storage from 'vue-ls'
|
||||||
import router from './router'
|
import router from './router'
|
||||||
import store from './store/'
|
import store from './store/'
|
||||||
@@ -49,6 +50,7 @@ import JDictComponenets from '@comp/dict/index.js'
|
|||||||
|
|
||||||
import JTable from '@comp/jero/JTable.vue'
|
import JTable from '@comp/jero/JTable.vue'
|
||||||
import i18n from '@/common/lang'
|
import i18n from '@/common/lang'
|
||||||
|
import { isMobile } from '@/utils/util'
|
||||||
|
|
||||||
// Vue.prototype.rules = rules
|
// Vue.prototype.rules = rules
|
||||||
Vue.config.productionTip = false
|
Vue.config.productionTip = false
|
||||||
@@ -74,6 +76,14 @@ SSO.init(() => {
|
|||||||
Vue.prototype.global = {
|
Vue.prototype.global = {
|
||||||
emptyLine: '—'
|
emptyLine: '—'
|
||||||
}
|
}
|
||||||
|
// 当前是中文
|
||||||
|
Vue.prototype.isChinese = function () {
|
||||||
|
return this.$i18n.locale === 'zh-cn'
|
||||||
|
}
|
||||||
|
// 当前是英文
|
||||||
|
Vue.prototype.isEnglish = function () {
|
||||||
|
return this.$i18n.locale === 'en-us'
|
||||||
|
}
|
||||||
|
|
||||||
function main () {
|
function main () {
|
||||||
new Vue({
|
new Vue({
|
||||||
@@ -93,7 +103,7 @@ function main () {
|
|||||||
store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN))
|
store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN))
|
||||||
store.commit('SET_MULTI_PAGE', Vue.ls.get(DEFAULT_MULTI_PAGE, config.multipage))
|
store.commit('SET_MULTI_PAGE', Vue.ls.get(DEFAULT_MULTI_PAGE, config.multipage))
|
||||||
},
|
},
|
||||||
render: h => h(App),
|
render: h => h(isMobile() ? MobileApp : App),
|
||||||
data: {
|
data: {
|
||||||
Bus: new Vue()
|
Bus: new Vue()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,19 @@ import { mapGetters } from 'vuex'
|
|||||||
let importModalLoading
|
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'
|
const ZH = 'zh-cn'
|
||||||
|
|
||||||
@@ -162,9 +174,9 @@ export const ConfigurableTableMixin = {
|
|||||||
// 是否可排序
|
// 是否可排序
|
||||||
item.sorter = item.sortFlag === '1'
|
item.sorter = item.sortFlag === '1'
|
||||||
item.width = 215
|
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)) {
|
if (NEED_DICT_FIELD_TYPE.includes(item.fieldShowType)) {
|
||||||
item.dataIndex = item.dbFieldName + '_dictText'
|
item.dataIndex = this.isChinese() ? item.dbFieldName + '_dictText' : item.dbFieldName + '_dictTextEn'
|
||||||
} else {
|
} else {
|
||||||
item.dataIndex = item.dbFieldName
|
item.dataIndex = item.dbFieldName
|
||||||
}
|
}
|
||||||
@@ -267,6 +279,12 @@ export const ConfigurableTableMixin = {
|
|||||||
},
|
},
|
||||||
/* 导入 */
|
/* 导入 */
|
||||||
handleImportExcel (info) {
|
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
|
// 限制导入大于500MB
|
||||||
if (info.file.size > 1024 * 1024 * 500) {
|
if (info.file.size > 1024 * 1024 * 500) {
|
||||||
this.$message.error('导入文件最大500MB!')
|
this.$message.error('导入文件最大500MB!')
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { getProcessNodeList, queryTaskNameByTaskId } from '../api/workCenter'
|
import { getProcessNodeList, queryTaskNameByTaskId } from '../api/workCenter'
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import { USER_INFO } from '../store/mutation-types'
|
import { USER_INFO } from '../store/mutation-types'
|
||||||
|
import { findFirstRoute } from '@/utils/util'
|
||||||
|
|
||||||
export const WorkCenterMixin = {
|
export const WorkCenterMixin = {
|
||||||
data () {
|
data () {
|
||||||
@@ -89,7 +90,12 @@ export const WorkCenterMixin = {
|
|||||||
let timer = setTimeout(() => {
|
let timer = setTimeout(() => {
|
||||||
clearTimeout(timer)
|
clearTimeout(timer)
|
||||||
timer = null
|
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)
|
}, 700)
|
||||||
},
|
},
|
||||||
switchChange (value) {
|
switchChange (value) {
|
||||||
@@ -104,7 +110,7 @@ export const WorkCenterMixin = {
|
|||||||
*/
|
*/
|
||||||
beforeRouteEnter (to, from, next) {
|
beforeRouteEnter (to, from, next) {
|
||||||
if (to.query.taskId) {
|
if (to.query.taskId) {
|
||||||
queryTaskNameByTaskId({taskId: to.query.taskId}).then(res => {
|
queryTaskNameByTaskId({ taskId: to.query.taskId }).then(res => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
to.query.taskName = res.result.taskName
|
to.query.taskName = res.result.taskName
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-2
@@ -4,7 +4,7 @@ import store from './store'
|
|||||||
import NProgress from 'nprogress' // progress bar
|
import NProgress from 'nprogress' // progress bar
|
||||||
import 'nprogress/nprogress.css' // progress bar style
|
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 { 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 { getSSOUserInfo, getTodoSSOUserInfo } from './api/api'
|
||||||
import { updatePageHeight } from './components/tools/setting'
|
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)
|
whiteList.push(OAUTH2_LOGIN_PAGE_PATH)
|
||||||
|
|
||||||
router.beforeEach(async (to, from, next) => {
|
router.beforeEach(async (to, from, next) => {
|
||||||
|
if (isMobile()) {
|
||||||
|
if (to.path !== '/') {
|
||||||
|
next({ path: '/' })
|
||||||
|
} else {
|
||||||
|
next()
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
// 单点登录-OA单点登录
|
// 单点登录-OA单点登录
|
||||||
if (to.query.ticket) {
|
if (to.query.ticket) {
|
||||||
const { result, success, message } = await getTodoSSOUserInfo({ ticket: 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') {
|
} else if (to.query.code && to.query.state === 'feishu') {
|
||||||
// 如果没有登录,state是飞书,并且有code,就请求飞书单点登录
|
// 如果没有登录,state是飞书,并且有code,就请求飞书单点登录
|
||||||
await store.dispatch('FeiShuLogin', to.query.code).catch((e) => {
|
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) {
|
} else if (to.query.code) {
|
||||||
// 研发大前台单点登录
|
// 研发大前台单点登录
|
||||||
|
|||||||
@@ -144,9 +144,9 @@ const user = {
|
|||||||
GetPermissionList ({ commit }) {
|
GetPermissionList ({ commit }) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
queryPermissionsByUser().then(response => {
|
queryPermissionsByUser().then(response => {
|
||||||
const menuData = response.result.menu
|
const menuData = (response.result || {}).menu || []
|
||||||
const authData = response.result.auth
|
const authData = (response.result || {}).auth || []
|
||||||
const allAuthData = response.result.allAuth
|
const allAuthData = (response.result || {}).allAuth
|
||||||
// Vue.ls.set(USER_AUTH,authData);
|
// Vue.ls.set(USER_AUTH,authData);
|
||||||
sessionStorage.setItem(USER_AUTH, JSON.stringify(authData))
|
sessionStorage.setItem(USER_AUTH, JSON.stringify(authData))
|
||||||
sessionStorage.setItem(SYS_BUTTON_AUTH, JSON.stringify(allAuthData))
|
sessionStorage.setItem(SYS_BUTTON_AUTH, JSON.stringify(allAuthData))
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
|
|||||||
@@ -3,26 +3,16 @@
|
|||||||
<!-- <first-stage-card></first-stage-card>-->
|
<!-- <first-stage-card></first-stage-card>-->
|
||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
<div class="all-wrapper">
|
<div class="all-wrapper">
|
||||||
<a-row :gutter="20">
|
<!-- 检索 -->
|
||||||
<a-col :span="24" class="mb-20">
|
<retrieval-card class="home-search"></retrieval-card>
|
||||||
<!-- 检索 -->
|
<!-- 快捷入口 -->
|
||||||
<retrieval-card></retrieval-card>
|
<quick-enter-card class="home-quick-entrance"></quick-enter-card>
|
||||||
</a-col>
|
<!-- 待办任务 -->
|
||||||
<a-col :span="24" class="mb-20">
|
<to-do-task-card class="home-todo"></to-do-task-card>
|
||||||
<!-- 快捷入口 -->
|
<!-- 友情链接 -->
|
||||||
<quick-enter-card></quick-enter-card>
|
<friend-link-card class="home-link"></friend-link-card>
|
||||||
</a-col>
|
<!-- 列表 -->
|
||||||
<a-col :span="10" class="mb-20">
|
<search-and-warning-card class="home-table"></search-and-warning-card>
|
||||||
<!-- 待办任务 -->
|
|
||||||
<to-do-task-card class="mb-20"></to-do-task-card>
|
|
||||||
<!-- 友情链接 -->
|
|
||||||
<friend-link-card></friend-link-card>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="14" class="mb-20">
|
|
||||||
<!-- 预警 -->
|
|
||||||
<search-and-warning-card></search-and-warning-card>
|
|
||||||
</a-col>
|
|
||||||
</a-row>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -46,14 +36,45 @@ export default {
|
|||||||
@import '~@assets/less/common.less';
|
@import '~@assets/less/common.less';
|
||||||
|
|
||||||
.all-wrapper {
|
.all-wrapper {
|
||||||
padding: 20px 8px 0;
|
padding: 8px 8px 0;
|
||||||
}
|
display: grid;
|
||||||
.flex-item {
|
width: 100%;
|
||||||
margin: 10px;
|
height: calc(100vh - 60px - 8px - 20px);
|
||||||
}
|
grid-gap: 20px;
|
||||||
.mb-20 {
|
grid-template-columns: 0.4fr 0.6fr;
|
||||||
margin-bottom: 20px;
|
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 {
|
/deep/ .top-wrapper {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -89,6 +110,11 @@ export default {
|
|||||||
}
|
}
|
||||||
// 1366屏幕
|
// 1366屏幕
|
||||||
@media screen and (max-width: 1366px) {
|
@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 {
|
/deep/ .top-wrapper {
|
||||||
.left-p {
|
.left-p {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-card :bordered="false">
|
<div class="friend-link-wrapper">
|
||||||
<a-spin :spinning="loading">
|
<a-spin :spinning="loading">
|
||||||
<div class="top-wrapper">
|
<div class="top-wrapper">
|
||||||
<span class="left-p"><i class="iconfont icon-link left-icon"></i>{{$t('dashboard.friendLink.friendLink')}}</span>
|
<span class="left-p"><i class="iconfont icon-link left-icon"></i>{{$t('dashboard.friendLink.friendLink')}}</span>
|
||||||
@@ -7,15 +7,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="content-wrapper">
|
<div class="content-wrapper">
|
||||||
<div class="content-div" v-for="item in dataSource" :key="item.id" @click="clickLink(item)">
|
<div class="content-div" v-for="item in dataSource" :key="item.id" @click="clickLink(item)">
|
||||||
<img class="icon-img" :src="getImg(item.logoUrl)" :alt="item.name">
|
|
||||||
<a-tooltip placement="top">
|
<a-tooltip placement="top">
|
||||||
|
<img class="icon-img" :src="getImg(item.logoUrl)" :alt="item.name">
|
||||||
<template slot="title">{{ item.name }}</template>
|
<template slot="title">{{ item.name }}</template>
|
||||||
<p>{{ item.name }}</p>
|
<p>{{ item.name }}</p>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-spin>
|
</a-spin>
|
||||||
</a-card>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -69,13 +69,19 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
|
.friend-link-wrapper {
|
||||||
|
padding: 24px;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
@itemSize: 64px;
|
||||||
.content-wrapper {
|
.content-wrapper {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(6, 1fr);
|
grid-template-columns: repeat(6, 1fr);
|
||||||
|
// 总宽度 - 子内容的宽度 = 剩余宽度 / 5 = 就是每个的右间距,最后一个元素不需要右间距
|
||||||
|
grid-gap: calc((100% - (6 * @itemSize)) / 5);
|
||||||
margin-top: 12px;
|
margin-top: 12px;
|
||||||
}
|
}
|
||||||
.content-div {
|
.content-div > span {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -86,12 +92,12 @@ export default {
|
|||||||
|
|
||||||
.icon-img {
|
.icon-img {
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
width: 64px;
|
width: @itemSize;
|
||||||
height: 64px;
|
height: @itemSize;
|
||||||
margin-bottom: 2px;
|
margin-bottom: 2px;
|
||||||
}
|
}
|
||||||
p {
|
p {
|
||||||
width: 64px;
|
width: @itemSize;
|
||||||
height: 28px;
|
height: 28px;
|
||||||
line-height: 28px;
|
line-height: 28px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@@ -102,4 +108,22 @@ export default {
|
|||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 1366屏幕
|
||||||
|
@media screen and (max-width: 1366px) {
|
||||||
|
@itemSize: 52px;
|
||||||
|
.content-wrapper {
|
||||||
|
grid-gap: calc((100% - (6 * @itemSize)) / 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-div > span {
|
||||||
|
.icon-img {
|
||||||
|
width: @itemSize;
|
||||||
|
height: @itemSize;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
width: @itemSize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-card :bordered="false">
|
<div class="quick-enter-wrapper">
|
||||||
<a-spin :spinning="loading">
|
<a-spin :spinning="loading">
|
||||||
<div class="top-wrapper">
|
<div class="top-wrapper">
|
||||||
<p class="left-p"><i class="iconfont icon-rukou left-icon"></i>{{ this.$t('dashboard.quickEnter.quickEnter') }}</p>
|
<p class="left-p"><i class="iconfont icon-rukou left-icon"></i>{{ this.$t('dashboard.quickEnter.quickEnter') }}</p>
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
</a-spin>
|
</a-spin>
|
||||||
<!-- 菜单管理 -->
|
<!-- 菜单管理 -->
|
||||||
<menu-manage-modal ref="menuManageModal" @ok="loadData"/>
|
<menu-manage-modal ref="menuManageModal" @ok="loadData"/>
|
||||||
</a-card>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -89,14 +89,22 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
|
.quick-enter-wrapper {
|
||||||
|
background-color: white;
|
||||||
|
padding: 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
.content-wrapper {
|
.content-wrapper {
|
||||||
|
overflow: auto;
|
||||||
|
@itemGap: 20px;
|
||||||
display: grid;
|
display: grid;
|
||||||
margin-top: 12px;
|
margin-top: 12px;
|
||||||
grid-template-columns: repeat(auto-fill, calc(100% / 14));
|
grid-template-columns: repeat(14, minmax(72px, 1fr));
|
||||||
|
// 总宽度 - 子内容的宽度 = 剩余宽度 / 5 = 就是每个的右间距,最后一个元素不需要右间距
|
||||||
|
grid-column-gap: calc((100% - (14 * 72px)) / 13);
|
||||||
|
|
||||||
& > .content-div > span,
|
& > .content-div > span,
|
||||||
& > .plus-div > span {
|
& > .plus-div > span {
|
||||||
padding: 9px 16px 0;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<!-- 搜索区域 -->
|
<!-- 搜索区域 -->
|
||||||
<div class="search-wrapper">
|
<div class="search-wrapper">
|
||||||
<a-select class="resource-type-select" v-model="resourceType">
|
<a-select class="resource-type-select" v-model="resourceType" size="large">
|
||||||
<a-select-option value="all">{{ $t('dashboard.generalSearch.all')}}</a-select-option>
|
<a-select-option value="all">{{ $t('dashboard.generalSearch.all')}}</a-select-option>
|
||||||
<a-select-option v-for="item in resourceTypeOptions" :key="item.value" :value="item.value" :title="item.title">
|
<a-select-option v-for="item in resourceTypeOptions" :key="item.value" :value="item.value" :title="isChinese() ? item.title : item.enText">
|
||||||
{{ item.title }}
|
{{ isChinese() ? item.title : item.enText }}
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
<a-input class="search-input" v-model="searchValue" :placeholder="$t('pleaseEnter')" @pressEnter="searchInputEnter">
|
<a-input class="search-input" size="large" v-model="searchValue" :placeholder="$t('pleaseEnter')" @pressEnter="searchInputEnter">
|
||||||
<a-icon slot="prefix" type="search" style="color: #0064FA;" />
|
<a-icon slot="prefix" type="search" style="color: #0064FA;" />
|
||||||
</a-input>
|
</a-input>
|
||||||
<div class="btn-box">
|
<div class="btn-box">
|
||||||
<a-button type="primary" icon="search" @click="toSearchWindow('title')">{{ $t('dashboard.retrieval.titleSearch') }}</a-button>
|
<a-button type="primary" size="large" icon="search" @click="toSearchWindow('title')">{{ $t('dashboard.retrieval.titleSearch') }}</a-button>
|
||||||
<a-button type="primary" icon="search" @click="toSearchWindow('fullText')">{{ $t('dashboard.retrieval.fullSearch') }}</a-button>
|
<a-button type="primary" size="large" icon="search" @click="toSearchWindow('fullText')">{{ $t('dashboard.retrieval.fullSearch') }}</a-button>
|
||||||
<a-button type="primary" class="btn-ghost" ghost @click="toAdvancedSearch"><img :src="require('@/assets/image/icon/super-search.png')" alt='' class="btn-icon">{{ $t('dashboard.retrieval.advancedSearch') }}</a-button>
|
<a-button type="primary" size="large" class="btn-ghost" ghost @click="toAdvancedSearch"><img :src="require('@/assets/image/icon/super-search.png')" alt='' class="btn-icon">{{ $t('dashboard.retrieval.advancedSearch') }}</a-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -80,21 +80,21 @@ export default {
|
|||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
@height: 56px;
|
@height: 56px;
|
||||||
.search-wrapper {
|
.search-wrapper {
|
||||||
width: 80%;
|
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
width: 80%;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 102px 1fr auto;
|
grid-template-columns: 120px 1fr auto;
|
||||||
grid-gap: 10px;
|
grid-gap: 10px;
|
||||||
|
|
||||||
& > .resource-type-select {
|
& > .resource-type-select {
|
||||||
flex: 0 0 102px;
|
height: 100%;
|
||||||
color: @primary-color;
|
color: @primary-color;
|
||||||
|
|
||||||
/deep/.ant-select-arrow svg {
|
/deep/.ant-select-arrow svg {
|
||||||
fill: @primary-color;
|
fill: @primary-color;
|
||||||
}
|
}
|
||||||
/deep/.ant-select-selection--single {
|
/deep/.ant-select-selection--single {
|
||||||
height: @height;
|
height: 100%;
|
||||||
border-color: @primary-color;
|
border-color: @primary-color;
|
||||||
}
|
}
|
||||||
/deep/.ant-select-arrow {
|
/deep/.ant-select-arrow {
|
||||||
@@ -108,7 +108,8 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
& > .search-input {
|
& > .search-input {
|
||||||
flex: auto;
|
height: 100%;
|
||||||
|
font-size: 16px;
|
||||||
//margin-left: 10px;
|
//margin-left: 10px;
|
||||||
/deep/.ant-input-prefix {
|
/deep/.ant-input-prefix {
|
||||||
left: 24px;
|
left: 24px;
|
||||||
@@ -116,14 +117,14 @@ export default {
|
|||||||
|
|
||||||
/deep/.ant-input {
|
/deep/.ant-input {
|
||||||
padding-left: 40px;
|
padding-left: 40px;
|
||||||
height: @height;
|
height: 100%;
|
||||||
border-color: @primary-color;
|
border-color: @primary-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-box .ant-btn {
|
.btn-box .ant-btn {
|
||||||
flex: 138px;
|
min-width: 138px;
|
||||||
height: @height;
|
height: 100%;
|
||||||
|
|
||||||
&:not(:first-child) {
|
&:not(:first-child) {
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
@@ -133,10 +134,6 @@ export default {
|
|||||||
|
|
||||||
.btn-icon {
|
.btn-icon {
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
vertical-align: top;
|
vertical-align: sub;
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 1366px) {
|
|
||||||
@height: 42px;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -12,10 +12,11 @@
|
|||||||
size="middle"
|
size="middle"
|
||||||
:rowKey="(_, index) => index"
|
:rowKey="(_, index) => index"
|
||||||
class="table"
|
class="table"
|
||||||
:scroll="{ x: '100%', y: '40vh' }"
|
:scroll="{ x: '100%', y: 'calc(100vh - 550px)' }"
|
||||||
:columns="showColumns"
|
:columns="showColumns"
|
||||||
:dataSource="dataSource"
|
:dataSource="dataSource"
|
||||||
:pagination="ipagination"
|
:pagination="ipagination"
|
||||||
|
:components="components"
|
||||||
@change="handleTableChange"
|
@change="handleTableChange"
|
||||||
:loading="loading">
|
:loading="loading">
|
||||||
<template slot="text" slot-scope="text">
|
<template slot="text" slot-scope="text">
|
||||||
@@ -32,6 +33,14 @@
|
|||||||
<div v-else class="table-text">{{ global.emptyLine }}</div>
|
<div v-else class="table-text">{{ global.emptyLine }}</div>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</template>
|
</template>
|
||||||
|
<!-- 标准状态 -->
|
||||||
|
<template v-slot:standardState="text, record">
|
||||||
|
<a-tooltip overlay-class-name="tooltip-style">
|
||||||
|
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
|
||||||
|
<div v-if="text" class="status-style" :style="getStandardStateStyle(record)">{{ text }}</div>
|
||||||
|
<div v-else class="table-text">{{ global.emptyLine }}</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</template>
|
||||||
<!-- 企标号、企标名称 -->
|
<!-- 企标号、企标名称 -->
|
||||||
<template v-slot:enStandard="text, record">
|
<template v-slot:enStandard="text, record">
|
||||||
<a-tooltip overlay-class-name="tooltip-style">
|
<a-tooltip overlay-class-name="tooltip-style">
|
||||||
@@ -61,7 +70,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { StandardSource } from '@/enums/commonEnums'
|
import { EnterpriseStandardStatus, StandardSource, StandardStatus } from '@/enums/commonEnums'
|
||||||
import { getMarketRegulationsList } from '../../../api/api'
|
import { getMarketRegulationsList } from '../../../api/api'
|
||||||
import {
|
import {
|
||||||
getHomeNewStandard,
|
getHomeNewStandard,
|
||||||
@@ -210,7 +219,7 @@ export default {
|
|||||||
align: 'left',
|
align: 'left',
|
||||||
dataIndex: 'standardState_dictText',
|
dataIndex: 'standardState_dictText',
|
||||||
width: 100,
|
width: 100,
|
||||||
scopedSlots: { customRender: 'text' },
|
scopedSlots: { customRender: 'standardState' },
|
||||||
show: () => {
|
show: () => {
|
||||||
return [
|
return [
|
||||||
this.tabList[0].key,
|
this.tabList[0].key,
|
||||||
@@ -222,7 +231,7 @@ export default {
|
|||||||
{ // 代替标准编号
|
{ // 代替标准编号
|
||||||
title: this.$t('dashboard.tableList.substituteStandardNumber'),
|
title: this.$t('dashboard.tableList.substituteStandardNumber'),
|
||||||
align: 'left',
|
align: 'left',
|
||||||
dataIndex: 'substituteStandardNumber',
|
dataIndex: 'replacedByStandardNumber',
|
||||||
width: 100,
|
width: 100,
|
||||||
scopedSlots: { customRender: 'text' },
|
scopedSlots: { customRender: 'text' },
|
||||||
show: () => {
|
show: () => {
|
||||||
@@ -308,6 +317,11 @@ export default {
|
|||||||
showSizeChanger: true,
|
showSizeChanger: true,
|
||||||
total: 0
|
total: 0
|
||||||
},
|
},
|
||||||
|
components: {
|
||||||
|
header: {
|
||||||
|
cell: this.initHeader(this.columns)
|
||||||
|
}
|
||||||
|
},
|
||||||
url: {
|
url: {
|
||||||
list: '/laws/localTool/standardEarlyWarning/newModelImplementation'
|
list: '/laws/localTool/standardEarlyWarning/newModelImplementation'
|
||||||
}
|
}
|
||||||
@@ -319,6 +333,71 @@ export default {
|
|||||||
// this.loadData(1)
|
// this.loadData(1)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 自定义渲染表头(表头换行影响高度)
|
||||||
|
initHeader () {
|
||||||
|
return (h, props, children, abc) => {
|
||||||
|
// 获取列的key值和特性
|
||||||
|
const { key, ...restProps } = props
|
||||||
|
const col = this.columns.find(col => col.dataIndex === key)
|
||||||
|
if (col) {
|
||||||
|
return (
|
||||||
|
<th {...restProps}>
|
||||||
|
<a-tooltip overlay-class-name="tooltip-style">
|
||||||
|
<template slot="title">{col.title}</template>
|
||||||
|
<div class="table-text">{col.title}</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</th>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<th {...restProps}>{children}</th>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 获取标准状态
|
||||||
|
getStandardStateStyle (row) {
|
||||||
|
let color = ''
|
||||||
|
switch (row.standardState + '') {
|
||||||
|
// 草案
|
||||||
|
case StandardStatus.DRAFT.value:
|
||||||
|
color = '243, 129, 65'
|
||||||
|
break
|
||||||
|
// 征求意见
|
||||||
|
case StandardStatus.SEEK_FOR_OPTIONS.value:
|
||||||
|
color = '129, 206, 94'
|
||||||
|
break
|
||||||
|
// 审查
|
||||||
|
case StandardStatus.EXAMINE.value:
|
||||||
|
color = '255, 98, 98'
|
||||||
|
break
|
||||||
|
// 报批
|
||||||
|
case StandardStatus.APPROVAL.value:
|
||||||
|
color = '48, 175, 255'
|
||||||
|
break
|
||||||
|
// 发布
|
||||||
|
case StandardStatus.RELEASE.value:
|
||||||
|
color = '6, 176, 140'
|
||||||
|
break
|
||||||
|
// 现行有效(外部标准\企标)
|
||||||
|
case StandardStatus.CURRENTLY_EFFECTIVE.value:
|
||||||
|
case EnterpriseStandardStatus.CURRENTLY_EFFECTIVE.value:
|
||||||
|
color = '137, 138, 233'
|
||||||
|
break
|
||||||
|
// 废止(外部标准\企标)
|
||||||
|
case StandardStatus.ABOLISH.value:
|
||||||
|
case EnterpriseStandardStatus.ABOLISH.value:
|
||||||
|
color = '156, 177, 208'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if (color) {
|
||||||
|
return {
|
||||||
|
backgroundColor: `rgba(${color}, 0.1)`,
|
||||||
|
border: `1px solid rgba(${color}, 0.5)`,
|
||||||
|
color: `rgba(${color}, 1)`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {}
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 查看标准分解单
|
* 查看标准分解单
|
||||||
*/
|
*/
|
||||||
@@ -361,7 +440,7 @@ export default {
|
|||||||
this.dataSource = []
|
this.dataSource = []
|
||||||
this.warningTab = value
|
this.warningTab = value
|
||||||
this.showColumns = this.columns.filter(col => col.show ? col.show() : true).map(item => {
|
this.showColumns = this.columns.filter(col => col.show ? col.show() : true).map(item => {
|
||||||
return Object.assign({}, item, { show: undefined })
|
return Object.assign({}, item, { show: undefined, ellipsis: true })
|
||||||
})
|
})
|
||||||
this.loadData(1)
|
this.loadData(1)
|
||||||
},
|
},
|
||||||
@@ -471,7 +550,7 @@ export default {
|
|||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
// 预警容器
|
// 预警容器
|
||||||
.warning-wrapper {
|
.warning-wrapper {
|
||||||
height: calc(100vh - 406px);
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
// tab样式
|
// tab样式
|
||||||
@@ -479,6 +558,7 @@ export default {
|
|||||||
|
|
||||||
/deep/.ant-tabs-bar {
|
/deep/.ant-tabs-bar {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/deep/&.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab {
|
/deep/&.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab {
|
||||||
@@ -513,6 +593,7 @@ export default {
|
|||||||
}
|
}
|
||||||
// 表格样式
|
// 表格样式
|
||||||
.table-warpper {
|
.table-warpper {
|
||||||
|
border-radius: 8px;
|
||||||
// 内容高度 = 该部分整体高度 - tab高度
|
// 内容高度 = 该部分整体高度 - tab高度
|
||||||
height: calc(100% - 44px);
|
height: calc(100% - 44px);
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
@@ -524,6 +605,11 @@ export default {
|
|||||||
|
|
||||||
/deep/ .ant-table-thead > tr > th {
|
/deep/ .ant-table-thead > tr > th {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
|
font-weight: 400;
|
||||||
|
font-family: PingFang SC, PingFang SC, sans-serif;
|
||||||
|
color: #666666;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/deep/ .ant-table-row .ant-table-row-cell-break-word {
|
/deep/ .ant-table-row .ant-table-row-cell-break-word {
|
||||||
@@ -539,7 +625,21 @@ export default {
|
|||||||
}
|
}
|
||||||
@media screen and (max-width: 1366px) {
|
@media screen and (max-width: 1366px) {
|
||||||
.warning-wrapper {
|
.warning-wrapper {
|
||||||
height: calc(100vh - 226px);
|
/deep/ .ant-table-body {
|
||||||
|
max-height: calc(100vh - 345px) !important;
|
||||||
|
}
|
||||||
|
//height: calc(110vh - 550px) !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 标准状态样式
|
||||||
|
.status-style {
|
||||||
|
border-radius: 14px;
|
||||||
|
height: 28px;
|
||||||
|
line-height: 28px;
|
||||||
|
padding: 0 12px;
|
||||||
|
display: inline-block;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-card :bordered="false" class="todo-card">
|
<div class="todo-wrapper">
|
||||||
<a-spin :spinning="loading">
|
<a-spin :spinning="loading">
|
||||||
<div class="top-wrapper">
|
<div class="top-wrapper">
|
||||||
<p class="left-p"><i class="iconfont icon-calendar left-icon"></i>{{ $t('dashboard.todoTask.todoTask') }}</p>
|
<p class="left-p"><i class="iconfont icon-calendar left-icon"></i>{{ $t('dashboard.todoTask.todoTask') }}</p>
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<a-list :data-source="[]" v-else></a-list>
|
<a-list :data-source="[]" v-else></a-list>
|
||||||
</a-spin>
|
</a-spin>
|
||||||
</a-card>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -98,8 +98,10 @@ export default {
|
|||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
@size: 48px;
|
@size: 48px;
|
||||||
.todo-card {
|
.todo-wrapper {
|
||||||
height: calc(100vh - 611px);
|
padding: 24px;
|
||||||
|
background-color: white;
|
||||||
|
|
||||||
/deep/ .ant-spin-container,
|
/deep/ .ant-spin-container,
|
||||||
/deep/ .ant-spin-nested-loading,
|
/deep/ .ant-spin-nested-loading,
|
||||||
/deep/ .ant-card-body {
|
/deep/ .ant-card-body {
|
||||||
@@ -108,7 +110,7 @@ export default {
|
|||||||
}
|
}
|
||||||
.content-wrapper {
|
.content-wrapper {
|
||||||
height: calc(100% - 30px - 12px);
|
height: calc(100% - 30px - 12px);
|
||||||
margin-top: 10px;
|
margin-top: 12px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
|
||||||
.content-item {
|
.content-item {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<a-divider>{{ $t('dashboard.advancedSearch.retrieveCategories') }}</a-divider>
|
<a-divider>{{ $t('dashboard.advancedSearch.retrieveCategories') }}</a-divider>
|
||||||
<div class="filter-area-div" ref="filterArea">
|
<div class="filter-area-div" ref="filterArea">
|
||||||
<a-row :gutter="24" class="filter-row">
|
<a-row :gutter="24" class="filter-row">
|
||||||
<a-col :md="2" class="label-col"><span class="search_label">{{ $t('dashboard.advancedSearch.searchType') }}</span></a-col>
|
<a-col :md="2" class="label-col" :title="$t('dashboard.advancedSearch.searchType')"><span class="search_label">{{ $t('dashboard.advancedSearch.searchType') }}</span></a-col>
|
||||||
<a-col :md="18" class="option-col">
|
<a-col :md="18" class="option-col">
|
||||||
<div v-for="item in standardTypeOptions" :key="item.value" class="option-div" :class="currStandardType === item.value ? 'option-curr' : ''" @click="standardTypeChange(item.value)">
|
<div v-for="item in standardTypeOptions" :key="item.value" class="option-div" :class="currStandardType === item.value ? 'option-curr' : ''" @click="standardTypeChange(item.value)">
|
||||||
{{ item.label }}
|
{{ item.label }}
|
||||||
@@ -31,6 +31,7 @@
|
|||||||
<a-form-item :label="item.dbFieldTxt" :labelCol="labelCol" :wrapperCol="wrapperCol" :colon="false">
|
<a-form-item :label="item.dbFieldTxt" :labelCol="labelCol" :wrapperCol="wrapperCol" :colon="false">
|
||||||
<template v-if="item.fieldShowType === FieldType.TREE.value">
|
<template v-if="item.fieldShowType === FieldType.TREE.value">
|
||||||
<a-tree-select
|
<a-tree-select
|
||||||
|
:replaceFields="getReplaceFields(item.dbFieldName)"
|
||||||
tree-node-filter-prop="title"
|
tree-node-filter-prop="title"
|
||||||
v-model="queryParam[item.dbFieldName]"
|
v-model="queryParam[item.dbFieldName]"
|
||||||
:maxTagCount="1"
|
:maxTagCount="1"
|
||||||
@@ -44,6 +45,7 @@
|
|||||||
<!-- 树形选择器(单选) -->
|
<!-- 树形选择器(单选) -->
|
||||||
<template v-if="item.fieldShowType === FieldType.TREE_SINGLE.value">
|
<template v-if="item.fieldShowType === FieldType.TREE_SINGLE.value">
|
||||||
<a-tree-select
|
<a-tree-select
|
||||||
|
:replaceFields="getReplaceFields(item.dbFieldName)"
|
||||||
tree-node-filter-prop="title"
|
tree-node-filter-prop="title"
|
||||||
v-model="queryParam[item.dbFieldName]"
|
v-model="queryParam[item.dbFieldName]"
|
||||||
:maxTagCount="1"
|
:maxTagCount="1"
|
||||||
@@ -60,14 +62,11 @@
|
|||||||
<a-input :placeholder="$t('pleaseEnter')+item.dbFieldTxt"
|
<a-input :placeholder="$t('pleaseEnter')+item.dbFieldTxt"
|
||||||
v-model="queryParam[item.dbFieldName]"></a-input>
|
v-model="queryParam[item.dbFieldName]"></a-input>
|
||||||
</template>
|
</template>
|
||||||
<!-- 日期区间 -->
|
<!-- 日期区间(条款选择的日期只要单侧) -->
|
||||||
<template v-else-if="[FieldType.DATE_SINGLE.value, FieldType.DATE_MORE.value].includes(item.fieldShowType)">
|
<template v-else-if="[FieldType.DATE_SINGLE.value, FieldType.DATE_MORE.value].includes(item.fieldShowType)">
|
||||||
<j-range-picker v-model="queryParam[item.dbFieldName]"
|
<j-date-picker v-model="queryParam[item.dbFieldName]"
|
||||||
format="YYYY-MM-DD" value-format="YYYY-MM-DD"
|
format="YYYY-MM-DD" value-format="YYYY-MM-DD"
|
||||||
@change="onChange(item.dbFieldName)"></j-range-picker>
|
@change="onChange(item.dbFieldName)"></j-date-picker>
|
||||||
<!--<a-range-picker v-model="queryParam[item.dbFieldName]"-->
|
|
||||||
<!-- format="YYYY-MM-DD" value-format="YYYY-MM-DD"-->
|
|
||||||
<!-- @change="onChange(item.dbFieldName)"></a-range-picker>-->
|
|
||||||
</template>
|
</template>
|
||||||
<!-- 字典单选框 -->
|
<!-- 字典单选框 -->
|
||||||
<template v-else-if="item.fieldShowType === FieldType.OPTION_SINGLE.value">
|
<template v-else-if="item.fieldShowType === FieldType.OPTION_SINGLE.value">
|
||||||
@@ -133,6 +132,7 @@
|
|||||||
:tree-data="optionsData[item.dbFieldName]"
|
:tree-data="optionsData[item.dbFieldName]"
|
||||||
:replaceFields="{key: 'id', value: 'id', title: 'name', children: 'childPartNameList'}"
|
:replaceFields="{key: 'id', value: 'id', title: 'name', children: 'childPartNameList'}"
|
||||||
tree-checkable
|
tree-checkable
|
||||||
|
tree-check-strictly
|
||||||
show-search
|
show-search
|
||||||
allowClear
|
allowClear
|
||||||
:filterTreeNode="filterTreeOption"
|
:filterTreeNode="filterTreeOption"
|
||||||
@@ -244,14 +244,20 @@ import Vue from 'vue'
|
|||||||
import { ACCESS_TOKEN } from '../../../store/mutation-types'
|
import { ACCESS_TOKEN } from '../../../store/mutation-types'
|
||||||
import { previewPdf } from '../../../utils/previewPdf'
|
import { previewPdf } from '../../../utils/previewPdf'
|
||||||
import { kkFilePreview } from '../../../utils/kkFilePreview'
|
import { kkFilePreview } from '../../../utils/kkFilePreview'
|
||||||
import JRangePicker from '@comp/JDatePicker'
|
import JDatePicker from '@comp/JDatePicker'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AdvancedSearch',
|
name: 'AdvancedSearch',
|
||||||
components: { JRangePicker, JTable },
|
components: { JDatePicker, JTable },
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
FieldType,
|
FieldType,
|
||||||
|
// 需要英文状态下翻译下拉的字段
|
||||||
|
dictTextFieldList: [
|
||||||
|
'professional_field', // 全部-专业领域
|
||||||
|
'applicable_market', // 适用市场
|
||||||
|
'domain_area' // 条款-专业领域
|
||||||
|
],
|
||||||
loading: false,
|
loading: false,
|
||||||
toggleSearchStatus: true, // 检索条件的展开和收起,false收缩状态
|
toggleSearchStatus: true, // 检索条件的展开和收起,false收缩状态
|
||||||
currStandardType: '1', // 1外部 3企标 4条款 5全部
|
currStandardType: '1', // 1外部 3企标 4条款 5全部
|
||||||
@@ -385,13 +391,13 @@ export default {
|
|||||||
dataIndex: 'item_content',
|
dataIndex: 'item_content',
|
||||||
scopedSlots: { customRender: 'item_content' }
|
scopedSlots: { customRender: 'item_content' }
|
||||||
},
|
},
|
||||||
{ // 适用零部件
|
// { // 适用零部件
|
||||||
title: this.$t('dashboard.advancedSearch.applicableComponents'),
|
// title: this.$t('dashboard.advancedSearch.applicableComponents'),
|
||||||
align: 'center',
|
// align: 'center',
|
||||||
width: 180,
|
// width: 180,
|
||||||
dataIndex: 'applicable_components',
|
// dataIndex: 'applicable_components',
|
||||||
scopedSlots: { customRender: 'text' }
|
// scopedSlots: { customRender: 'text' }
|
||||||
},
|
// },
|
||||||
{ // 新生产车实施日期
|
{ // 新生产车实施日期
|
||||||
title: this.$t('dashboard.advancedSearch.newProduceVehiclesImplementationDate'),
|
title: this.$t('dashboard.advancedSearch.newProduceVehiclesImplementationDate'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
@@ -417,7 +423,7 @@ export default {
|
|||||||
title: this.$t('dashboard.advancedSearch.keywords'),
|
title: this.$t('dashboard.advancedSearch.keywords'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'keywords',
|
dataIndex: 'part_name_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'text' }
|
||||||
},
|
},
|
||||||
{ // 责任部门
|
{ // 责任部门
|
||||||
@@ -550,6 +556,18 @@ export default {
|
|||||||
this.queryParam.standard_state = this.defaultStandardStatus
|
this.queryParam.standard_state = this.defaultStandardStatus
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
/**
|
||||||
|
* 处理英文下树结构下拉的字段替换
|
||||||
|
* @param field - 字段名
|
||||||
|
*/
|
||||||
|
getReplaceFields (field) {
|
||||||
|
const obj = {}
|
||||||
|
// 数据字典或标签内容管理英文是enTitle
|
||||||
|
if (this.dictTextFieldList.includes(field)) {
|
||||||
|
obj.title = this.isChinese() ? 'title' : 'enTitle'
|
||||||
|
}
|
||||||
|
return obj
|
||||||
|
},
|
||||||
// 导出
|
// 导出
|
||||||
handleExportXls (fileName, fileSuffix = '.xls') {
|
handleExportXls (fileName, fileSuffix = '.xls') {
|
||||||
if (!fileName || typeof fileName !== 'string') {
|
if (!fileName || typeof fileName !== 'string') {
|
||||||
@@ -615,16 +633,17 @@ export default {
|
|||||||
path = '/enterpriseStandardLibrary/enterpriseStandardDetail'
|
path = '/enterpriseStandardLibrary/enterpriseStandardDetail'
|
||||||
} else if (this.currStandardType === '5') {
|
} else if (this.currStandardType === '5') {
|
||||||
// 全部的话,就判断是企标还是外部
|
// 全部的话,就判断是企标还是外部
|
||||||
if (record.resource_type === StandardSource.FOREIGN.value) {
|
if (record.resource_type + '' === StandardSource.FOREIGN.value) {
|
||||||
path = '/standardRegulationLibrary/foreignStandardDetailPage'
|
path = '/standardRegulationLibrary/foreignStandardDetailPage'
|
||||||
} else if (record.resource_type === StandardSource.ENTERPRISE.value) {
|
} else if (record.resource_type + '' === StandardSource.ENTERPRISE.value) {
|
||||||
path = '/enterpriseStandardLibrary/enterpriseStandardDetail'
|
path = '/enterpriseStandardLibrary/enterpriseStandardDetail'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.$openPageNewSheet({
|
this.$openPageNewSheet({
|
||||||
path: path,
|
path: path,
|
||||||
query: {
|
query: {
|
||||||
id: record.id
|
id: record.id,
|
||||||
|
standardNumber: record.standard_number
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -963,6 +982,9 @@ export default {
|
|||||||
.label-col {
|
.label-col {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
color: #86909c;
|
color: #86909c;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
.option-col {
|
.option-col {
|
||||||
width: calc(100% - 200px);
|
width: calc(100% - 200px);
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
<div class="label-col"><span class="search_label">{{ selectOptions[value].label }}</span></div>
|
<div class="label-col"><span class="search_label">{{ selectOptions[value].label }}</span></div>
|
||||||
<div class="option-col">
|
<div class="option-col">
|
||||||
<div v-for="item in selectOptions[value].options" :key="item.itemValue" class="option-div" :class="selectOptions[value].current === item.itemValue ? 'option-curr' : ''" @click="selectOptionsChange(value, item.itemValue)">
|
<div v-for="item in selectOptions[value].options" :key="item.itemValue" class="option-div" :class="selectOptions[value].current === item.itemValue ? 'option-curr' : ''" @click="selectOptionsChange(value, item.itemValue)">
|
||||||
<span>{{ item.itemText }}<span v-if="item.statisticsCount || item.statisticsCount === 0">(<span class="option-span-num">{{ item.statisticsCount }}</span>)</span></span>
|
<span>{{ isChinese() ? item.itemText : item.itemTextEnglish }}<span v-if="item.statisticsCount || item.statisticsCount === 0">(<span class="option-span-num">{{ item.statisticsCount }}</span>)</span></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -330,7 +330,11 @@ export default {
|
|||||||
if (res.result[item]) {
|
if (res.result[item]) {
|
||||||
// 通过key获取对应label
|
// 通过key获取对应label
|
||||||
const label = this.getLabelByKey(item)
|
const label = this.getLabelByKey(item)
|
||||||
res.result[item].unshift({ itemText: this.$t('dashboard.generalSearch.all'), itemValue: 'all' })
|
res.result[item].unshift({
|
||||||
|
itemText: this.$t('dashboard.generalSearch.all'),
|
||||||
|
itemTextEnglish: this.$t('dashboard.generalSearch.all'),
|
||||||
|
itemValue: 'all'
|
||||||
|
})
|
||||||
this.selectOptions[item] = {
|
this.selectOptions[item] = {
|
||||||
options: res.result[item],
|
options: res.result[item],
|
||||||
label: label,
|
label: label,
|
||||||
@@ -908,7 +912,7 @@ export default {
|
|||||||
line-height: 28px;
|
line-height: 28px;
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
max-height: calc(100% - 340px);
|
max-height: calc(100% - 340px);
|
||||||
max-width: 50%;
|
max-width: 30%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
|||||||
@@ -136,7 +136,8 @@ export default {
|
|||||||
{
|
{
|
||||||
title: this.$t('docTool.comparison.oldTextState'),
|
title: this.$t('docTool.comparison.oldTextState'),
|
||||||
width: 150,
|
width: 150,
|
||||||
dataIndex: 'fileTypeLeft_dictText'
|
dataIndex: 'fileTypeLeft_dictText',
|
||||||
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
// 新文档文本号
|
// 新文档文本号
|
||||||
{
|
{
|
||||||
@@ -156,13 +157,15 @@ export default {
|
|||||||
{
|
{
|
||||||
title: this.$t('docTool.comparison.newTextState'),
|
title: this.$t('docTool.comparison.newTextState'),
|
||||||
width: 150,
|
width: 150,
|
||||||
dataIndex: 'fileTypeRight_dictText'
|
dataIndex: 'fileTypeRight_dictText',
|
||||||
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
// 发布情况
|
// 发布情况
|
||||||
{
|
{
|
||||||
title: this.$t('docTool.comparison.releaseSituation'),
|
title: this.$t('docTool.comparison.releaseSituation'),
|
||||||
width: 150,
|
width: 150,
|
||||||
dataIndex: 'releaseState_dictText'
|
dataIndex: 'releaseState_dictText',
|
||||||
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
// 创建人
|
// 创建人
|
||||||
{
|
{
|
||||||
@@ -256,6 +259,11 @@ export default {
|
|||||||
onOk: () => {
|
onOk: () => {
|
||||||
const idList = []
|
const idList = []
|
||||||
const selectionRows = JSON.parse(JSON.stringify(this.selectionRows))
|
const selectionRows = JSON.parse(JSON.stringify(this.selectionRows))
|
||||||
|
// 发布状态不能删除
|
||||||
|
if (selectionRows.some(item => item.releaseState !== 'draft')) {
|
||||||
|
this.$message.warning(this.$t('publishedAndCannotDeleted'))
|
||||||
|
return
|
||||||
|
}
|
||||||
for (let i = 0; i < selectionRows.length; i++) {
|
for (let i = 0; i < selectionRows.length; i++) {
|
||||||
if (selectionRows[i].createBy === this.userInfo.username &&
|
if (selectionRows[i].createBy === this.userInfo.username &&
|
||||||
selectionRows[i].releaseState === 'draft') {
|
selectionRows[i].releaseState === 'draft') {
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ export default {
|
|||||||
queryParamLeft: {},
|
queryParamLeft: {},
|
||||||
ipaginationLeft: {
|
ipaginationLeft: {
|
||||||
current: 1,
|
current: 1,
|
||||||
pageSize: 50,
|
pageSize: 10,
|
||||||
pageSizeOptions: ['10', '50', '100', '150', '200'],
|
pageSizeOptions: ['10', '50', '100', '150', '200'],
|
||||||
showTotal: (total, range) => {
|
showTotal: (total, range) => {
|
||||||
return range[0] + '-' + range[1] + ' ' + this.$t('total') + ' ' + total + ' ' + this.$t('strip')
|
return range[0] + '-' + range[1] + ' ' + this.$t('total') + ' ' + total + ' ' + this.$t('strip')
|
||||||
@@ -182,7 +182,7 @@ export default {
|
|||||||
queryParamRight: {},
|
queryParamRight: {},
|
||||||
ipaginationRight: {
|
ipaginationRight: {
|
||||||
current: 1,
|
current: 1,
|
||||||
pageSize: 50,
|
pageSize: 10,
|
||||||
pageSizeOptions: ['10', '50', '100', '150', '200'],
|
pageSizeOptions: ['10', '50', '100', '150', '200'],
|
||||||
showTotal: (total, range) => {
|
showTotal: (total, range) => {
|
||||||
return range[0] + '-' + range[1] + ' ' + this.$t('total') + ' ' + total + ' ' + this.$t('strip')
|
return range[0] + '-' + range[1] + ' ' + this.$t('total') + ' ' + total + ' ' + this.$t('strip')
|
||||||
@@ -230,7 +230,8 @@ export default {
|
|||||||
title: this.$t('docTool.comparison.textStatus'),
|
title: this.$t('docTool.comparison.textStatus'),
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
dataIndex: 'fileType_dictText',
|
dataIndex: 'fileType_dictText',
|
||||||
width: 100
|
width: 100,
|
||||||
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('fileName'),
|
title: this.$t('fileName'),
|
||||||
@@ -263,7 +264,8 @@ export default {
|
|||||||
title: this.$t('docTool.comparison.textStatus'),
|
title: this.$t('docTool.comparison.textStatus'),
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
dataIndex: 'fileType_dictText',
|
dataIndex: 'fileType_dictText',
|
||||||
width: 100
|
width: 100,
|
||||||
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('fileName'),
|
title: this.$t('fileName'),
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ import '../../../assets/less/common.less'
|
|||||||
import JTable from '../../../components/jero/JTable.vue'
|
import JTable from '../../../components/jero/JTable.vue'
|
||||||
import SplitText from './modules/SplitText.vue'
|
import SplitText from './modules/SplitText.vue'
|
||||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||||
import { releaseSplitStandard, changePermission, withdraw } from '@api/documentToolApi'
|
import { releaseSplitStandard, changePermission, withdraw, checkChangePermission } from '@api/documentToolApi'
|
||||||
import ImportSplitResultModal from './modules/ImportSplitResultModal.vue'
|
import ImportSplitResultModal from './modules/ImportSplitResultModal.vue'
|
||||||
import UserSelectModal from '../../../components/selection/UserSelectModal.vue'
|
import UserSelectModal from '../../../components/selection/UserSelectModal.vue'
|
||||||
import { SplitStatus, StandardSource } from '@/enums/commonEnums'
|
import { SplitStatus, StandardSource } from '@/enums/commonEnums'
|
||||||
@@ -183,7 +183,8 @@ export default {
|
|||||||
{
|
{
|
||||||
dataIndex: 'fileType_dictText',
|
dataIndex: 'fileType_dictText',
|
||||||
title: this.$t('docTool.split.fileStatus'),
|
title: this.$t('docTool.split.fileStatus'),
|
||||||
width: 150
|
width: 150,
|
||||||
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
// 文件名称
|
// 文件名称
|
||||||
{
|
{
|
||||||
@@ -195,7 +196,8 @@ export default {
|
|||||||
{
|
{
|
||||||
dataIndex: 'splitStatus_dictText',
|
dataIndex: 'splitStatus_dictText',
|
||||||
title: this.$t('docTool.split.splitState'),
|
title: this.$t('docTool.split.splitState'),
|
||||||
width: 150
|
width: 150,
|
||||||
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
// 编辑人
|
// 编辑人
|
||||||
{
|
{
|
||||||
@@ -292,6 +294,7 @@ export default {
|
|||||||
query: {
|
query: {
|
||||||
infoId: record.id,
|
infoId: record.id,
|
||||||
infoNumber: record.serialNumber,
|
infoNumber: record.serialNumber,
|
||||||
|
standardClass: record.standardClass,
|
||||||
createBy: record.createBy,
|
createBy: record.createBy,
|
||||||
standardName: record.title
|
standardName: record.title
|
||||||
}
|
}
|
||||||
@@ -327,7 +330,14 @@ export default {
|
|||||||
this.$message.warning(this.$t('selectAtLeastOne'))
|
this.$message.warning(this.$t('selectAtLeastOne'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.$refs.userSelectModal.open()
|
// 校验是否有权限更改
|
||||||
|
checkChangePermission({ ids: this.selectedRowKeys.join(',') }).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$refs.userSelectModal.open()
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
})
|
||||||
},
|
},
|
||||||
continueChangePermission (id) {
|
continueChangePermission (id) {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
|||||||
@@ -48,19 +48,19 @@
|
|||||||
<i class="iconfont icon-shanchu_" />
|
<i class="iconfont icon-shanchu_" />
|
||||||
</a-button>
|
</a-button>
|
||||||
<!--节点上移,是否可以上移在树形数据中应该有字段标识-->
|
<!--节点上移,是否可以上移在树形数据中应该有字段标识-->
|
||||||
<a-button icon="up"
|
<!--<a-button icon="up"-->
|
||||||
v-if="record.pid"
|
<!-- v-if="record.pid"-->
|
||||||
class="tree-operate-node-btn"
|
<!-- class="tree-operate-node-btn"-->
|
||||||
@click.stop="orgMoveUp(record)"
|
<!-- @click.stop="orgMoveUp(record)"-->
|
||||||
v-has="'split:sarFileSplitMenu:moveUp'">
|
<!-- v-has="'split:sarFileSplitMenu:moveUp'">-->
|
||||||
</a-button>
|
<!--</a-button>-->
|
||||||
<!--节点下移,是否可以下移在树形数据中应该有字段标识-->
|
<!--节点下移,是否可以下移在树形数据中应该有字段标识-->
|
||||||
<a-button icon="down"
|
<!--<a-button icon="down"-->
|
||||||
v-if="record.pid"
|
<!-- v-if="record.pid"-->
|
||||||
class="tree-operate-node-btn"
|
<!-- class="tree-operate-node-btn"-->
|
||||||
@click.stop="orgmoveDown(record)"
|
<!-- @click.stop="orgmoveDown(record)"-->
|
||||||
v-has="'split:sarFileSplitMenu:moveDown'">
|
<!-- v-has="'split:sarFileSplitMenu:moveDown'">-->
|
||||||
</a-button>
|
<!--</a-button>-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -243,6 +243,8 @@ export default {
|
|||||||
mixins: [ConfigurableTableMixin],
|
mixins: [ConfigurableTableMixin],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
// 导入的最大大小
|
||||||
|
importMaxSize: 20,
|
||||||
StandardSource,
|
StandardSource,
|
||||||
data: [],
|
data: [],
|
||||||
loading: false, // 提交的加载
|
loading: false, // 提交的加载
|
||||||
@@ -373,7 +375,8 @@ export default {
|
|||||||
this.menuId = this.selectedKeys[0]
|
this.menuId = this.selectedKeys[0]
|
||||||
this.uploadData = {
|
this.uploadData = {
|
||||||
menuId: this.menuId,
|
menuId: this.menuId,
|
||||||
infoId: this.infoId
|
infoId: this.infoId,
|
||||||
|
standardClass: this.$route.query.standardClass
|
||||||
}
|
}
|
||||||
this.filters.info_id = this.infoId
|
this.filters.info_id = this.infoId
|
||||||
this.filters.menu_id = this.menuId
|
this.filters.menu_id = this.menuId
|
||||||
|
|||||||
@@ -17,9 +17,12 @@
|
|||||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('standardSelect.standardNumber')">
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('standardSelect.standardNumber')">
|
||||||
<standard-selection :placeholder="$t('pleaseSelect') + $t('standardSelect.standardNumber')"
|
<standard-selection :placeholder="$t('pleaseSelect') + $t('standardSelect.standardNumber')"
|
||||||
type="radio"
|
type="radio"
|
||||||
|
splitSearch
|
||||||
|
disabledSourceSearch
|
||||||
@nameChange="handleStandardNumberChange"
|
@nameChange="handleStandardNumberChange"
|
||||||
|
@listChange="handleStandardListChange"
|
||||||
:select-only="true"
|
:select-only="true"
|
||||||
:can-selected-source="[StandardSource.FOREIGN.value, StandardSource.ENTERPRISE.value]"
|
:can-selected-source="[StandardSource.FOREIGN.value]"
|
||||||
class="readonly-input"
|
class="readonly-input"
|
||||||
v-decorator="['serialNumber', validatorRules.serialNumber]" />
|
v-decorator="['serialNumber', validatorRules.serialNumber]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -111,6 +114,7 @@ export default {
|
|||||||
validateTrigger: 'change'
|
validateTrigger: 'change'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
standardInfo: {}, // 选择的标准
|
||||||
downTemplateUrl: '/laws/DocumentTool/documentSplit/downloadImportTemplate' // 模板下载
|
downTemplateUrl: '/laws/DocumentTool/documentSplit/downloadImportTemplate' // 模板下载
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -122,8 +126,10 @@ export default {
|
|||||||
this.form.validateFields(async (errors, values) => {
|
this.form.validateFields(async (errors, values) => {
|
||||||
if (!errors) {
|
if (!errors) {
|
||||||
this.confirmLoading = true
|
this.confirmLoading = true
|
||||||
const formData = values
|
const formData = Object.assign({}, values)
|
||||||
const fileInfo = await getFileInfo({ id: formData.splitFileId })
|
const fileInfo = await getFileInfo({ id: formData.splitFileId })
|
||||||
|
formData.standardId = this.standardInfo.id
|
||||||
|
formData.standardClass = this.standardInfo.standardClass
|
||||||
if (fileInfo.success) {
|
if (fileInfo.success) {
|
||||||
formData.fileName = fileInfo.result.fileName
|
formData.fileName = fileInfo.result.fileName
|
||||||
}
|
}
|
||||||
@@ -196,6 +202,9 @@ export default {
|
|||||||
handleStandardNumberChange (name) {
|
handleStandardNumberChange (name) {
|
||||||
this.form.setFieldsValue({ title: name })
|
this.form.setFieldsValue({ title: name })
|
||||||
},
|
},
|
||||||
|
handleStandardListChange (list) {
|
||||||
|
this.standardInfo = list[0] || {}
|
||||||
|
},
|
||||||
// 下载导入模板
|
// 下载导入模板
|
||||||
downTemplate (fileName, fileSuffix = '.xls') {
|
downTemplate (fileName, fileSuffix = '.xls') {
|
||||||
if (!fileName || typeof fileName !== 'string') {
|
if (!fileName || typeof fileName !== 'string') {
|
||||||
|
|||||||
@@ -126,6 +126,7 @@
|
|||||||
<!-- 12, 树选择 -->
|
<!-- 12, 树选择 -->
|
||||||
<s-tree-select
|
<s-tree-select
|
||||||
v-else-if="item.fieldShowType === FieldType.TREE.value"
|
v-else-if="item.fieldShowType === FieldType.TREE.value"
|
||||||
|
:replaceFields="getReplaceFields(item.dbFieldName)"
|
||||||
v-model="formInline[item.dbFieldName]"
|
v-model="formInline[item.dbFieldName]"
|
||||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||||
:tree-data="optionsData[item.dbFieldName]"
|
:tree-data="optionsData[item.dbFieldName]"
|
||||||
@@ -145,24 +146,33 @@
|
|||||||
<!-- 15, 树选择(单选) -->
|
<!-- 15, 树选择(单选) -->
|
||||||
<s-tree-select v-else-if="item.fieldShowType === FieldType.TREE_SINGLE.value"
|
<s-tree-select v-else-if="item.fieldShowType === FieldType.TREE_SINGLE.value"
|
||||||
v-model="formInline[item.dbFieldName]"
|
v-model="formInline[item.dbFieldName]"
|
||||||
|
:replaceFields="getReplaceFields(item.dbFieldName)"
|
||||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
||||||
:tree-data="optionsData[item.dbFieldName]"
|
:tree-data="optionsData[item.dbFieldName]"
|
||||||
:label-in-value="false"
|
:label-in-value="false"
|
||||||
@change="updateDom"
|
@change="updateDom"
|
||||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt + getPlaceholderSuffix(item)" />
|
:placeholder="$t('pleaseSelect')+item.dbFieldTxt + getPlaceholderSuffix(item)" />
|
||||||
<!--16、树形弹框选择-->
|
<!--16、树形弹框选择-->
|
||||||
<tree-selection v-else-if="item.fieldShowType === FieldType.TREE_MODAL_SELECT.value"
|
<!--<tree-selection v-else-if="item.fieldShowType === FieldType.TREE_MODAL_SELECT.value || item.fieldShowType === FieldType.TREE_MODAL_SELECT_SEARCH_DIFF.value"-->
|
||||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt + getPlaceholderSuffix(item)"
|
<!-- :placeholder="$t('pleaseSelect')+item.dbFieldTxt + getPlaceholderSuffix(item)"-->
|
||||||
v-model="formInline[item.dbFieldName]"
|
<!-- v-model="formInline[item.dbFieldName]"-->
|
||||||
:filedName="item.dbFieldName"
|
<!-- :filedName="item.dbFieldName"-->
|
||||||
type="checkbox"
|
<!-- type="checkbox"-->
|
||||||
:options-href="item.fieldHref"
|
<!-- :options-href="item.fieldHref"-->
|
||||||
:nameStr="formInline[item.dbFieldName + '_dictText']"
|
<!-- :nameStr="formInline[item.dbFieldName + '_dictText']"-->
|
||||||
:dict-id="item.dictId"
|
<!-- :dict-id="item.dictId"-->
|
||||||
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
|
<!-- :disabled="disabled || disabledFieldList.includes(item.dbFieldName)"-->
|
||||||
:children-column-name="getTreeSelectionChildrenColumnName(item)"
|
<!-- :children-column-name="getTreeSelectionChildrenColumnName(item)"-->
|
||||||
:is-tag-library-restriction="item.dbFieldName === 'property_tag'"
|
<!-- :is-tag-library-restriction="item.dbFieldName === 'property_tag'"-->
|
||||||
:search-field-name="item.dbFieldName === 'property_tag' ? 'firstNodeName' : null" />
|
<!-- :search-field-name="item.dbFieldName === 'property_tag' ? 'firstNodeName' : null" />-->
|
||||||
|
<tree-data-selection v-else-if="item.fieldShowType === FieldType.TREE_MODAL_SELECT.value || item.fieldShowType === FieldType.TREE_MODAL_SELECT_SEARCH_DIFF.value"
|
||||||
|
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
|
||||||
|
v-model="formInline[item.dbFieldName]"
|
||||||
|
:fieldName="item.dbFieldName"
|
||||||
|
:nameStr="formInline[item.dbFieldName + '_dictText']"
|
||||||
|
@nameChange="treeDataSelectNameChange"
|
||||||
|
:optionsHref="item.treeFirstHref"
|
||||||
|
:dict-id="item.dictId"/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -177,7 +187,7 @@
|
|||||||
<a-button type="primary" icon="plus" ghost @click="handleAddClauseContent(-1)">{{ $t('newlyAdded') }}</a-button>
|
<a-button type="primary" icon="plus" ghost @click="handleAddClauseContent(-1)">{{ $t('newlyAdded') }}</a-button>
|
||||||
</div>
|
</div>
|
||||||
<template v-if="contentList && contentList.length > 0">
|
<template v-if="contentList && contentList.length > 0">
|
||||||
<div class="clause-item" v-for="(clause, index) in contentList" :key="index + 'clause'">
|
<div class="clause-item" v-for="(clause, index) in contentList" :key="clause.uuid || (index + 'clause')">
|
||||||
<div class="clause-item-operate">
|
<div class="clause-item-operate">
|
||||||
<a-button @click="handleAddClauseContent(index)">{{ $t('newlyAdded') }}</a-button>
|
<a-button @click="handleAddClauseContent(index)">{{ $t('newlyAdded') }}</a-button>
|
||||||
<a-button v-if="clause.type === TypeOfClauseItem.TABLE.value" @click="splitEdit(index,clause)">
|
<a-button v-if="clause.type === TypeOfClauseItem.TABLE.value" @click="splitEdit(index,clause)">
|
||||||
@@ -273,12 +283,15 @@ import { getAction } from '../../../../api/manage'
|
|||||||
import { getFormDictTreeList } from '../../../../api/api'
|
import { getFormDictTreeList } from '../../../../api/api'
|
||||||
import STreeSelect from '../../../../components/STreeSelect'
|
import STreeSelect from '../../../../components/STreeSelect'
|
||||||
import TreeSelection from '../../../../components/selection/TreeSelection'
|
import TreeSelection from '../../../../components/selection/TreeSelection'
|
||||||
|
import { randomUUID } from '@/utils/util'
|
||||||
|
import TreeDataSelection from '@comp/selection/TreeDataSelection'
|
||||||
import SplitAddClauseUploadImage from '@comp/splitUpload/SplitAddClauseUploadImage'
|
import SplitAddClauseUploadImage from '@comp/splitUpload/SplitAddClauseUploadImage'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'SplitAddForm',
|
name: 'SplitAddForm',
|
||||||
components: {
|
components: {
|
||||||
SplitAddClauseUploadImage,
|
SplitAddClauseUploadImage,
|
||||||
|
TreeDataSelection,
|
||||||
TreeSelection,
|
TreeSelection,
|
||||||
JMultipleDatePicker,
|
JMultipleDatePicker,
|
||||||
SplitDetailAddTable,
|
SplitDetailAddTable,
|
||||||
@@ -294,6 +307,12 @@ export default {
|
|||||||
hiddenFieldList: ['item_content', 'translation'], // 隐藏的字段
|
hiddenFieldList: ['item_content', 'translation'], // 隐藏的字段
|
||||||
radioDictSelect: [], // 使用radio样式的数据字典单选
|
radioDictSelect: [], // 使用radio样式的数据字典单选
|
||||||
disabledFieldList: [], // 禁用的字段
|
disabledFieldList: [], // 禁用的字段
|
||||||
|
// 需要英文状态下翻译下拉的字段
|
||||||
|
dictTextFieldList: [
|
||||||
|
'professional_field', // 全部-专业领域
|
||||||
|
'applicable_market', // 适用市场
|
||||||
|
'domain_area' // 条款-专业领域
|
||||||
|
],
|
||||||
specialPlaceholder: {}, // 特殊的placeholder
|
specialPlaceholder: {}, // 特殊的placeholder
|
||||||
optionsData: {}, // 通过接口获取的下拉数据
|
optionsData: {}, // 通过接口获取的下拉数据
|
||||||
title: this.$t('newlyAdded'),
|
title: this.$t('newlyAdded'),
|
||||||
@@ -343,6 +362,18 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
/**
|
||||||
|
* 处理英文下树结构下拉的字段替换
|
||||||
|
* @param field - 字段名
|
||||||
|
*/
|
||||||
|
getReplaceFields (field) {
|
||||||
|
const obj = {}
|
||||||
|
// 数据字典或标签内容管理英文是enTitle
|
||||||
|
if (this.dictTextFieldList.includes(field)) {
|
||||||
|
obj.title = this.isChinese() ? 'title' : 'enTitle'
|
||||||
|
}
|
||||||
|
return obj
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 新增
|
* 新增
|
||||||
*/
|
*/
|
||||||
@@ -533,35 +564,45 @@ export default {
|
|||||||
},
|
},
|
||||||
// 增加条款内容成功
|
// 增加条款内容成功
|
||||||
handleAddOk (type, content) {
|
handleAddOk (type, content) {
|
||||||
const headerArr = this.contentList.splice(0, this.addIndex + 1)
|
|
||||||
const footerArr = this.contentList.splice(-this.addIndex)
|
|
||||||
const insertArr = []
|
const insertArr = []
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case TypeOfClauseItem.TEXT.value:
|
case TypeOfClauseItem.TEXT.value:
|
||||||
for (let i = 0; i < content; i++) {
|
for (let i = 0; i < content; i++) {
|
||||||
insertArr.push({
|
insertArr.push({
|
||||||
id: '',
|
id: '',
|
||||||
|
uuid: randomUUID(),
|
||||||
type: TypeOfClauseItem.TEXT.value,
|
type: TypeOfClauseItem.TEXT.value,
|
||||||
[this.currentFieldObj.field]: ''
|
[this.currentFieldObj.field]: ''
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case TypeOfClauseItem.IMG.value:
|
case TypeOfClauseItem.IMG.value:
|
||||||
insertArr[0] = {
|
// 处理上传接口报错的情况
|
||||||
id: '',
|
if (content.imgs) {
|
||||||
type: TypeOfClauseItem.IMG.value,
|
content.imgs.forEach(file => {
|
||||||
[this.currentFieldObj.field]: content.file.response.result.url,
|
insertArr.push({
|
||||||
[this.currentFieldObj.tempUrlField]: window._CONFIG.domianURL + '/sys/split/file/getImage?fileName=' + content.file.response.result.fileName
|
id: '',
|
||||||
|
uuid: randomUUID(),
|
||||||
|
type: TypeOfClauseItem.IMG.value,
|
||||||
|
[this.currentFieldObj.field]: file.response.result.url,
|
||||||
|
[this.currentFieldObj.tempUrlField]: window._CONFIG.domianURL + '/sys/split/file/getImage?fileName=' + file.response.result.fileName
|
||||||
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case TypeOfClauseItem.TABLE.value:
|
case TypeOfClauseItem.TABLE.value:
|
||||||
insertArr[0] = {
|
insertArr[0] = {
|
||||||
id: '',
|
id: '',
|
||||||
|
uuid: randomUUID(),
|
||||||
type: 'TABLE',
|
type: 'TABLE',
|
||||||
[this.currentFieldObj.field]: content[0]
|
[this.currentFieldObj.field]: content[0]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.contentList = [...headerArr, ...insertArr, ...footerArr]
|
if (this.addIndex !== -1) {
|
||||||
|
this.contentList.splice(this.addIndex + 1, 0, ...insertArr)
|
||||||
|
} else {
|
||||||
|
this.contentList.push(...insertArr)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* 译文编辑
|
* 译文编辑
|
||||||
@@ -770,6 +811,9 @@ export default {
|
|||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
},
|
},
|
||||||
|
treeDataSelectNameChange (value, fieldName) {
|
||||||
|
this.formInline[fieldName + '_dictText'] = value
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 如果字段中的usableRange只有一个值,那么就需要在placeholder中标识
|
* 如果字段中的usableRange只有一个值,那么就需要在placeholder中标识
|
||||||
* @param field
|
* @param field
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ export default {
|
|||||||
disabled: false,
|
disabled: false,
|
||||||
titleImg: this.$t('uploadPictures'),
|
titleImg: this.$t('uploadPictures'),
|
||||||
listType: 'picture',
|
listType: 'picture',
|
||||||
accept: '.png,.jpeg,.jpg,.gif',
|
accept: '.png,.jpeg,.jpg',
|
||||||
// 表格行列相关数据
|
// 表格行列相关数据
|
||||||
rowColForm: {},
|
rowColForm: {},
|
||||||
validatorRowColRules: {
|
validatorRowColRules: {
|
||||||
@@ -159,8 +159,11 @@ export default {
|
|||||||
},
|
},
|
||||||
// 上传文件
|
// 上传文件
|
||||||
uploadSuccess (file, data, imgs) {
|
uploadSuccess (file, data, imgs) {
|
||||||
this.$emit('ok', TypeOfClauseItem.IMG.value, { file, data, imgs })
|
// 所有文件都上传完成再去关闭弹框
|
||||||
this.visible = false
|
if (Array.isArray(imgs) && imgs.every(item => item.status === 'done')) {
|
||||||
|
this.$emit('ok', TypeOfClauseItem.IMG.value, { file, data, imgs })
|
||||||
|
this.visible = false
|
||||||
|
}
|
||||||
// this.$emit('addImageOk', file, data, imgs)
|
// this.$emit('addImageOk', file, data, imgs)
|
||||||
},
|
},
|
||||||
// 确定增加的类型
|
// 确定增加的类型
|
||||||
|
|||||||
@@ -146,7 +146,7 @@
|
|||||||
:label-in-value="false"
|
:label-in-value="false"
|
||||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt + getPlaceholderSuffix(item)" />
|
:placeholder="$t('pleaseSelect')+item.dbFieldTxt + getPlaceholderSuffix(item)" />
|
||||||
<!--16、树形弹框选择-->
|
<!--16、树形弹框选择-->
|
||||||
<tree-selection v-else-if="item.fieldShowType === FieldType.TREE_MODAL_SELECT.value"
|
<tree-selection v-else-if="item.fieldShowType === FieldType.TREE_MODAL_SELECT.value || item.fieldShowType === FieldType.TREE_MODAL_SELECT_SEARCH_DIFF.value"
|
||||||
:placeholder="$t('pleaseSelect')+item.dbFieldTxt + getPlaceholderSuffix(item)"
|
:placeholder="$t('pleaseSelect')+item.dbFieldTxt + getPlaceholderSuffix(item)"
|
||||||
v-model="formInline[item.dbFieldName]"
|
v-model="formInline[item.dbFieldName]"
|
||||||
:filedName="item.dbFieldName"
|
:filedName="item.dbFieldName"
|
||||||
|
|||||||
@@ -108,7 +108,8 @@ export default {
|
|||||||
{
|
{
|
||||||
dataIndex: 'origin_dictText',
|
dataIndex: 'origin_dictText',
|
||||||
title: this.$t('docTool.split.dataType'),
|
title: this.$t('docTool.split.dataType'),
|
||||||
width: 150
|
width: 150,
|
||||||
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
// 标准号
|
// 标准号
|
||||||
{
|
{
|
||||||
@@ -126,7 +127,8 @@ export default {
|
|||||||
{
|
{
|
||||||
dataIndex: 'standardFileType_dictText',
|
dataIndex: 'standardFileType_dictText',
|
||||||
title: this.$t('docTool.comparison.textStatus'),
|
title: this.$t('docTool.comparison.textStatus'),
|
||||||
width: 150
|
width: 150,
|
||||||
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
// 附件
|
// 附件
|
||||||
{
|
{
|
||||||
@@ -151,6 +153,20 @@ export default {
|
|||||||
this.loadStandardStructureTree()
|
this.loadStandardStructureTree()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 获取树结构没有被禁用的value值
|
||||||
|
getValuesWhereNotDisabled (tree = []) {
|
||||||
|
const values = []
|
||||||
|
function traverse (node) {
|
||||||
|
if (!node.disabled) { // 只处理 disabled 不为 true 的节点
|
||||||
|
values.push(node.value)
|
||||||
|
}
|
||||||
|
if (node.children && node.children.length > 0) {
|
||||||
|
node.children.forEach(child => traverse(child))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tree.forEach(node => traverse(node))
|
||||||
|
return values
|
||||||
|
},
|
||||||
getQueryParams () {
|
getQueryParams () {
|
||||||
// 获取查询条件
|
// 获取查询条件
|
||||||
const sqp = {}
|
const sqp = {}
|
||||||
@@ -162,17 +178,18 @@ export default {
|
|||||||
param.field = this.getQueryField()
|
param.field = this.getQueryField()
|
||||||
param.pageNo = this.ipagination.current
|
param.pageNo = this.ipagination.current
|
||||||
param.pageSize = this.ipagination.pageSize
|
param.pageSize = this.ipagination.pageSize
|
||||||
if (Array.isArray(param.standardSystem)) {
|
if (Array.isArray(param.standardSystem) && param.standardSystem.length) {
|
||||||
param.standardSystem = param.standardSystem.map(item => item.value).join(',')
|
param.standardSystem = param.standardSystem.map(item => item.value).join(',')
|
||||||
|
} else {
|
||||||
|
param.standardSystem = this.getValuesWhereNotDisabled(this.standardStructureTree).join(',')
|
||||||
}
|
}
|
||||||
return filterObj(param)
|
return filterObj(param)
|
||||||
},
|
},
|
||||||
// 加载标准结构树
|
// 加载标准结构树
|
||||||
loadStandardStructureTree () {
|
loadStandardStructureTree () {
|
||||||
// option 不传显示我的收藏,1不显示我的收藏
|
// option 不传显示我的收藏,1不显示我的收藏, 2只能选二级中国及中国下三级,和欧盟EU
|
||||||
getForeignStandardTree({ option: 1 }).then(res => {
|
getForeignStandardTree({ option: 2 }).then(res => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
console.log(res.result)
|
|
||||||
this.standardStructureTree = res.result || []
|
this.standardStructureTree = res.result || []
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -132,14 +132,14 @@ export default {
|
|||||||
title: this.$t('docTool.ocrTextRecognition.textStatus'),
|
title: this.$t('docTool.ocrTextRecognition.textStatus'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'fileTypeDictText',
|
dataIndex: 'fileType_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 转换结果
|
{ // 转换结果
|
||||||
title: this.$t('docTool.ocrTextRecognition.conversionResults'),
|
title: this.$t('docTool.ocrTextRecognition.conversionResults'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'resultContentDictText',
|
dataIndex: this.isChinese() ? 'resultContent_dictText' : 'resultContent_dictTextEn',
|
||||||
scopedSlots: { customRender: 'tag' }
|
scopedSlots: { customRender: 'tag' }
|
||||||
},
|
},
|
||||||
{ // 消耗时间
|
{ // 消耗时间
|
||||||
|
|||||||
@@ -88,7 +88,8 @@ export default {
|
|||||||
{
|
{
|
||||||
dataIndex: 'origin_dictText',
|
dataIndex: 'origin_dictText',
|
||||||
title: this.$t('docTool.split.dataType'),
|
title: this.$t('docTool.split.dataType'),
|
||||||
width: 150
|
width: 150,
|
||||||
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
// 标准号
|
// 标准号
|
||||||
{
|
{
|
||||||
@@ -106,7 +107,8 @@ export default {
|
|||||||
{
|
{
|
||||||
dataIndex: 'standardFileType_dictText',
|
dataIndex: 'standardFileType_dictText',
|
||||||
title: this.$t('docTool.comparison.textStatus'),
|
title: this.$t('docTool.comparison.textStatus'),
|
||||||
width: 150
|
width: 150,
|
||||||
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
// 附件
|
// 附件
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -526,12 +526,6 @@ export default {
|
|||||||
this.$message.warning(this.$t('selectARecord'))
|
this.$message.warning(this.$t('selectARecord'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
console.log(this.selectionRows)
|
|
||||||
if (this.selectionRows.find(item => !item.editFlag)) {
|
|
||||||
// 有没有查看权限的数据
|
|
||||||
this.$message.warning(this.$t('enterpriseStandardLibrary.standard.disabledBatchDel'))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
const ids = this.selectedRowKeys.join(',')
|
const ids = this.selectedRowKeys.join(',')
|
||||||
this.$confirm({
|
this.$confirm({
|
||||||
title: this.$t('confirmBatchDeletion'),
|
title: this.$t('confirmBatchDeletion'),
|
||||||
|
|||||||
@@ -47,6 +47,18 @@
|
|||||||
type="primary" ghost @click="viewAll(formItem.dbFieldName)">
|
type="primary" ghost @click="viewAll(formItem.dbFieldName)">
|
||||||
{{ $t('enterpriseStandardLibrary.standard.viewAll')}}
|
{{ $t('enterpriseStandardLibrary.standard.viewAll')}}
|
||||||
</a-button>
|
</a-button>
|
||||||
|
<!-- 是需要翻译的也需要双语翻译的,并且不在不需要双语翻译的字段里 -->
|
||||||
|
<span v-else-if="needDictFieldList.includes(formItem.fieldShowType) && needEnNameFieldType.includes(formItem.fieldShowType) && !needEnNameTypeNotUseField.includes(formItem.dbFieldName)">
|
||||||
|
{{
|
||||||
|
detailData[(isChinese() ? formItem.dbFieldName + '_dictText' : formItem.dbFieldName + '_dictTextEn')] || global.emptyLine
|
||||||
|
}}
|
||||||
|
</span>
|
||||||
|
<!-- 是需要翻译的但不需要双语翻译的,或者在需要双语翻译的类型里,但是不需要双语翻译的字段 -->
|
||||||
|
<span v-else-if="needDictFieldList.includes(formItem.fieldShowType) && (!needEnNameFieldType.includes(formItem.fieldShowType) || needEnNameFieldType.includes(formItem.fieldShowType) && needEnNameTypeNotUseField.includes(formItem.dbFieldName))">
|
||||||
|
{{
|
||||||
|
detailData[formItem.dbFieldName + '_dictText'] || global.emptyLine
|
||||||
|
}}
|
||||||
|
</span>
|
||||||
<span v-else-if="detailData[formItem.dbFieldName + '_dictText']">{{ detailData[formItem.dbFieldName + '_dictText'] }}</span>
|
<span v-else-if="detailData[formItem.dbFieldName + '_dictText']">{{ detailData[formItem.dbFieldName + '_dictText'] }}</span>
|
||||||
<!-- 标准适用范围,有标签需要编译 -->
|
<!-- 标准适用范围,有标签需要编译 -->
|
||||||
<span v-else-if="detailData[formItem.dbFieldName] && formItem.dbFieldName === 'standard_scope'" v-html="detailData[formItem.dbFieldName]"></span>
|
<span v-else-if="detailData[formItem.dbFieldName] && formItem.dbFieldName === 'standard_scope'" v-html="detailData[formItem.dbFieldName]"></span>
|
||||||
@@ -89,7 +101,7 @@
|
|||||||
<!-- 稽查内容 -->
|
<!-- 稽查内容 -->
|
||||||
<div class="detail-page-part">
|
<div class="detail-page-part">
|
||||||
<div class="detail-page-part-title">
|
<div class="detail-page-part-title">
|
||||||
<span>稽查内容</span>
|
<span>{{ $t('enterpriseStandardLibrary.standard.auditContent') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="detail-page-part-table">
|
<div class="detail-page-part-table">
|
||||||
<a-table
|
<a-table
|
||||||
@@ -190,7 +202,7 @@ export default {
|
|||||||
dataSource: [], // 稽查内容数据
|
dataSource: [], // 稽查内容数据
|
||||||
image: false,
|
image: false,
|
||||||
imageUrl: '',
|
imageUrl: '',
|
||||||
showViewAllField: ['auth_dept'], // 需要显示展示查看全部按钮的字段
|
showViewAllField: ['part_name'], // 需要显示展示查看全部按钮的字段
|
||||||
// 标准字段,需要跳转标准详情
|
// 标准字段,需要跳转标准详情
|
||||||
standardFields: ['substitute_standard_number', 'replaced_by_standard_number', 'reference_standard', 'referenced_standard'],
|
standardFields: ['substitute_standard_number', 'replaced_by_standard_number', 'reference_standard', 'referenced_standard'],
|
||||||
// 参与只允许查看最新稿件排序的字段顺序(发布稿>征求意见稿)
|
// 参与只允许查看最新稿件排序的字段顺序(发布稿>征求意见稿)
|
||||||
@@ -199,7 +211,13 @@ export default {
|
|||||||
manuScriptNewestFileField: '',
|
manuScriptNewestFileField: '',
|
||||||
filePerm: { // 上传文件根据权限控制只能查看,没有权限的除了系统管理员外不可见不可下载
|
filePerm: { // 上传文件根据权限控制只能查看,没有权限的除了系统管理员外不可见不可下载
|
||||||
associated_file: 'enterpriseStandard:associatedFile:look' // 关联文件
|
associated_file: 'enterpriseStandard:associatedFile:look' // 关联文件
|
||||||
}
|
},
|
||||||
|
// 需要数据字段翻译的属性类型
|
||||||
|
needDictFieldList: [FieldType.USER_SINGLE.value, FieldType.ORGAN_SINGLE.value, FieldType.ORGAN_MORE.value, FieldType.OPTION_SINGLE.value, FieldType.OPTION_MORE.value, FieldType.TREE.value, FieldType.TREE_SINGLE.value],
|
||||||
|
// 需要双语切换翻译的属性类型
|
||||||
|
needEnNameFieldType: [FieldType.OPTION_SINGLE.value, FieldType.OPTION_MORE.value, FieldType.TREE.value, FieldType.TREE_SINGLE.value],
|
||||||
|
// 是双语切换翻译的属性,但是不翻译的字段
|
||||||
|
needEnNameTypeNotUseField: ['standard_system']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -218,12 +236,8 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
fileIsDownload (fieldName) { // 文件是否可下载
|
fileIsDownload (fieldName) { // 文件是否可下载
|
||||||
if (Object.keys(this.filePerm).includes(fieldName)) {
|
if (Object.keys(this.filePerm).includes(fieldName)) {
|
||||||
// 系统管理员可下载
|
// 需要特殊判断的字段不可下载
|
||||||
if (this.isSystemAdmin) {
|
return false
|
||||||
return true
|
|
||||||
} else {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// 不是需要特殊判断的字段正常可下载
|
// 不是需要特殊判断的字段正常可下载
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -51,6 +51,14 @@
|
|||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!--增加数据字典双语翻译的插槽-->
|
||||||
|
<template slot="dictText" slot-scope="text, record, index, column">
|
||||||
|
<a-tooltip overlay-class-name="tooltip-style">
|
||||||
|
<template slot="title">{{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}</template>
|
||||||
|
<div class="table-text">{{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</template>
|
||||||
|
|
||||||
</a-table>
|
</a-table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -125,10 +133,10 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('standardSelect.textState'),
|
title: this.$t('standardSelect.textState'),
|
||||||
dataIndex: 'standardState_dictText',
|
dataIndex: 'esStandardState_dictText',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 120,
|
width: 120,
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
dataList: [],
|
dataList: [],
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<!-- 引用标准可以选国标和外标 -->
|
<!-- 引用标准可以选国标和外标 -->
|
||||||
<add-form ref="addForm"
|
<add-form ref="addForm"
|
||||||
:flag="StandardSource.ENTERPRISE.value"
|
:flag="StandardSource.ENTERPRISE.value"
|
||||||
:defaultValue="{year_number: new Date().getFullYear() + '', try_flag: '0'}"
|
:defaultValue="{year_number: new Date().getFullYear() + ''}"
|
||||||
:disabledFieldList="disabledFieldList"
|
:disabledFieldList="disabledFieldList"
|
||||||
:selectStandardCanUpdateTypeField="['reference_standard']"
|
:selectStandardCanUpdateTypeField="['reference_standard']"
|
||||||
:hiddenFieldList="hiddenFieldList"
|
:hiddenFieldList="hiddenFieldList"
|
||||||
@@ -23,6 +23,7 @@
|
|||||||
:get-form-func="getFormFunc"
|
:get-form-func="getFormFunc"
|
||||||
:get-document-info-func="getDocumentInfoFunc"
|
:get-document-info-func="getDocumentInfoFunc"
|
||||||
:exclude-standard-fields="['substitute_standard_number', 'reference_standard']"
|
:exclude-standard-fields="['substitute_standard_number', 'reference_standard']"
|
||||||
|
:selectStandardValueNeedNameField="['substitute_standard_number', 'reference_standard']"
|
||||||
@submitFormData="submitFormData" />
|
@submitFormData="submitFormData" />
|
||||||
<div class="header-text-btn">
|
<div class="header-text-btn">
|
||||||
<!-- 稽查内容 -->
|
<!-- 稽查内容 -->
|
||||||
@@ -99,7 +100,7 @@ export default {
|
|||||||
StandardSource,
|
StandardSource,
|
||||||
visible: false,
|
visible: false,
|
||||||
title: '',
|
title: '',
|
||||||
width: 800,
|
width: '50%',
|
||||||
// 存储表单的数据
|
// 存储表单的数据
|
||||||
form: {},
|
form: {},
|
||||||
confirmLoading: false,
|
confirmLoading: false,
|
||||||
@@ -251,4 +252,8 @@ export default {
|
|||||||
.check-content-table {
|
.check-content-table {
|
||||||
padding-bottom: 40px;
|
padding-bottom: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/deep/ .ant-drawer-content-wrapper {
|
||||||
|
min-width: 800px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -94,20 +94,6 @@ export default {
|
|||||||
dataIndex: 'releaseDate',
|
dataIndex: 'releaseDate',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'text' }
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: this.$t('personalCenter.collection.newCarTypeDate'),
|
|
||||||
align: 'center',
|
|
||||||
width: 180,
|
|
||||||
dataIndex: 'newModelImplementationDate',
|
|
||||||
scopedSlots: { customRender: 'text' }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: this.$t('personalCenter.collection.productCarDate'),
|
|
||||||
align: 'center',
|
|
||||||
width: 180,
|
|
||||||
dataIndex: 'onTheProductionDate',
|
|
||||||
scopedSlots: { customRender: 'text' }
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: this.$t('personalCenter.collection.standardState'),
|
title: this.$t('personalCenter.collection.standardState'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
|||||||
@@ -117,6 +117,17 @@
|
|||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!-- 条款内容 -->
|
||||||
|
<template slot="item_content" slot-scope="{text, record}">
|
||||||
|
<a class="link-a" v-if="text && !text.replace(/<.*?>/ig, '')" @click="showContent(text,record)">
|
||||||
|
{{ $t('view') }}
|
||||||
|
</a>
|
||||||
|
<div class="table-text" v-else-if="text || text === 0" @click="showContent(text,record)">
|
||||||
|
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
|
||||||
|
</div>
|
||||||
|
<div class="table-text" v-else>{{ global.emptyLine }}</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
<!-- 附件 -->
|
<!-- 附件 -->
|
||||||
<template v-slot:file="{text, record}">
|
<template v-slot:file="{text, record}">
|
||||||
<a v-if="text" class="link-a" @click="handleLookFile(record)">{{ $t('view') }}</a>
|
<a v-if="text" class="link-a" @click="handleLookFile(record)">{{ $t('view') }}</a>
|
||||||
@@ -133,6 +144,8 @@
|
|||||||
<nonmatch-item-look-modal ref="nonmatchItemLookModal"/>
|
<nonmatch-item-look-modal ref="nonmatchItemLookModal"/>
|
||||||
<!-- 文件查看弹框 -->
|
<!-- 文件查看弹框 -->
|
||||||
<upload-file ref="uploadFile" disabled></upload-file>
|
<upload-file ref="uploadFile" disabled></upload-file>
|
||||||
|
<!-- 条款内容 -->
|
||||||
|
<split-clause-detail ref="splitClauseDetail" />
|
||||||
</a-card>
|
</a-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -144,10 +157,11 @@ import NonmatchItemCloseModal from './modules/NonmatchItemCloseModal'
|
|||||||
import NonmatchItemLookModal from './modules/NonmatchItemLookModal'
|
import NonmatchItemLookModal from './modules/NonmatchItemLookModal'
|
||||||
import { queryDepartTreeList } from '../../../api/api'
|
import { queryDepartTreeList } from '../../../api/api'
|
||||||
import UploadFile from '@/components/UploadFile'
|
import UploadFile from '@/components/UploadFile'
|
||||||
|
import SplitClauseDetail from '../../documentTool/documentSplit/modules/SplitClauseDetail'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'NonmatchItemList',
|
name: 'NonmatchItemList',
|
||||||
components: { JTable, NonmatchItemCloseModal, NonmatchItemLookModal, UploadFile },
|
components: { JTable, NonmatchItemCloseModal, NonmatchItemLookModal, UploadFile, SplitClauseDetail },
|
||||||
mixins: [JeroListMixin],
|
mixins: [JeroListMixin],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
@@ -165,7 +179,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'modelStatus_dictText',
|
dataIndex: 'modelStatus_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 标准编号
|
{ // 标准编号
|
||||||
title: this.$t('standardNumber'),
|
title: this.$t('standardNumber'),
|
||||||
@@ -194,7 +208,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'termContent',
|
dataIndex: 'termContent',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'item_content' }
|
||||||
},
|
},
|
||||||
{ // 责任部门
|
{ // 责任部门
|
||||||
title: this.$t('regulatoryComplianceAssessmentDatabase.nonmatchItem.responsibleDepartment'),
|
title: this.$t('regulatoryComplianceAssessmentDatabase.nonmatchItem.responsibleDepartment'),
|
||||||
@@ -215,14 +229,14 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'problemType_dictText',
|
dataIndex: 'problemType_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 整改状态
|
{ // 整改状态
|
||||||
title: this.$t('regulatoryComplianceAssessmentDatabase.nonmatchItem.rectificationState'),
|
title: this.$t('regulatoryComplianceAssessmentDatabase.nonmatchItem.rectificationState'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'rectifyStatus_dictText',
|
dataIndex: 'rectifyStatus_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // PCR编号
|
{ // PCR编号
|
||||||
title: this.$t('regulatoryComplianceAssessmentDatabase.nonmatchItem.pcrNumber'),
|
title: this.$t('regulatoryComplianceAssessmentDatabase.nonmatchItem.pcrNumber'),
|
||||||
@@ -320,6 +334,10 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
// 显示条款内容弹框
|
||||||
|
showContent (val) {
|
||||||
|
this.$refs.splitClauseDetail.open(val)
|
||||||
|
},
|
||||||
// 批量关闭
|
// 批量关闭
|
||||||
batchClose () {
|
batchClose () {
|
||||||
if (this.selectedRowKeys.length <= 0) {
|
if (this.selectedRowKeys.length <= 0) {
|
||||||
|
|||||||
+26
-4
@@ -25,10 +25,22 @@
|
|||||||
<!-- 适用市场 -->
|
<!-- 适用市场 -->
|
||||||
<a-col :md="6" :sm="8">
|
<a-col :md="6" :sm="8">
|
||||||
<a-form-item :label="$t('regulatoryComplianceAssessmentDatabase.assessmentLibrary.applicableMarket')">
|
<a-form-item :label="$t('regulatoryComplianceAssessmentDatabase.assessmentLibrary.applicableMarket')">
|
||||||
<j-multi-select-tag
|
<!-- <j-multi-select-tag-->
|
||||||
:placeholder="$t('pleaseSelect') + $t('regulatoryComplianceAssessmentDatabase.assessmentLibrary.applicableMarket')"
|
<!-- :placeholder="$t('pleaseSelect') + $t('regulatoryComplianceAssessmentDatabase.assessmentLibrary.applicableMarket')"-->
|
||||||
|
<!-- v-model="queryParam.applicableMarket"-->
|
||||||
|
<!-- dict-code="market_state"></j-multi-select-tag>-->
|
||||||
|
<a-tree-select
|
||||||
|
tree-node-filter-prop="title"
|
||||||
v-model="queryParam.applicableMarket"
|
v-model="queryParam.applicableMarket"
|
||||||
dict-code="market_state"></j-multi-select-tag>
|
:maxTagCount="1"
|
||||||
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||||
|
:tree-data="countryOptions"
|
||||||
|
:placeholder="$t('pleaseSelect')+$t('regulatoryComplianceAssessmentDatabase.assessmentLibrary.applicableMarket')"
|
||||||
|
show-search
|
||||||
|
allowClear
|
||||||
|
:replaceFields="{title: isChinese() ? 'title' : 'enTitle'}"
|
||||||
|
:filterTreeNode="filterTreeOption"
|
||||||
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|
||||||
@@ -103,6 +115,7 @@
|
|||||||
import JTable from '@/components/jero/JTable'
|
import JTable from '@/components/jero/JTable'
|
||||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||||
import AssessmentLookModal from './modules/AssessmentLookModal'
|
import AssessmentLookModal from './modules/AssessmentLookModal'
|
||||||
|
import { getFormDictTreeList } from '../../../api/api'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'RegulatoryComplianceAssessmentList',
|
name: 'RegulatoryComplianceAssessmentList',
|
||||||
@@ -110,6 +123,7 @@ export default {
|
|||||||
mixins: [JeroListMixin],
|
mixins: [JeroListMixin],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
countryOptions: [], // 国家下拉选择
|
||||||
columns: [
|
columns: [
|
||||||
{ // 标准编号
|
{ // 标准编号
|
||||||
title: this.$t('standardNumber'),
|
title: this.$t('standardNumber'),
|
||||||
@@ -130,7 +144,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'applicableMarket_dictText',
|
dataIndex: 'applicableMarket_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 评估日期
|
{ // 评估日期
|
||||||
title: this.$t('regulatoryComplianceAssessmentDatabase.assessmentLibrary.dateOfEvaluation'),
|
title: this.$t('regulatoryComplianceAssessmentDatabase.assessmentLibrary.dateOfEvaluation'),
|
||||||
@@ -164,6 +178,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
|
this.getCountryOption()
|
||||||
// 标准主计划跳转进来携带标准+适用市场
|
// 标准主计划跳转进来携带标准+适用市场
|
||||||
this.$set(this.queryParam, 'applicableMarket', this.$route.query.applicableMarket)
|
this.$set(this.queryParam, 'applicableMarket', this.$route.query.applicableMarket)
|
||||||
this.$set(this.queryParam, 'standardName', this.$route.query.standardName)
|
this.$set(this.queryParam, 'standardName', this.$route.query.standardName)
|
||||||
@@ -171,6 +186,13 @@ export default {
|
|||||||
this.loadData()
|
this.loadData()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getCountryOption () {
|
||||||
|
getFormDictTreeList({ dictId: '1801130851452059649' }).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.countryOptions = res.result
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
toDetail (record) {
|
toDetail (record) {
|
||||||
const path = '/standardRegulationLibrary/foreignStandardDetailPage'
|
const path = '/standardRegulationLibrary/foreignStandardDetailPage'
|
||||||
this.$openPageNewSheet({
|
this.$openPageNewSheet({
|
||||||
|
|||||||
+45
-6
@@ -6,7 +6,9 @@
|
|||||||
:closable="true"
|
:closable="true"
|
||||||
switchFullscreen
|
switchFullscreen
|
||||||
:footer="false"
|
:footer="false"
|
||||||
|
:class="isFullScreen ? 'full-screen-modal' : ''"
|
||||||
@cancel="handleCancel"
|
@cancel="handleCancel"
|
||||||
|
@update:fullscreen="updataFullScreen"
|
||||||
:visible="visible">
|
:visible="visible">
|
||||||
|
|
||||||
<div class="table-page-search-wrapper">
|
<div class="table-page-search-wrapper">
|
||||||
@@ -80,9 +82,28 @@
|
|||||||
:dataSource="dataSource"
|
:dataSource="dataSource"
|
||||||
:pagination="ipagination"
|
:pagination="ipagination"
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
:scroll="{x: '100%', y: 'calc(100vh - 500px)'}"
|
:scroll="{x: '100%', y: isFullScreen ? 'calc(100vh - 330px)' : 'calc(100vh - 500px)'}"
|
||||||
@change="handleTableChange">
|
@change="handleTableChange">
|
||||||
|
|
||||||
|
<!--增加数据字典双语翻译的插槽-->
|
||||||
|
<template slot="dictText" slot-scope="text, record, index, column">
|
||||||
|
<a-tooltip overlay-class-name="tooltip-style">
|
||||||
|
<template slot="title">{{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}</template>
|
||||||
|
<div class="table-text">{{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 条款内容 -->
|
||||||
|
<template slot="item_content" slot-scope="text, record">
|
||||||
|
<a class="link-a" v-if="text && !text.replace(/<.*?>/ig, '')" @click="showContent(text,record)">
|
||||||
|
{{ $t('view') }}
|
||||||
|
</a>
|
||||||
|
<div class="table-text" v-else-if="text || text === 0" @click="showContent(text,record)">
|
||||||
|
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
|
||||||
|
</div>
|
||||||
|
<div class="table-text" v-else>{{ global.emptyLine }}</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
<template slot="text" slot-scope="text">
|
<template slot="text" slot-scope="text">
|
||||||
<a-tooltip overlay-class-name="tooltip-style">
|
<a-tooltip overlay-class-name="tooltip-style">
|
||||||
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
|
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
|
||||||
@@ -99,6 +120,8 @@
|
|||||||
|
|
||||||
<!-- 文件列表查看 -->
|
<!-- 文件列表查看 -->
|
||||||
<upload-file ref="uploadFile" disabled></upload-file>
|
<upload-file ref="uploadFile" disabled></upload-file>
|
||||||
|
<!-- 条款内容 -->
|
||||||
|
<split-clause-detail ref="splitClauseDetail" />
|
||||||
|
|
||||||
</j-modal>
|
</j-modal>
|
||||||
</template>
|
</template>
|
||||||
@@ -107,10 +130,11 @@
|
|||||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||||
import { queryDepartTreeList } from '../../../../api/api'
|
import { queryDepartTreeList } from '../../../../api/api'
|
||||||
import UploadFile from '@/components/UploadFile'
|
import UploadFile from '@/components/UploadFile'
|
||||||
|
import SplitClauseDetail from '../../../documentTool/documentSplit/modules/SplitClauseDetail'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AssessmentLookModal',
|
name: 'AssessmentLookModal',
|
||||||
components: { UploadFile },
|
components: { UploadFile, SplitClauseDetail },
|
||||||
mixins: [JeroListMixin],
|
mixins: [JeroListMixin],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
@@ -140,7 +164,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'termContent',
|
dataIndex: 'termContent',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'item_content' }
|
||||||
},
|
},
|
||||||
{ // 车型
|
{ // 车型
|
||||||
title: this.$t('regulatoryComplianceAssessmentDatabase.assessmentLibrary.vehicleType'),
|
title: this.$t('regulatoryComplianceAssessmentDatabase.assessmentLibrary.vehicleType'),
|
||||||
@@ -154,7 +178,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'modelStatus_dictText',
|
dataIndex: 'modelStatus_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 责任部门
|
{ // 责任部门
|
||||||
title: this.$t('regulatoryComplianceAssessmentDatabase.assessmentLibrary.responsibleDepartment'),
|
title: this.$t('regulatoryComplianceAssessmentDatabase.assessmentLibrary.responsibleDepartment'),
|
||||||
@@ -175,7 +199,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'result_dictText',
|
dataIndex: 'result_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 不满足要求的现状
|
{ // 不满足要求的现状
|
||||||
title: this.$t('regulatoryComplianceAssessmentDatabase.assessmentLibrary.theStatusNotMeetRequirements'),
|
title: this.$t('regulatoryComplianceAssessmentDatabase.assessmentLibrary.theStatusNotMeetRequirements'),
|
||||||
@@ -239,7 +263,8 @@ export default {
|
|||||||
},
|
},
|
||||||
disableMixinCreated: true,
|
disableMixinCreated: true,
|
||||||
image: false,
|
image: false,
|
||||||
imageUrl: ''
|
imageUrl: '',
|
||||||
|
isFullScreen: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
@@ -261,6 +286,14 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
// 全屏切换
|
||||||
|
updataFullScreen (value) {
|
||||||
|
this.isFullScreen = value
|
||||||
|
},
|
||||||
|
// 显示条款内容弹框
|
||||||
|
showContent (val) {
|
||||||
|
this.$refs.splitClauseDetail.open(val)
|
||||||
|
},
|
||||||
filterTreeOption (input, option) {
|
filterTreeOption (input, option) {
|
||||||
const text = option.componentOptions.propsData.title || option.componentOptions.propsData.label
|
const text = option.componentOptions.propsData.title || option.componentOptions.propsData.label
|
||||||
return text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
return text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
@@ -294,4 +327,10 @@ export default {
|
|||||||
/deep/ .ant-form-item-label {
|
/deep/ .ant-form-item-label {
|
||||||
min-width: 70px !important;
|
min-width: 70px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.full-screen-modal {
|
||||||
|
/deep/ .ant-modal-body {
|
||||||
|
height: calc(100% - 55px) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -106,19 +106,19 @@ export default {
|
|||||||
form: this.$form.createForm(this),
|
form: this.$form.createForm(this),
|
||||||
labelCol: {
|
labelCol: {
|
||||||
xs: { span: 24 },
|
xs: { span: 24 },
|
||||||
sm: { span: 4 }
|
sm: { span: 6 }
|
||||||
},
|
},
|
||||||
wrapperCol: {
|
wrapperCol: {
|
||||||
xs: { span: 24 },
|
xs: { span: 24 },
|
||||||
sm: { span: 18 }
|
sm: { span: 16 }
|
||||||
},
|
},
|
||||||
lineLabelCol: {
|
lineLabelCol: {
|
||||||
xs: { span: 24 },
|
xs: { span: 24 },
|
||||||
sm: { span: 2 }
|
sm: { span: 3 }
|
||||||
},
|
},
|
||||||
lineWrapperCol: {
|
lineWrapperCol: {
|
||||||
xs: { span: 24 },
|
xs: { span: 24 },
|
||||||
sm: { span: 21 }
|
sm: { span: 20 }
|
||||||
},
|
},
|
||||||
ueContent: '',
|
ueContent: '',
|
||||||
// UE编辑器配置
|
// UE编辑器配置
|
||||||
@@ -369,5 +369,13 @@ export default {
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
padding: 32px 0;
|
padding: 32px 0;
|
||||||
|
|
||||||
|
/deep/ .ant-form-item-label {
|
||||||
|
margin-right: 10px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -121,7 +121,8 @@ export default {
|
|||||||
{
|
{
|
||||||
dataIndex: 'dynamicClassification_dictText',
|
dataIndex: 'dynamicClassification_dictText',
|
||||||
title: this.$t('standardRegulationLibrary.dynamicMessage.dynamicCataloging'),
|
title: this.$t('standardRegulationLibrary.dynamicMessage.dynamicCataloging'),
|
||||||
width: 150
|
width: 150,
|
||||||
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
// 来源
|
// 来源
|
||||||
{
|
{
|
||||||
@@ -139,7 +140,8 @@ export default {
|
|||||||
{
|
{
|
||||||
dataIndex: 'releaseStatus_dictText',
|
dataIndex: 'releaseStatus_dictText',
|
||||||
title: this.$t('standardRegulationLibrary.dynamicMessage.releaseStatus'),
|
title: this.$t('standardRegulationLibrary.dynamicMessage.releaseStatus'),
|
||||||
width: 150
|
width: 150,
|
||||||
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
// 发布时间
|
// 发布时间
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -536,6 +536,8 @@ export default {
|
|||||||
this.ipagination.current -= 1
|
this.ipagination.current -= 1
|
||||||
}
|
}
|
||||||
this.loadData()
|
this.loadData()
|
||||||
|
// 清空列表选中
|
||||||
|
this.onClearSelected()
|
||||||
} else {
|
} else {
|
||||||
this.$message.warn(res.message)
|
this.$message.warn(res.message)
|
||||||
}
|
}
|
||||||
@@ -563,6 +565,7 @@ export default {
|
|||||||
this.searchParams = Object.assign({}, params)
|
this.searchParams = Object.assign({}, params)
|
||||||
this.selectedRowKeys = []
|
this.selectedRowKeys = []
|
||||||
this.selectedTreeKeys = []
|
this.selectedTreeKeys = []
|
||||||
|
this.selectedTreeNodeCodes = []
|
||||||
delete this.filters.nodeCode
|
delete this.filters.nodeCode
|
||||||
this.getTableHeader()
|
this.getTableHeader()
|
||||||
this.loadData()
|
this.loadData()
|
||||||
|
|||||||
+24
-8
@@ -9,7 +9,7 @@
|
|||||||
<!-- 过程稿件显示展开收起 -->
|
<!-- 过程稿件显示展开收起 -->
|
||||||
<div v-if="part === DisplayAreaManagement.PROCESS_DOCUMENTATION.text || part === DisplayAreaManagement.PROCESS_DOCUMENTATION.textEn" class="retractable-btn" @click="handleChangeRetractable(index)">
|
<div v-if="part === DisplayAreaManagement.PROCESS_DOCUMENTATION.text || part === DisplayAreaManagement.PROCESS_DOCUMENTATION.textEn" class="retractable-btn" @click="handleChangeRetractable(index)">
|
||||||
<i class="iconfont " :class="retractableFlag[index] ? 'icon-nav-top' : 'icon-nav-bottom'" />
|
<i class="iconfont " :class="retractableFlag[index] ? 'icon-nav-top' : 'icon-nav-bottom'" />
|
||||||
{{ retractableFlag[index] ? '收起' : '展开' }}
|
{{ retractableFlag[index] ? $t('putAway') : $t('open') }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="detail-page-part-form" v-if="part !== DisplayAreaManagement.PROCESS_DOCUMENTATION.text && part !== DisplayAreaManagement.PROCESS_DOCUMENTATION.textEn">
|
<div class="detail-page-part-form" v-if="part !== DisplayAreaManagement.PROCESS_DOCUMENTATION.text && part !== DisplayAreaManagement.PROCESS_DOCUMENTATION.textEn">
|
||||||
@@ -54,21 +54,33 @@
|
|||||||
<span v-else>{{ global.emptyLine }}</span>
|
<span v-else>{{ global.emptyLine }}</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- 需要显示查看全部按钮 -->
|
<!-- 需要显示查看全部按钮 -->
|
||||||
<a v-else-if="showViewAllField.includes(formItem.dbFieldName) &&
|
<a-button v-else-if="showViewAllField.includes(formItem.dbFieldName) &&
|
||||||
(detailData[formItem.dbFieldName + '_dictText'] || detailData[formItem.dbFieldName])"
|
(detailData[formItem.dbFieldName + '_dictText'] || detailData[formItem.dbFieldName])"
|
||||||
@click="viewAll(formItem.dbFieldName)">
|
type="primary" ghost @click="viewAll(formItem.dbFieldName)">
|
||||||
{{ $t('enterpriseStandardLibrary.standard.viewAll')}}
|
{{ $t('enterpriseStandardLibrary.standard.viewAll')}}
|
||||||
</a>
|
</a-button>
|
||||||
|
<!-- 是需要翻译的也需要双语翻译的,并且不在不需要双语翻译的字段里 -->
|
||||||
|
<span v-else-if="needDictFieldList.includes(formItem.fieldShowType) && needEnNameFieldType.includes(formItem.fieldShowType) && !needEnNameTypeNotUseField.includes(formItem.dbFieldName)">
|
||||||
|
{{
|
||||||
|
detailData[(isChinese() ? formItem.dbFieldName + '_dictText' : formItem.dbFieldName + '_dictTextEn')] || global.emptyLine
|
||||||
|
}}
|
||||||
|
</span>
|
||||||
|
<!-- 是需要翻译的但不需要双语翻译的,或者在需要双语翻译的类型里,但是不需要双语翻译的字段 -->
|
||||||
|
<span v-else-if="needDictFieldList.includes(formItem.fieldShowType) && (!needEnNameFieldType.includes(formItem.fieldShowType) || needEnNameFieldType.includes(formItem.fieldShowType) && needEnNameTypeNotUseField.includes(formItem.dbFieldName))">
|
||||||
|
{{
|
||||||
|
detailData[formItem.dbFieldName + '_dictText'] || global.emptyLine
|
||||||
|
}}
|
||||||
|
</span>
|
||||||
<span v-else>
|
<span v-else>
|
||||||
{{
|
{{
|
||||||
detailData[needDictFieldList.includes(formItem.fieldShowType) ? formItem.dbFieldName + '_dictText' : formItem.dbFieldName] || global.emptyLine
|
detailData[formItem.dbFieldName] || global.emptyLine
|
||||||
}}
|
}}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 过程稿件特殊处理-->
|
<!-- 过程稿件特殊处理-->
|
||||||
<div class="detail-page-process-manuscript" v-if="part === DisplayAreaManagement.PROCESS_DOCUMENTATION.text || part === DisplayAreaManagement.PROCESS_DOCUMENTATION.textEn" v-show="retractableFlag[index]">
|
<div class="detail-page-process-manuscript" v-if="part === DisplayAreaManagement.PROCESS_DOCUMENTATION.text || part === DisplayAreaManagement.PROCESS_DOCUMENTATION.textEn">
|
||||||
<div class="detail-page-process-manuscript-item" v-for="formItem in form[part]" :key="formItem.id">
|
<div class="detail-page-process-manuscript-item" v-for="formItem in (retractableFlag[index] ? form[part] : [form[part][0]])" :key="formItem.id">
|
||||||
<div class="detail-page-process-manuscript-title">
|
<div class="detail-page-process-manuscript-title">
|
||||||
<span>{{ formItem.dbFieldTxt }}</span>
|
<span>{{ formItem.dbFieldTxt }}</span>
|
||||||
<!-- 标准解读-->
|
<!-- 标准解读-->
|
||||||
@@ -180,6 +192,10 @@ export default {
|
|||||||
retractableFlag: {}, // 面板展开收起的标识
|
retractableFlag: {}, // 面板展开收起的标识
|
||||||
// 业务基本信息有几个部分
|
// 业务基本信息有几个部分
|
||||||
formPartList: [],
|
formPartList: [],
|
||||||
|
// 需要双语切换翻译的属性类型
|
||||||
|
needEnNameFieldType: [FieldType.OPTION_SINGLE.value, FieldType.OPTION_MORE.value, FieldType.TREE.value, FieldType.TREE_SINGLE.value],
|
||||||
|
// 是双语切换翻译的属性,但是不翻译的字段
|
||||||
|
needEnNameTypeNotUseField: ['standard_system']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -310,7 +326,7 @@ export default {
|
|||||||
},
|
},
|
||||||
// 查看全部
|
// 查看全部
|
||||||
viewAll (fieldName) {
|
viewAll (fieldName) {
|
||||||
const data = this.detailData[fieldName + '_dictText'] || this.detailData[fieldName]
|
const data = this.isChinese() ? this.detailData[fieldName + '_dictText'] : this.detailData[fieldName + '_dictTextEn'] || this.detailData[fieldName]
|
||||||
this.$refs.textContentModal.open(data)
|
this.$refs.textContentModal.open(data)
|
||||||
},
|
},
|
||||||
handlePreview (file, formItem) {
|
handlePreview (file, formItem) {
|
||||||
|
|||||||
+2
-1
@@ -22,6 +22,7 @@
|
|||||||
:open-selected-all-field-list="openSelectedAllFieldList"
|
:open-selected-all-field-list="openSelectedAllFieldList"
|
||||||
:exclude-standard-fields="excludeStandardFields"
|
:exclude-standard-fields="excludeStandardFields"
|
||||||
:flag-by-field="{associated_enterprise_standard: StandardSource.ENTERPRISE.value, associated_standard: StandardSource.FOREIGN.value}"
|
:flag-by-field="{associated_enterprise_standard: StandardSource.ENTERPRISE.value, associated_standard: StandardSource.FOREIGN.value}"
|
||||||
|
:selectStandardValueNeedNameField="['substitute_standard_number', 'reference_standard']"
|
||||||
@submitFormData="submitFormData" />
|
@submitFormData="submitFormData" />
|
||||||
</a-spin>
|
</a-spin>
|
||||||
</div>
|
</div>
|
||||||
@@ -118,7 +119,7 @@ export default {
|
|||||||
}
|
}
|
||||||
submitFunc(formInline).then((res) => {
|
submitFunc(formInline).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.$message.success(res.message)
|
this.$message.success(this.$t('operationSuccessful'))
|
||||||
this.$emit('ok')
|
this.$emit('ok')
|
||||||
this.close()
|
this.close()
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+10
-2
@@ -48,6 +48,14 @@
|
|||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!--增加数据字典双语翻译的插槽-->
|
||||||
|
<template slot="dictText" slot-scope="text, record, index, column">
|
||||||
|
<a-tooltip overlay-class-name="tooltip-style">
|
||||||
|
<template slot="title">{{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}</template>
|
||||||
|
<div class="table-text">{{ (isChinese() ? text : record[column.key + 'En']) || (isChinese() ? text : record[column.key + 'En']) === 0 ? (isChinese() ? text : record[column.key + 'En']) : global.emptyLine }}</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</template>
|
||||||
|
|
||||||
<template slot="text" slot-scope="text">
|
<template slot="text" slot-scope="text">
|
||||||
<a-tooltip overlay-class-name="tooltip-style">
|
<a-tooltip overlay-class-name="tooltip-style">
|
||||||
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
|
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
|
||||||
@@ -143,7 +151,7 @@ export default {
|
|||||||
dataIndex: 'standardState_dictText',
|
dataIndex: 'standardState_dictText',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 120,
|
width: 120,
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
dataList: [],
|
dataList: [],
|
||||||
@@ -219,7 +227,7 @@ export default {
|
|||||||
*/
|
*/
|
||||||
toDetailPage ({ id }) {
|
toDetailPage ({ id }) {
|
||||||
this.$openPageNewSheet({
|
this.$openPageNewSheet({
|
||||||
path: '/standardRegulationLibrary/ForeignStandardDetail',
|
path: '/standardRegulationLibrary/foreignStandardDetailPage',
|
||||||
query: {
|
query: {
|
||||||
id
|
id
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-14
@@ -10,7 +10,7 @@
|
|||||||
<!-- 国家/地区 -->
|
<!-- 国家/地区 -->
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<label>{{ $t('standardRegulationLibrary.marketRegulationsList.countryRegion') }}</label>
|
<label>{{ $t('standardRegulationLibrary.marketRegulationsList.countryRegion') }}</label>
|
||||||
<span>{{ model.country_dictText || global.emptyLine }}</span>
|
<span>{{ (isChinese() ? model.country_dictText : model.country_dictTextEn) || global.emptyLine }}</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
<!-- 清单编号 -->
|
<!-- 清单编号 -->
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
@@ -25,12 +25,12 @@
|
|||||||
<!-- 驾驶位置 -->
|
<!-- 驾驶位置 -->
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<label>{{ $t('standardRegulationLibrary.marketRegulationsList.drivingPosition') }}</label>
|
<label>{{ $t('standardRegulationLibrary.marketRegulationsList.drivingPosition') }}</label>
|
||||||
<span>{{ model.drivePosition_dictText || global.emptyLine }}</span>
|
<span>{{ (isChinese() ? model.drivePosition_dictText : model.drivePosition_dictTextEn) || global.emptyLine }}</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
<!-- 密级 -->
|
<!-- 密级 -->
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<label>{{ $t('standardRegulationLibrary.marketRegulationsList.securityClass') }}</label>
|
<label>{{ $t('standardRegulationLibrary.marketRegulationsList.securityClass') }}</label>
|
||||||
<span>{{ model.securityLevel_dictText || global.emptyLine }}</span>
|
<span>{{ (isChinese() ? model.securityLevel_dictText : model.securityLevel_dictTextEn) || global.emptyLine }}</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
<!-- 清单说明 -->
|
<!-- 清单说明 -->
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
@@ -247,21 +247,21 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'country_dictText',
|
dataIndex: 'country_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 适用车型
|
{ // 适用车型
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.applicableVehicleType'),
|
title: this.$t('standardRegulationLibrary.marketListField.applicableVehicleType'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'applicableVehicle_dictText',
|
dataIndex: 'applicableVehicle_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 认证对象
|
{ // 认证对象
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.authenticationObject'),
|
title: this.$t('standardRegulationLibrary.marketListField.authenticationObject'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'authenticationObject_dictText',
|
dataIndex: 'authenticationObject_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 认证交付物
|
{ // 认证交付物
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.certifiedDeliverables'),
|
title: this.$t('standardRegulationLibrary.marketListField.certifiedDeliverables'),
|
||||||
@@ -275,14 +275,14 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'type_dictText',
|
dataIndex: 'type_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 动力类型
|
{ // 动力类型
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.dynamicType'),
|
title: this.$t('standardRegulationLibrary.marketListField.dynamicType'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'dynamicType_dictText',
|
dataIndex: 'dynamicType_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 主控部门
|
{ // 主控部门
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.mainControlDepartment'),
|
title: this.$t('standardRegulationLibrary.marketListField.mainControlDepartment'),
|
||||||
@@ -296,7 +296,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'mainDeptProfMode_dictText',
|
dataIndex: 'mainDeptProfMode_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 关联部门
|
{ // 关联部门
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.relatedDepartment'),
|
title: this.$t('standardRegulationLibrary.marketListField.relatedDepartment'),
|
||||||
@@ -310,31 +310,31 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'associateDeptProfMode_dictText',
|
dataIndex: 'associateDeptProfMode_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 批量限制
|
{ // 批量限制
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.batchRestriction'),
|
title: this.$t('standardRegulationLibrary.marketListField.batchRestriction'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'batchLimit_dictText',
|
dataIndex: 'batchLimit_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 自动驾驶等级
|
{ // 自动驾驶等级
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.automaticDrivingLevel'),
|
title: this.$t('standardRegulationLibrary.marketListField.automaticDrivingLevel'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'autopilotLevel_dictText',
|
dataIndex: 'autopilotLevel_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 要求类型
|
{ // 要求类型
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.requirementType'),
|
title: this.$t('standardRegulationLibrary.marketListField.requirementType'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'requireType_dictText',
|
dataIndex: 'requireType_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 备注
|
{ // 备注
|
||||||
title: this.$t('remarks'),
|
title: this.$t('standardRegulationLibrary.marketListField.remarks'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'remark',
|
dataIndex: 'remark',
|
||||||
|
|||||||
+12
-11
@@ -19,6 +19,7 @@
|
|||||||
:tree-data="countryOptions"
|
:tree-data="countryOptions"
|
||||||
tree-checkable
|
tree-checkable
|
||||||
treeCheckStrictly
|
treeCheckStrictly
|
||||||
|
:replaceFields="{title: isChinese() ? 'title' : 'enTitle'}"
|
||||||
@change="countryChange"
|
@change="countryChange"
|
||||||
:placeholder="$t('pleaseSelect')+$t('standardRegulationLibrary.marketRegulationsList.countryRegion')" />
|
:placeholder="$t('pleaseSelect')+$t('standardRegulationLibrary.marketRegulationsList.countryRegion')" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -365,21 +366,21 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'country_dictText',
|
dataIndex: 'country_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 适用车型
|
{ // 适用车型
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.applicableVehicleType'),
|
title: this.$t('standardRegulationLibrary.marketListField.applicableVehicleType'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'applicableVehicle_dictText',
|
dataIndex: 'applicableVehicle_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 认证对象
|
{ // 认证对象
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.authenticationObject'),
|
title: this.$t('standardRegulationLibrary.marketListField.authenticationObject'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'authenticationObject_dictText',
|
dataIndex: 'authenticationObject_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 认证交付物
|
{ // 认证交付物
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.certifiedDeliverables'),
|
title: this.$t('standardRegulationLibrary.marketListField.certifiedDeliverables'),
|
||||||
@@ -393,14 +394,14 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'type_dictText',
|
dataIndex: 'type_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 动力类型
|
{ // 动力类型
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.dynamicType'),
|
title: this.$t('standardRegulationLibrary.marketListField.dynamicType'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'dynamicType_dictText',
|
dataIndex: 'dynamicType_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 主控部门
|
{ // 主控部门
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.mainControlDepartment'),
|
title: this.$t('standardRegulationLibrary.marketListField.mainControlDepartment'),
|
||||||
@@ -414,7 +415,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'mainDeptProfMode_dictText',
|
dataIndex: 'mainDeptProfMode_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 关联部门
|
{ // 关联部门
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.relatedDepartment'),
|
title: this.$t('standardRegulationLibrary.marketListField.relatedDepartment'),
|
||||||
@@ -428,31 +429,31 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'associateDeptProfMode_dictText',
|
dataIndex: 'associateDeptProfMode_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 批量限制
|
{ // 批量限制
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.batchRestriction'),
|
title: this.$t('standardRegulationLibrary.marketListField.batchRestriction'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'batchLimit_dictText',
|
dataIndex: 'batchLimit_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 自动驾驶等级
|
{ // 自动驾驶等级
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.automaticDrivingLevel'),
|
title: this.$t('standardRegulationLibrary.marketListField.automaticDrivingLevel'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'autopilotLevel_dictText',
|
dataIndex: 'autopilotLevel_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 要求类型
|
{ // 要求类型
|
||||||
title: this.$t('standardRegulationLibrary.marketListField.requirementType'),
|
title: this.$t('standardRegulationLibrary.marketListField.requirementType'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'requireType_dictText',
|
dataIndex: 'requireType_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 备注
|
{ // 备注
|
||||||
title: this.$t('remarks'),
|
title: this.$t('standardRegulationLibrary.marketListField.remarks'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'remark',
|
dataIndex: 'remark',
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
:placeholder="$t('pleaseSelect')+$t('standardRegulationLibrary.marketRegulationsList.countryRegion')"
|
:placeholder="$t('pleaseSelect')+$t('standardRegulationLibrary.marketRegulationsList.countryRegion')"
|
||||||
show-search
|
show-search
|
||||||
allowClear
|
allowClear
|
||||||
|
:replaceFields="{title: isChinese() ? 'title' : 'enTitle'}"
|
||||||
:filterTreeNode="filterTreeOption"
|
:filterTreeNode="filterTreeOption"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -152,7 +153,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'country_dictText',
|
dataIndex: 'country_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 清单编号
|
{ // 清单编号
|
||||||
title: this.$t('standardRegulationLibrary.marketRegulationsList.listNumber'),
|
title: this.$t('standardRegulationLibrary.marketRegulationsList.listNumber'),
|
||||||
@@ -173,7 +174,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'drivePosition_dictText',
|
dataIndex: 'drivePosition_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{ // 清单版本
|
{ // 清单版本
|
||||||
title: this.$t('standardRegulationLibrary.marketRegulationsList.listVersion'),
|
title: this.$t('standardRegulationLibrary.marketRegulationsList.listVersion'),
|
||||||
@@ -201,7 +202,7 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 180,
|
width: 180,
|
||||||
dataIndex: 'manifestStatus_dictText',
|
dataIndex: 'manifestStatus_dictText',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'dictText' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('operation'),
|
title: this.$t('operation'),
|
||||||
|
|||||||
+4
-3
@@ -66,6 +66,7 @@
|
|||||||
:tree-data="countryOptions"
|
:tree-data="countryOptions"
|
||||||
tree-checkable
|
tree-checkable
|
||||||
treeCheckStrictly
|
treeCheckStrictly
|
||||||
|
:replaceFields="{title: isChinese() ? 'title' : 'enTitle'}"
|
||||||
:placeholder="$t('pleaseSelect')+$t('standardRegulationLibrary.marketListField.applicableCountryRegion')" />
|
:placeholder="$t('pleaseSelect')+$t('standardRegulationLibrary.marketListField.applicableCountryRegion')" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<!-- 认证对象 -->
|
<!-- 认证对象 -->
|
||||||
@@ -136,8 +137,8 @@
|
|||||||
v-decorator.trim="[ 'requireType', validatorRules.requireType ]" />
|
v-decorator.trim="[ 'requireType', validatorRules.requireType ]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<!-- 备注 -->
|
<!-- 备注 -->
|
||||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('remarks')">
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('standardRegulationLibrary.marketListField.remarks')">
|
||||||
<a-input :placeholder="$t('pleaseEnter') + $t('remarks')"
|
<a-input :placeholder="$t('pleaseEnter') + $t('standardRegulationLibrary.marketListField.remarks')"
|
||||||
:maxLength="50"
|
:maxLength="50"
|
||||||
v-decorator.trim="[ 'remark', validatorRules.remark ]" />
|
v-decorator.trim="[ 'remark', validatorRules.remark ]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -303,7 +304,7 @@ export default {
|
|||||||
this.form.setFieldsValue(pick(this.model, 'standardNumber', 'standardName', 'standardEnglishName',
|
this.form.setFieldsValue(pick(this.model, 'standardNumber', 'standardName', 'standardEnglishName',
|
||||||
'type', 'newProductImplDate', 'newAuthImplDate', 'registrationDate', 'country',
|
'type', 'newProductImplDate', 'newAuthImplDate', 'registrationDate', 'country',
|
||||||
'authenticationObject', 'certifyTheDeliverables', 'mainDept', 'mainDeptProfMode', 'associateDept',
|
'authenticationObject', 'certifyTheDeliverables', 'mainDept', 'mainDeptProfMode', 'associateDept',
|
||||||
'associateDeptProfMode', 'applicableVehicle', 'dynamicType', 'batchLimit', 'autopilotLevel', 'requireType'))
|
'associateDeptProfMode', 'applicableVehicle', 'dynamicType', 'batchLimit', 'autopilotLevel', 'requireType', 'remark'))
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getCountryOption () {
|
getCountryOption () {
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user