[update] 企标计划和企标临时权限设置联调

This commit is contained in:
lideqin
2023-09-15 15:51:54 +08:00
parent ca69af6cfb
commit 5812d14672
10 changed files with 327 additions and 197 deletions
+2 -2
View File
@@ -19,7 +19,7 @@ const deleteTreeNode = (params) => postAction('/laws/standard/lawsTreeNode/enter
// 发起变更 // 发起变更
const initChange = (params) => getAction('', params) const initChange = (params) => getAction('', params)
// 临时权限设置 // 临时权限设置
const temporaryPermissionSet = (params) => getAction('', params) const temporaryPermissionSet = (params) => postAction('/laws/standard/enterprise/tempPermission', params)
// 收藏企标 // 收藏企标
const collectStandard = (params) => getAction('', params) const collectStandard = (params) => getAction('', params)
// 分享企标 // 分享企标
@@ -41,7 +41,7 @@ const getRectificationPlanById = (params) => getAction('/enterprise/inspect/rect
const initReview = (params) => getAction('', params) const initReview = (params) => getAction('', params)
// 企标计划-根据id获取计划详情 // 企标计划-根据id获取计划详情
const getEnterpriseStandardPlanInfoById = (params) => getAction('', params) const getEnterpriseStandardPlanInfoById = (params) => getAction('/enterprise/plan/detail', params)
export { export {
getEnterpriseStandardTableHeader, getEnterpriseStandardTableHeader,
-27
View File
@@ -358,33 +358,6 @@ module.exports = {
clickCheckADepart: 'Please click to select a department!', clickCheckADepart: 'Please click to select a department!',
mobileFormatCorrect: 'Your mobile number format is incorrect!' mobileFormatCorrect: 'Your mobile number format is incorrect!'
}, },
// 文档库
docLibrary: {
cancelCollection: 'Delete Collection',
cancelSubscribe: 'Unsubscribe',
detailsPhasedImplementation: 'Phased Implementation',
statuteNumberClause: 'Statute number/clause',
implementationDateTwo: 'Implementation Date',
typeofImplementation: 'Type of implementation',
updateLog: 'Change Log',
problemKnowledgeBase: 'Knowledge Sharing',
collection: 'Invoice Collection',
subscribe: 'Subscribe',
textInformation: 'Document Files',
standardBreakdown: 'Standard Breakdown',
standardOne: 'Standard',
viewFileOne: 'View File',
dataLoading: 'Data loading...',
standardName: 'Standard Name',
modificationContent: 'Modification Content',
modificationTime: 'Modification Time',
personnel: 'Personnel',
documentLibraryDetails: 'Document Library Details',
confirmCollection: 'Confirm Collection?',
cancelConfirmCollection: 'Are you sure you want to cancel the collection?',
confirmSubscribe: 'Confirm Subscribe ?',
cancelConfirmSubscribe: 'Are you sure you want to cancel the subscribe'
},
// 文档工具 // 文档工具
docTool: { docTool: {
// 文档拆分 // 文档拆分
@@ -135,6 +135,20 @@ module.exports = {
reviewDate: '评审日期', reviewDate: '评审日期',
submissionDate: '报批日期', submissionDate: '报批日期',
releaseDate: '发布日期', releaseDate: '发布日期',
detailTitle: '企业标准计划详情页' detailTitle: '企业标准计划详情页',
basicInformation: '基础信息',
englishNameOfEnterpriseStandard: '企标英文名称',
gradeClassification: '企标等级分类',
projectType: '项目类型',
rangeOfApplication: '适用范围',
enterpriseStandardSystem: '企标体系',
partName: '零部件名称',
scopeOfApplication: '标准适用范围',
compilationIllustration: '编制说明',
projectBackground: '立项背景、立项依据',
similarNaStandardsAnalysis: '国际、国家及行业同类标准分析',
similarEnStandardsAnalysis: '企业同类标准对比分析',
standardLeadingNecessity: '立项标准的领先性与必要性',
projectExpectedEffects: '立项目的及预期效果等'
} }
} }
@@ -135,6 +135,20 @@ module.exports = {
reviewDate: '评审日期', reviewDate: '评审日期',
submissionDate: '报批日期', submissionDate: '报批日期',
releaseDate: '发布日期', releaseDate: '发布日期',
detailTitle: '企业标准计划详情页' detailTitle: '企业标准计划详情页',
basicInformation: '基础信息',
englishNameOfEnterpriseStandard: '企标英文名称',
gradeClassification: '企标等级分类',
projectType: '项目类型',
rangeOfApplication: '适用范围',
enterpriseStandardSystem: '企标体系',
partName: '零部件名称',
scopeOfApplication: '标准适用范围',
compilationIllustration: '编制说明',
projectBackground: '立项背景、立项依据',
similarNaStandardsAnalysis: '国际、国家及行业同类标准分析',
similarEnStandardsAnalysis: '企业同类标准对比分析',
standardLeadingNecessity: '立项标准的领先性与必要性',
projectExpectedEffects: '立项目的及预期效果等'
} }
} }
+2 -28
View File
@@ -358,33 +358,6 @@ module.exports = {
clickCheckADepart: '请点击选择一个部门!', clickCheckADepart: '请点击选择一个部门!',
mobileFormatCorrect: '您的手机号码格式不正确!' mobileFormatCorrect: '您的手机号码格式不正确!'
}, },
// 文档库
docLibrary: {
cancelCollection: '取消收藏',
cancelSubscribe: '取消订阅',
detailsPhasedImplementation: '分阶段实施详情',
statuteNumberClause: '法规编号/条款',
implementationDateTwo: '实施日期',
typeofImplementation: '实施类型',
updateLog: '更新log',
problemKnowledgeBase: '知识分享',
collection: '收藏',
subscribe: '订阅',
textInformation: '文本信息',
standardBreakdown: '标准分解单',
standardOne: '标准',
viewFileOne: '查看文件',
dataLoading: '数据加载中...',
standardName: '标准名称',
modificationContent: '修改内容',
modificationTime: '修改时间',
personnel: '人员',
documentLibraryDetails: '文档库详情',
confirmCollection: '确定收藏?',
cancelConfirmCollection: '确定取消收藏?',
confirmSubscribe: '确定订阅?',
cancelConfirmSubscribe: '确定取消订阅?'
},
// 文档工具 // 文档工具
docTool: { docTool: {
// 文档拆分 // 文档拆分
@@ -502,7 +475,8 @@ module.exports = {
selectUser: '选择用户', selectUser: '选择用户',
userList: '用户列表', userList: '用户列表',
name: '姓名', name: '姓名',
post: '岗位' post: '岗位',
selectedPersonnel: '已选人员'
}, },
// 弹框上传附件 // 弹框上传附件
uploadFile: { uploadFile: {
+65 -87
View File
@@ -59,55 +59,32 @@
</a-form> </a-form>
</div> </div>
<div class="modal-content"> <div class="modal-content">
<div class="modal-content-left"> <a-table
<div class="modal-content-title-div"> :columns="columns"
<p class="modal-content-title">{{ $t('userSelect.select') }}</p> rowKey="id"
<div class="table-operator-tab"> bordered
<a class="switch-item table-operator-tab-active">{{ $t('userSelect.userList') }}</a> :scroll="{x: '100%'}"
</div> :data-source="dataSource"
</div> :pagination="ipagination"
<a-table :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type: type }"
:columns="columns" :loading="loadingLeft"
rowKey="id" @change="leftTableChange">
bordered <template slot="text" slot-scope="text">
:scroll="{x: 550}" <a-tooltip overlay-class-name="tooltip-style">
:data-source="dataSource" <template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
:pagination="ipagination" <div class="table-text">{{ text || text === 0 ? text : global.emptyLine }}</div>
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type: type }" </a-tooltip>
:loading="loadingLeft" </template>
@change="leftTableChange"> </a-table>
<template slot="text" slot-scope="text"> </div>
<a-tooltip overlay-class-name="tooltip-style"> <p class="modal-content-title">{{ $t('userSelect.selectedPersonnel') }}</p>
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template> <div v-if="dataSourceRight && dataSourceRight.length > 0" class="name-content">
<div class="table-text">{{ text || text === 0 ? text : global.emptyLine }}</div> <div v-for="item in dataSourceRight" :key="item.id" class="name-div">
</a-tooltip> {{ item.realname + '(' + item.workNo + ')' }}
</template> <a-icon type="close" @click="handleDelete(item)" />
</a-table>
</div>
<div class="modal-content-right">
<div class="modal-content-title-div">
<p class="modal-content-title">选择</p>
</div>
<a-table
:columns="columnsRight"
rowKey="id"
:pagination="false"
bordered
:scroll="{x: 250}"
:loading="loadingRight"
:data-source="dataSourceRight">
<template slot="text" slot-scope="text">
<a-tooltip overlay-class-name="tooltip-style">
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
<div class="table-text">{{ text || text === 0 ? text : global.emptyLine }}</div>
</a-tooltip>
</template>
<template slot="action" slot-scope="text, record, index">
<a @click="handleDelete(record, index)" >{{ $t('delete') }}</a>
</template>
</a-table>
</div> </div>
</div> </div>
<a-empty v-else/>
</a-modal> </a-modal>
</template> </template>
@@ -136,8 +113,10 @@ export default {
immediate: true, immediate: true,
handler (val) { handler (val) {
console.log(val) console.log(val)
this.selectedRowKeys = val.split(',') if (val) {
this.getUserListByIds(val) this.selectedRowKeys = val ? val.split(',') : []
this.getUserListByIds(val)
}
} }
} }
}, },
@@ -193,25 +172,10 @@ export default {
}, },
selectedRowKeys: [], selectedRowKeys: [],
loadingLeft: false, loadingLeft: false,
columnsRight: [
{
title: this.$t('userSelect.name'),
dataIndex: 'realname',
align: 'center',
scopedSlots: { customRender: 'text' }
},
{
title: this.$t('operation'),
dataIndex: 'action',
scopedSlots: { customRender: 'action' },
align: 'center'
}
],
loadingRight: false,
dataSourceRight: [], dataSourceRight: [],
url: { url: {
userList: '/sys/user/page', userList: '/sys/user/page',
userListByIds: '' userListByIds: '/sys/user/queryByIds'
} }
} }
}, },
@@ -280,7 +244,7 @@ export default {
this.loadingLeft = false this.loadingLeft = false
}) })
}, },
// 左侧选择 // 表格选择
onSelectChange (selectedRowKeys, selectedRows) { onSelectChange (selectedRowKeys, selectedRows) {
this.selectedRowKeys = selectedRowKeys this.selectedRowKeys = selectedRowKeys
if (this.type === 'checkbox') { if (this.type === 'checkbox') {
@@ -313,11 +277,11 @@ export default {
// 根据ids获取用户列表 // 根据ids获取用户列表
getUserListByIds (ids) { getUserListByIds (ids) {
const params = {} const params = {}
params.ids = ids params.userIds = ids
this.loadingRight = true this.loadingRight = true
getAction(this.url.userListByIds, params).then((res) => { getAction(this.url.userListByIds, params).then((res) => {
if (res.success) { if (res.success) {
this.dataSourceRight = res.result.records || [] this.dataSourceRight = res.result || []
} else { } else {
this.$message.warn(res.message) this.$message.warn(res.message)
} }
@@ -325,11 +289,10 @@ export default {
this.loadingRight = false this.loadingRight = false
}) })
}, },
// 右侧表的删除 // 名字列表的删除
handleDelete (record, index) { handleDelete (record, index) {
this.dataSourceRight.splice(index, 1) this.dataSourceRight.splice(index, 1)
this.selectedRowKeys = this.selectedRowKeys.filter(item => item !== record.id) this.selectedRowKeys = this.selectedRowKeys.filter(item => item !== record.id)
console.log(this.selectedRowKeys)
}, },
handleOk () { handleOk () {
this.$emit('change', this.selectedRowKeys.join(',')) this.$emit('change', this.selectedRowKeys.join(','))
@@ -353,23 +316,38 @@ export default {
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
&-left { &-left {
width: 58%; width: 58%;
} }
&-right { &-right {
width: 40%; width: 40%;
} }
&-title-div { &-title-div {
display: flex; display: flex;
align-items: center; align-items: center;
height: 28px; height: 28px;
margin: 20px 0; margin: 20px 0;
.modal-content-title { .modal-content-title {
color: #1D2129; color: #1D2129;
font-weight: 500; font-weight: 500;
margin-right: 12px; margin-right: 12px;
margin-bottom: 0; margin-bottom: 0;
} }
}
} }
.name-content {
display: flex;
.name-div {
width: auto;
padding: 5px 16px;
margin-right: 12px;
background: rgba(213, 44, 38, 0.08);
border-radius: 4px 4px 4px 4px;
opacity: 1;
color: #D52C26;
/deep/ .anticon {
margin-left: 4px;
}
}
} }
</style> </style>
+1 -1
View File
@@ -16,7 +16,7 @@
{{ $t('userSelect.select') }} {{ $t('userSelect.select') }}
</a-button> </a-button>
</div> </div>
<user-select-modal v-bind="$attrs" ref="selectModal" @change="selectChange" @nameChange="nameChange"></user-select-modal> <user-select-modal v-bind="$attrs" :nameStr="nameStr" ref="selectModal" @change="selectChange" @nameChange="nameChange"></user-select-modal>
</div> </div>
</template> </template>
@@ -210,7 +210,7 @@ export default {
title: this.$t('enterpriseStandardLibrary.plan.revisionType'), title: this.$t('enterpriseStandardLibrary.plan.revisionType'),
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'applicationCategory', dataIndex: 'applicationCategory_dictText',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, },
{ {
@@ -329,7 +329,7 @@ export default {
title: this.$t('enterpriseStandardLibrary.plan.isAskForAdvice'), title: this.$t('enterpriseStandardLibrary.plan.isAskForAdvice'),
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'solicitationOpinionEnabled', dataIndex: 'solicitationOpinionEnabled_dictText',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, },
{ {
@@ -364,14 +364,14 @@ export default {
title: this.$t('enterpriseStandardLibrary.plan.projectStatus'), title: this.$t('enterpriseStandardLibrary.plan.projectStatus'),
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'projectStatus', dataIndex: 'projectStatus_dictText',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, },
{ {
title: this.$t('enterpriseStandardLibrary.plan.changeState'), title: this.$t('enterpriseStandardLibrary.plan.changeState'),
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'changeStatus', dataIndex: 'changeStatus_dictText',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, },
{ {
@@ -1,85 +1,260 @@
<template> <template>
<div class="detail-page"> <div class="detail-page">
<div class="detail-page-title">{{ pageTitle }}{{ $t('enterpriseStandardLibrary.plan.detailTitle') }}</div> <div class="detail-page-title">{{ pageTitle }}{{ $t('enterpriseStandardLibrary.plan.detailTitle') }}</div>
<div class="detail-page-part" v-for="(part, index) in partList" :key="part + index"> <div class="detail-page-part">
<div class="detail-page-part-title"> <div class="detail-page-part-title">
<span>{{ part }}</span> <span>{{ $t('enterpriseStandardLibrary.plan.basicInformation') }}</span>
</div> </div>
<div class="detail-page-part-form" v-if="index !== 3"> <div class="detail-page-part-form">
<div class="detail-page-part-form-item" v-for="formItem in form[part]" :key="formItem.id"> <!-- 原企标编号 -->
<label>{{ formItem.dbFieldTxt }}</label> <div class="detail-page-part-form-item">
<span>{{ detailData[formItem.dbFieldName] }}</span> <label>{{ $t('enterpriseStandardLibrary.plan.oldEnterpriseStandardNum') }}</label>
<span>{{ form.originEnStandardNo }}</span>
</div> </div>
<!-- 新企标编号 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.newEnterpriseStandardNum') }}</label>
<span>{{ form.newEnStandardNo }}</span>
</div>
<!-- 原企标名称 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.oldEnterpriseStandardName') }}</label>
<span>{{ form.originEnStandardName }}</span>
</div>
<!-- 新企标名称 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.newEnterpriseStandardName') }}</label>
<span>{{ form.newEnStandardName }}</span>
</div>
<!-- 企标英文名称 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.englishNameOfEnterpriseStandard') }}</label>
<span>{{ form.enStandardEnglishName }}</span>
</div>
<!-- 企标等级分类 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.gradeClassification') }}</label>
<span>{{ form.enStandardClassification }}</span>
</div>
<!-- 项目状态 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.projectStatus') }}</label>
<span>{{ form.projectStatus_dictText }}</span>
</div>
<!-- 项目类型 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.projectType') }}</label>
<span>{{ form.projectType }}</span>
</div>
<!-- 草稿计划完成日期 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.draftPlanFinishDate') }}</label>
<span>{{ form.draftPlannedCompleteDate }}</span>
</div>
<!-- 征求意见稿计划完成日期 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.exposureDraftPlanFinishDate') }}</label>
<span>{{ form.solicitationDraftPlanCompleteDate }}</span>
</div>
<!-- 计划报批日期 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.planSubmissionDate') }}</label>
<span>{{ form.planApprovalDate }}</span>
</div>
<!-- 草稿完成日期 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.draftFinishDate') }}</label>
<span>{{ form.draftCompletionDate }}</span>
</div>
<!-- 征求意见稿完成日期 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.exposureDraftFinishDate') }}</label>
<span>{{ form.solicitationDraftCompletionDate }}</span>
</div>
<!-- 报批日期 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.submissionDate') }}</label>
<span>{{ form.approvalDate }}</span>
</div>
</div>
</div>
<div class="detail-page-part">
<div class="detail-page-part-title">
<span>{{ $t('enterpriseStandardLibrary.plan.rangeOfApplication') }}</span>
</div>
<div class="detail-page-part-form">
<!-- 主起草人 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.principalDrafter') }}</label>
<span>{{ form.mainDraftingUser }}</span>
</div>
<!-- 主起草单位 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.mainDraftingUnit') }}</label>
<span>{{ form.mainDraftingUnit }}</span>
</div>
<!-- 企标体系 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.enterpriseStandardSystem') }}</label>
<span>{{ form.enStandardSystem }}</span>
</div>
<!-- 零部件名称 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.partName') }}</label>
<span>{{ form.componentName }}</span>
</div>
<!-- 标准适用范围 -->
<div class="detail-page-part-form-item">
<label>{{ $t('enterpriseStandardLibrary.plan.scopeOfApplication') }}</label>
<span>{{ form.enStandardEnglishName }}</span>
</div>
<!-- 编制说明 -->
<div class="detail-page-part-form-item-large-file">
<label>{{ $t('enterpriseStandardLibrary.plan.compilationIllustration') }}</label>
<a @click="previewCompilation">{{ form.compilationFileName }}</a>
</div>
<!-- 立项背景、立项依据 -->
<div class="detail-page-part-form-item-large">
<label>{{ $t('enterpriseStandardLibrary.plan.projectBackground') }}</label>
<span>{{ form.projectBackground }}</span>
</div>
<!-- 国际、国家及行业同类标准分析 -->
<div class="detail-page-part-form-item-large">
<label>{{ $t('enterpriseStandardLibrary.plan.similarNaStandardsAnalysis') }}</label>
<span>{{ form.similarNaStandardsAnalysis }}</span>
</div>
<!-- 企业同类标准对比分析 -->
<div class="detail-page-part-form-item-large">
<label>{{ $t('enterpriseStandardLibrary.plan.similarEnStandardsAnalysis') }}</label>
<span>{{ form.similarEnStandardsAnalysis }}</span>
</div>
<!-- 立项标准的领先性与必要性 -->
<div class="detail-page-part-form-item-large">
<label>{{ $t('enterpriseStandardLibrary.plan.standardLeadingNecessity') }}</label>
<span>{{ form.standardLeadingNecessity }}</span>
</div>
<!-- 立项目的及预期效果等 -->
<div class="detail-page-part-form-item-large">
<label>{{ $t('enterpriseStandardLibrary.plan.projectExpectedEffects') }}</label>
<span>{{ form.projectExpectedEffects }}</span>
</div>
</div>
</div>
<div id="images">
<div class="image" v-viewer="{movable: false}">
<img v-show="image" :src="imageUrl">
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import '@assets/less/common.less'
import { getEnterpriseStandardPlanInfoById } from '@/api/enterpriseStandardLibraryApi' import { getEnterpriseStandardPlanInfoById } from '@/api/enterpriseStandardLibraryApi'
import Vue from 'vue'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import { previewPdf } from '@/utils/previewPdf'
import { getFileAccessHttpUrl } from '@/api/manage'
const FILE_TYPE_IMGS = ['jpg', 'jpeg', 'png', 'raw']
const FILE_TYPE_PDF = 'pdf'
const Base64 = require('js-base64').Base64
export default { export default {
name: 'PlanDetail', name: 'PlanDetail',
data () { data () {
return { return {
partList: [], // 页面模块列表 image: false,
form: {}, // 页面字段 imageUrl: null,
detailData: { form: {} // 页面字段
modification_list: [
{
id: 1,
fileName: '国内文字占位符段落标题标准.pdf'
},
{
id: 2,
fileName: '国内标准国内文字占位符段落标题标准.pdf'
},
{
id: 3,
fileName: '国内标准国内标准.pdf'
}
],
draft_for_review: [{
id: 11,
fileName: '国内文字占位符段落标题标准.pdf'
}],
draft_for_approval: [{
id: 21,
fileName: '国内标准国内文字占位符段落标题标准.pdf'
}],
draft_for_comment: [{
id: 31,
fileName: '国内标准国内标准.pdf'
}],
draft: [{
id: 311,
fileName: '国内标准国内标准.pdf'
}]
} // 页面数据
} }
}, },
created () { created () {
this.initForm() this.initForm()
}, },
methods: { methods: {
// 获取详情数据
initForm () { initForm () {
const params = {} const params = {}
params.id = this.$route.query.id params.id = this.$route.query.id
params.module = '3'
getEnterpriseStandardPlanInfoById(params).then(res => { getEnterpriseStandardPlanInfoById(params).then(res => {
if (res.success) { if (res.success) {
const data = res.result || {} const data = res.result || {}
this.partList = Object.keys(data)
this.form = data this.form = data
} else { } else {
this.$message.warn(res.message) this.$message.warn(res.message)
} }
}) })
},
// 预览编制说明
previewCompilation () {
// 截取文件后缀名
const fileSuffix = this.form.compilationFileName ? this.form.compilationFileName.split('.')[this.form.compilationFileName.split('.').length - 1] : ''
const fileFullUrl = `${window._CONFIG.domianWebSocketURL}/sys/common/download/${this.form.compilationDescription}?token=${Vue.ls.get(ACCESS_TOKEN)}&fullfilename=${this.form.compilationFileName}`
// 图片预览,使用自己添加的组件
if (FILE_TYPE_IMGS.includes(fileSuffix)) {
this.imageUrl = getFileAccessHttpUrl(this.form.compilationDescription)
// 获取viewer实例
const viewer = this.$el.querySelector('.image').$viewer
// 调用show方法进行显示预览图
viewer.show()
// this.$refs.imagePreviewModal.open(file)
return
}
// pdf预览
if (FILE_TYPE_PDF.includes(fileSuffix)) {
const url = previewPdf(this.form.compilationDescription)
window.open(url)
return
}
// 其余可预览文件仍使用KKFile进行预览
const url = `${window._CONFIG.onlinePreviewDomainURL}?url=${encodeURIComponent(Base64.encode(fileFullUrl))}`
window.open(url)
} }
} }
} }
</script> </script>
<style scoped> <style scoped lang="less">
.detail-page-part-form-item-large {
width: 100%;
display: flex;
margin: 0 16px 16px 0;
label {
width: 20%;
font-size: 16px;
font-family: PingFang SC-Regular, PingFang SC, sans-serif;
font-weight: 400;
color: #86909C;
}
span {
white-space: pre-wrap;
word-break: break-all;
font-size: 16px;
font-family: PingFang SC-Regular, PingFang SC, sans-serif;
color: #1D2129;
}
}
.detail-page-part-form-item-large-file {
width: 100%;
display: flex;
margin: 0 16px 16px 0;
label {
width: 20%;
font-size: 16px;
font-family: PingFang SC-Regular, PingFang SC, sans-serif;
font-weight: 400;
color: #86909C;
}
a {
white-space: pre-wrap;
word-break: break-all;
font-size: 16px;
font-family: PingFang SC-Regular, PingFang SC, sans-serif;
}
}
</style> </style>
@@ -20,14 +20,16 @@
</a-form-item> </a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('enterpriseStandardLibrary.standard.authorizationUser')"> <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('enterpriseStandardLibrary.standard.authorizationUser')">
<user-selection <user-selection
type="checkbox"
v-decorator.trim="[ 'userIds', validatorRules.userIds]" v-decorator.trim="[ 'userIds', validatorRules.userIds]"
:nameStr="model.userNames" :nameStr="model.userNames"
:placeholder="$t('pleaseSelect') + $t('enterpriseStandardLibrary.standard.authorizationUser')"
@nameChange="userSelectNameChange"> @nameChange="userSelectNameChange">
</user-selection> </user-selection>
</a-form-item> </a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('enterpriseStandardLibrary.standard.maturityDate')"> <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('enterpriseStandardLibrary.standard.maturityDate')">
<a-date-picker <a-date-picker
v-decorator.trim="[ 'maturityDate', validatorRules.maturityDate]" v-decorator.trim="[ 'authDate', validatorRules.authDate]"
format="YYYY-MM-DD" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
> >
@@ -47,7 +49,7 @@ export default {
components: { UserSelection }, components: { UserSelection },
data () { data () {
return { return {
title: '', title: this.$t('enterpriseStandardLibrary.standard.temporaryPermissionSet'),
visible: false, visible: false,
confirmLoading: false, confirmLoading: false,
form: this.$form.createForm(this), form: this.$form.createForm(this),
@@ -100,7 +102,7 @@ export default {
if (!err) { if (!err) {
this.confirmLoading = true this.confirmLoading = true
const param = Object.assign({}, values) const param = Object.assign({}, values)
param.standards = this.model.standards param.standardNos = this.model.standards
temporaryPermissionSet(param).then(res => { temporaryPermissionSet(param).then(res => {
if (res.success) { if (res.success) {
this.$message.success(res.message) this.$message.success(res.message)