update 国内标准树修改,文档拆分列表
This commit is contained in:
@@ -1,21 +1,16 @@
|
||||
// 本地工具-即文档功能对应的接口
|
||||
|
||||
import { getAction } from './manage'
|
||||
import { getAction, postAction } from './manage'
|
||||
|
||||
// 文档拆分-获取查询条件-todo 全部需要修改接口
|
||||
const getDocumentSplitSearchForm = (params) => getAction('/split/sarFileSplitInfo/queryCondition', params)
|
||||
// 文档拆分-获取表单模型
|
||||
const getDocumentSplitFormModal = (params) => getAction('/laws/standard/domestic/getFormModel', params)
|
||||
// 文档拆分-获取信息
|
||||
const getDocumentSplitDocumentInfo = (params) => getAction('/laws/standard/domestic/getByIdAndModule', params)
|
||||
// 文档拆分-获取表头信息
|
||||
const getDocumentSplitTableHeader = (params) => getAction('/split/sarFileSplitInfo/getHeader', params)
|
||||
// 文档拆分-发布
|
||||
const releaseSplitStandard = (params) => postAction('', params)
|
||||
// 文档拆分详情-表头
|
||||
const getDocSplitTableHeader = (params) => getAction('', params)
|
||||
|
||||
export {
|
||||
// 文档拆分
|
||||
getDocumentSplitSearchForm,
|
||||
getDocumentSplitFormModal,
|
||||
getDocumentSplitDocumentInfo,
|
||||
getDocumentSplitTableHeader
|
||||
releaseSplitStandard,
|
||||
|
||||
// 文档拆分-详情
|
||||
getDocSplitTableHeader
|
||||
}
|
||||
|
||||
@@ -424,10 +424,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
/*树节点样式*/
|
||||
.ant-tree li .ant-tree-node-content-wrapper {
|
||||
width: calc(100% - 24px);
|
||||
box-sizing: border-box;
|
||||
.page-tree-box {
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.page-tree-box-has-search {
|
||||
height: calc(100% - 32px);
|
||||
}
|
||||
|
||||
/*展开收起按钮颜色*/
|
||||
@@ -482,13 +485,51 @@
|
||||
opacity: 1;
|
||||
margin-left: -24px;
|
||||
padding-left: 29px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.ant-tree li .ant-tree-node-content-wrapper.ant-tree-node-selected {
|
||||
background-color: #ffd9d1 !important;
|
||||
}
|
||||
|
||||
.tree-operate-node {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
align-items: center;
|
||||
|
||||
&-btn-box {
|
||||
display: inline-block;
|
||||
|
||||
.tree-operate-node-btn {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
&-btn-box-hide {
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
&-btn {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background: rgba(213, 44, 38, 0.08);
|
||||
border-radius: 2px 2px 2px 2px;
|
||||
border: none;
|
||||
margin-left: 4px;
|
||||
padding: 0;
|
||||
|
||||
/deep/ .anticon {
|
||||
margin-top: 2px;
|
||||
color: #D52C26;
|
||||
}
|
||||
|
||||
i {
|
||||
color: @primary-color;
|
||||
height: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*抽屉样式修改*/
|
||||
.custom-drawer-style {
|
||||
height: 100%;
|
||||
|
||||
@@ -117,6 +117,7 @@ module.exports = {
|
||||
release: 'Release',
|
||||
withdraw: 'Withdraw',
|
||||
confirmRelease: 'Confirm Release?',
|
||||
confirmReleaseContent: 'Confirm to publish the data?',
|
||||
confirmWithdraw: 'Confirm to Withdraw?',
|
||||
doNotHavePermissionDeleteData: 'Do not have permission to delete this data',
|
||||
noData: 'No Data',
|
||||
@@ -364,7 +365,15 @@ module.exports = {
|
||||
split: {
|
||||
splitText: 'Split Library File',
|
||||
importResults: 'Import Split Results',
|
||||
backDocument: 'Back To Document Library',
|
||||
splitState: 'Split state',
|
||||
editor: 'Editor',
|
||||
fileStatus: 'File status',
|
||||
splitTime: 'Split time',
|
||||
splitResult: 'Split result',
|
||||
batchCopy: 'Batch copy',
|
||||
batchEdit: 'Batch edit',
|
||||
mergerClause: 'Merge Item',
|
||||
|
||||
selectFileType: 'Please select a file type',
|
||||
onlyWord: 'Only word files can be imported',
|
||||
fileType: 'File Type',
|
||||
@@ -377,7 +386,6 @@ module.exports = {
|
||||
gb: 'GB',
|
||||
gbt: 'GB/T',
|
||||
gso: 'GSO',
|
||||
mergerClause: 'Merge Item',
|
||||
batchSetting: 'Batch Set',
|
||||
clauseContent: 'Item Content',
|
||||
clauseNo: 'Item No.',
|
||||
|
||||
@@ -117,6 +117,7 @@ module.exports = {
|
||||
release: '发布',
|
||||
withdraw: '撤回',
|
||||
confirmRelease: '确认发布?',
|
||||
confirmReleaseContent: '确认发布该条数据?',
|
||||
confirmWithdraw: '确认撤回?',
|
||||
doNotHavePermissionDeleteData: '没有权限删除此数据',
|
||||
noData: '暂无数据',
|
||||
@@ -364,7 +365,15 @@ module.exports = {
|
||||
split: {
|
||||
splitText: '拆分已入库文本',
|
||||
importResults: '导入拆分结果',
|
||||
backDocument: '回传至文档库',
|
||||
splitState: '拆分状态',
|
||||
editor: '编辑人',
|
||||
fileStatus: '文件状态',
|
||||
splitTime: '拆分时间',
|
||||
splitResult: '拆分结果',
|
||||
batchCopy: '批量复制',
|
||||
batchEdit: '批量编辑',
|
||||
mergerClause: '合并条款',
|
||||
|
||||
selectFileType: '请选择文件类型',
|
||||
onlyWord: '只能导入word文件',
|
||||
fileType: '文件类型',
|
||||
@@ -377,7 +386,6 @@ module.exports = {
|
||||
gb: 'GB',
|
||||
gbt: 'GB/T',
|
||||
gso: 'GSO',
|
||||
mergerClause: '合并条款',
|
||||
batchSetting: '批量设置',
|
||||
clauseContent: '条款内容',
|
||||
clauseNo: '条款号',
|
||||
|
||||
@@ -1,28 +1,56 @@
|
||||
<template>
|
||||
<a-card :bordered="false">
|
||||
<div class="table-page-search-wrapper">
|
||||
<search flag="3" :url="url"/>
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row :gutter="24">
|
||||
<!--标准号/标准名称-->
|
||||
<a-col :md="6" :sm="12">
|
||||
<a-form-item :label="$t('standardSelect.standardNumOrName')">
|
||||
<j-input :placeholder="$t('pleaseEnter') + $t('projectLibrary.projectName')" v-model="queryParam.projectName"></j-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!--拆分状态-->
|
||||
<a-col :md="6" :sm="12">
|
||||
<a-form-item :label="$t('docTool.split.splitState')">
|
||||
<j-dict-select-tag
|
||||
class="box-input"
|
||||
v-model="queryParam.projectHealth"
|
||||
:placeholder="$t('pleaseSelect') + $t('docTool.split.splitState')"
|
||||
:type="'select'"
|
||||
:triggerChange="false"
|
||||
:dictCode="'project_health'" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!--编辑人-->
|
||||
<a-col :md="6" :sm="12">
|
||||
<a-form-item :label="$t('docTool.split.editor')">
|
||||
<j-input :placeholder="$t('pleaseEnter') + $t('docTool.split.editor')" v-model="queryParam.projectName"></j-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="6" :sm="8">
|
||||
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
|
||||
<a-button type="primary" @click="searchReset" icon="reload" ghost>{{ $t('reset') }}</a-button>
|
||||
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px">
|
||||
{{ $t('query') }}
|
||||
</a-button>
|
||||
</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
<div class="table-operator">
|
||||
<!-- -->
|
||||
<div class="operator-text" @click="handleModule" v-has="'split:sarFileSplitInfo:splitFile'">
|
||||
<a-icon type="plus"/>
|
||||
{{ $t('docTool.split.splitText') }}
|
||||
</div>
|
||||
<!-- -->
|
||||
<div class="operator-text" @click="handleExport" v-has="'split:sarFileSplitInfo:splitResult'">
|
||||
<a-icon type="import" :rotate="-90"/>
|
||||
<!--拆分已入库文本-->
|
||||
<a-button icon="plus" type="primary" @click="handleModule" v-has="'split:sarFileSplitInfo:splitFile'">{{ $t('docTool.split.splitText') }}
|
||||
</a-button>
|
||||
<!--导入拆分结果-->
|
||||
<a-button icon="download" type="primary" ghost @click="handleExport" v-has="'split:sarFileSplitInfo:splitResult'">
|
||||
{{ $t('docTool.split.importResults') }}
|
||||
</div>
|
||||
<!-- -->
|
||||
<div class="operator-text" @click="handleDel" v-has="'split:sarFileSplitInfo:deleteBatch'">
|
||||
<a-icon type="delete"/>
|
||||
{{ $t('batchDelete') }}
|
||||
</div>
|
||||
</a-button>
|
||||
<!--批量删除-->
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel" v-has="'split:sarFileSplitInfo:deleteBatch'">{{ $t('batchDelete') }}</a-button>
|
||||
</div>
|
||||
<div class="splitting-table">
|
||||
<div>
|
||||
<j-table
|
||||
v-if="columns && columns.length > 0"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:can-drag="true"
|
||||
@@ -30,83 +58,141 @@
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
:pagination="ipagination"
|
||||
:scroll="{x: '100%'}"
|
||||
@change="tableOnChange">
|
||||
:loading="loading"
|
||||
@change="handleTableChange">
|
||||
|
||||
<template v-slot:operation="{text, record}">
|
||||
<a v-for="(operation, index) in operationList.slice(0, operateMaxNum)" :key="index" @click="operationClick(operation,record)">
|
||||
{{ operation.text }}
|
||||
</a>
|
||||
<a-divider v-if="operationList.length >= operateMaxNum" type="vertical" />
|
||||
<a @click="operationClick(operationList[0],record)">{{ operationList[0].text }}</a>
|
||||
<a-divider type="vertical" />
|
||||
<a-dropdown placement="bottomCenter">
|
||||
<a-icon type="more" class="operate-icon-btn operate-icon-more" />
|
||||
<a-menu slot="overlay">
|
||||
<a-menu-item v-for="(operation, index) in operationList.slice(operateMaxNum)" :key="index">
|
||||
<a @click="operationClick(operation,record)">
|
||||
{{ operation.text }}
|
||||
<div class="operate-btn">
|
||||
<!-- 编辑图标-->
|
||||
<i class="iconfont icon-bianji operate-btn-icon" v-if="operation.text === $t('edit')" />
|
||||
<!-- 删除图标-->
|
||||
<i class="iconfont icon-shanchu_ operate-btn-icon" v-if="operation.text === $t('delete')" />
|
||||
{{ operation.text }}
|
||||
</div>
|
||||
</a>
|
||||
</a-menu-item>
|
||||
</a-menu>
|
||||
</a-dropdown>
|
||||
</template>
|
||||
|
||||
<!-- 详情-->
|
||||
<template slot="detailClick" slot-scope="{text, record}">
|
||||
<a-tooltip overlay-class-name="tooltip-style">
|
||||
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
|
||||
<a class="table-text textName" @click="detailClick(record)" v-if="text || text === 0">{{ text }}</a>
|
||||
<div class="table-text" v-else>{{ global.emptyLine }}</div>
|
||||
</a-tooltip>
|
||||
</template>
|
||||
</j-table>
|
||||
</div>
|
||||
|
||||
<!--拆分已入库文本弹框-->
|
||||
<split-text ref="splitText" @visible="splitTextVisible"></split-text>
|
||||
<!--导入拆分结果弹框-->
|
||||
<import-result ref="importResult" @visible="importResultVisible"></import-result>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Search from '@/components/customField/Search'
|
||||
import '@assets/less/common.less'
|
||||
import JTable from '@/components/jero/JTable'
|
||||
// 拆分已入库文本弹框
|
||||
import SplitText from './modules/SplitText'
|
||||
// 导入拆分结果弹框
|
||||
import ImportResult from './modules/ImportResult'
|
||||
import { httpAction, getAction } from '@/api/manage'
|
||||
import { ConfigurableTableMixin } from '@/mixins/ConfigurableTableMixin'
|
||||
import { getDocumentSplitSearchForm, getDocumentSplitTableHeader } from '../../api/documentToolApi'
|
||||
import { JeroListMixin } from '../../mixins/JeroListMixin.js'
|
||||
import { releaseSplitStandard } from '../../api/documentToolApi.js'
|
||||
|
||||
export default {
|
||||
name: 'DocumentSplit',
|
||||
components: { Search, JTable, SplitText, ImportResult },
|
||||
mixins: [ConfigurableTableMixin],
|
||||
components: { JTable, SplitText, ImportResult },
|
||||
mixins: [JeroListMixin],
|
||||
data () {
|
||||
return {
|
||||
selectedRowKeys: [],
|
||||
operationList: [
|
||||
// 发布
|
||||
{
|
||||
text: this.$t('release'),
|
||||
clickEvent: 'handleRelease',
|
||||
has: ''
|
||||
},
|
||||
// 查看
|
||||
{
|
||||
text: this.$t('view'),
|
||||
clickEvent: 'detailClick',
|
||||
clickEvent: 'handleDetail',
|
||||
has: ''
|
||||
},
|
||||
// 回传至文档库
|
||||
// 编辑
|
||||
{
|
||||
text: this.$t('docTool.split.backDocument'),
|
||||
clickEvent: 'backDocument',
|
||||
text: this.$t('edit'),
|
||||
clickEvent: 'handleEdit',
|
||||
has: ''
|
||||
},
|
||||
// 删除
|
||||
{
|
||||
text: this.$t('delete'),
|
||||
clickEvent: 'deleteDetail',
|
||||
clickEvent: 'handleDelete',
|
||||
has: ''
|
||||
}
|
||||
],
|
||||
getTableHeaderFunc: getDocumentSplitTableHeader,
|
||||
getQueryConditionFunc: getDocumentSplitSearchForm,
|
||||
columns: [
|
||||
// 标准号
|
||||
{
|
||||
dataIndex: '1',
|
||||
title: this.$t('standardSelect.standardNumber'),
|
||||
width: 150
|
||||
},
|
||||
// 标准名称
|
||||
{
|
||||
dataIndex: '2',
|
||||
title: this.$t('standardSelect.standardName'),
|
||||
width: 150
|
||||
},
|
||||
// 文件状态
|
||||
{
|
||||
dataIndex: '3',
|
||||
title: this.$t('docTool.split.fileStatus'),
|
||||
width: 150
|
||||
},
|
||||
// 文件名称
|
||||
{
|
||||
dataIndex: '4',
|
||||
title: this.$t('fileName'),
|
||||
width: 150
|
||||
},
|
||||
// 拆分状态
|
||||
{
|
||||
dataIndex: '5',
|
||||
title: this.$t('docTool.split.splitState'),
|
||||
width: 150
|
||||
},
|
||||
// 编辑人
|
||||
{
|
||||
dataIndex: '6',
|
||||
title: this.$t('docTool.split.editor'),
|
||||
width: 150
|
||||
},
|
||||
// 拆分时间
|
||||
{
|
||||
dataIndex: '7',
|
||||
title: this.$t('docTool.split.splitTime'),
|
||||
width: 150
|
||||
},
|
||||
// 拆分结果
|
||||
{
|
||||
dataIndex: '91',
|
||||
title: this.$t('docTool.split.splitResult'),
|
||||
sorter: true,
|
||||
width: 150
|
||||
},
|
||||
// 操作
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
fixed: 'right',
|
||||
width: 150,
|
||||
scopedSlots: { customRender: 'operation' }
|
||||
}
|
||||
],
|
||||
url: {
|
||||
// tableHeader: '/split/sarFileSplitInfo/getHeader', // 表格头部字段
|
||||
// searchList: '/split/sarFileSplitInfo/queryCondition', // 搜索字段
|
||||
list: '/split/sarFileSplitInfo/page', // 表格数据
|
||||
deleteBatch: '', // 批量删除
|
||||
deleteUrl: '',
|
||||
@@ -114,9 +200,7 @@ export default {
|
||||
},
|
||||
dataSource: [
|
||||
{ id: 1 }
|
||||
],
|
||||
showAction: true,
|
||||
flag: '3'
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -128,87 +212,37 @@ export default {
|
||||
handleExport () {
|
||||
this.$refs.importResult.open()
|
||||
},
|
||||
// 批量删除
|
||||
handleDel () {
|
||||
const params = {
|
||||
ids: this.selectedRowKeys.join(',')
|
||||
}
|
||||
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
|
||||
this.$confirm({
|
||||
title: this.$t('confirmDeletion'),
|
||||
content: '',
|
||||
onOk: () => {
|
||||
httpAction(this.url.deleteBatch, params, 'post').then((res) => {
|
||||
if (res.success) {
|
||||
this.$message.success(this.$t('operationSuccessful'))
|
||||
this.selectedRowKeys = []
|
||||
this.$refs.tableData.$emit('searchGetData')
|
||||
} else {
|
||||
this.$message.warning(this.$t('operationFailed'))
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.warning(this.$t('selectLeastOne'))
|
||||
}
|
||||
},
|
||||
operationClick (operation, record) {
|
||||
if (this[operation.clickEvent]) {
|
||||
this[operation.clickEvent](record)
|
||||
}
|
||||
},
|
||||
// 表格操作列的删除
|
||||
deleteDetail (val) {
|
||||
/**
|
||||
* 发布
|
||||
*/
|
||||
handleRelease ({ id }) {
|
||||
this.$confirm({
|
||||
content: this.$t('confirmDeletion'),
|
||||
onOk:
|
||||
async () => {
|
||||
getAction(this.url.deleteUrl, { id: val.id }).then((res) => {
|
||||
if (res.success) {
|
||||
this.$message.success(this.$t('operationSuccessful'))
|
||||
this.$refs.tableData.$emit('searchGetData')
|
||||
} else {
|
||||
this.$message.warning(this.$t('operationFailed'))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
// 表格选中的回调
|
||||
onSelectChange (selKeys) {
|
||||
this.selectedRowKeys = selKeys
|
||||
},
|
||||
// 表格操作列-回传至文档库
|
||||
backDocument (val) {
|
||||
this.$confirm({
|
||||
content: this.$t('backDocument'),
|
||||
title: this.$t('confirmRelease'),
|
||||
content: this.$t('confirmReleaseContent'),
|
||||
onOk: () => {
|
||||
const params = {
|
||||
id: val.id,
|
||||
fileName: val.fileName,
|
||||
connectId: val.connectId
|
||||
}
|
||||
getAction(this.url.backDocument, params).then(res => {
|
||||
if (res.data.success) {
|
||||
this.$message.success(this.$t('operationSuccessful'))
|
||||
this.$refs.tableData.$emit('searchGetData')
|
||||
this.loading = true
|
||||
releaseSplitStandard({ id }).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.modalFormOk()
|
||||
} else {
|
||||
this.$message.warning(res.data.message)
|
||||
this.$message.warn(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 表格操作列的查看
|
||||
detailClick (val) {
|
||||
handleEdit (record) {
|
||||
this.$router.push({
|
||||
path: '/documentTool/split/detail',
|
||||
path: '/documentTool/DocumentSplitDetail',
|
||||
query: {
|
||||
infoId: val.id,
|
||||
infoNumber: val.serialNumber,
|
||||
createBy: val.createBy
|
||||
infoId: record.id,
|
||||
infoNumber: record.serialNumber,
|
||||
createBy: record.createBy,
|
||||
standardName: 'GB 7258-2020 机动车运行安全'
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -227,5 +261,4 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@import '~@assets/less/common.less';
|
||||
</style>
|
||||
|
||||
+113
-122
@@ -1,8 +1,9 @@
|
||||
<template>
|
||||
<a-card :bordered="false">
|
||||
<div class="left-tree-div">
|
||||
<div class="div-left">
|
||||
<div>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0">
|
||||
<div class="page-left-right-layout">
|
||||
<!--树部分-->
|
||||
<div class="page-left-box">
|
||||
<a-spin :spinning="loading">
|
||||
<a-input-search style="margin-bottom: 8px" :placeholder="$t('nodeQuickLookup')" @change="onLeftChange"
|
||||
@search="onSearch" />
|
||||
<a-tree
|
||||
@@ -19,7 +20,7 @@
|
||||
<template #title="{ key: treeKey, title, record }">
|
||||
<a-dropdown :trigger="['contextmenu']">
|
||||
<span v-if="title.indexOf(searchValue) >= -1 && title.length <= 18" :title="title"
|
||||
class="expand-title">
|
||||
class="expand-title">
|
||||
{{ title.substr(0, title.indexOf(searchValue)) }}<span style="color: #f50">{{ searchValue }}</span>
|
||||
{{ title.substr(title.indexOf(searchValue) + searchValue.length) }}
|
||||
</span>
|
||||
@@ -31,9 +32,12 @@
|
||||
<span
|
||||
v-else-if="title.indexOf(searchValue) >= -1 && title.length > 18 && title.indexOf(searchValue)<=18"
|
||||
:title="title">
|
||||
{{ title.substr(0, title.indexOf(searchValue)) }}<span style="color: #f50">
|
||||
{{ title.substr(0, title.indexOf(searchValue)) }}
|
||||
<span style="color: #f50">
|
||||
{{ title.indexOf(searchValue) + searchValue.length > 18 ? searchValue.substr(0, 18 - title.indexOf(searchValue)) : searchValue
|
||||
}}</span>{{ title.indexOf(searchValue) + searchValue.length > 18 ? '...' : title.substr(title.indexOf(searchValue) + searchValue.length, 18 - title.indexOf(searchValue) - searchValue.length) + '...'
|
||||
}}
|
||||
</span>
|
||||
{{ title.indexOf(searchValue) + searchValue.length > 18 ? '...' : title.substr(title.indexOf(searchValue) + searchValue.length, 18 - title.indexOf(searchValue) - searchValue.length) + '...'
|
||||
}}
|
||||
</span>
|
||||
<span v-else :title="title">
|
||||
@@ -62,139 +66,122 @@
|
||||
</a-dropdown>
|
||||
</template>
|
||||
</a-tree>
|
||||
</div>
|
||||
</a-spin>
|
||||
</div>
|
||||
<div class="div-right">
|
||||
<div class="div-right-wrapper">
|
||||
<div class="right-search-header table-page-search-wrapper">
|
||||
<search :flag="'4'" :url="url" :infoId="$route.query.infoId"
|
||||
:menuId="menuId" @reset="searchReset" @search="searchQuery" />
|
||||
</div>
|
||||
<div class="table-operator">
|
||||
<div class="operator-text" @click="handleCopyManage">
|
||||
<!-- v-if="$route.query.createBy === userData.username || administrators"-->
|
||||
<!-- v-has="'split:sarFileSplitItems:copy'"-->
|
||||
<a-icon type="copy" />
|
||||
{{ $t('copy') }}
|
||||
</div>
|
||||
<div class="operator-text" @click="handleAddManage">
|
||||
<!-- v-if="$route.query.createBy === userData.username || administrators"-->
|
||||
<!-- v-has="'split:sarFileSplitItems:add'"-->
|
||||
<a-icon type="plus" />
|
||||
{{ $t('add') }}
|
||||
</div>
|
||||
<div class="operator-text upload-split"
|
||||
v-if="isCanOperate"
|
||||
@click="handleImportManage" v-has="'split:sarFileSplitItems:import'">
|
||||
<a-icon type="import" :rotate="-90" v-if="uploadMenuId === undefined || uploadMenuId === ''" />
|
||||
{{ (uploadMenuId === '' || uploadMenuId === undefined) ? $t('import') : '' }}
|
||||
<upload v-if="menuId" ref="uploadSplit" :infoId="infoId" :menuId="uploadMenuId"
|
||||
@uploadSuccess="uploadSuccess"></upload>
|
||||
</div>
|
||||
<div class="operator-text" @click="handleExportManage"
|
||||
v-has="'split:sarFileSplitItems:export'">
|
||||
<a-icon type="export" :rotate="-90" />
|
||||
{{ $t('export') }}
|
||||
</div>
|
||||
<div class="operator-text" @click="handleDownManage"
|
||||
v-if="isCanOperate"
|
||||
v-has="'split:sarFileSplitItems:template'">
|
||||
<a-icon type="download" />
|
||||
{{ $t('templateDownload') }}
|
||||
</div>
|
||||
<div class="operator-text" @click="handleMergeManage"
|
||||
v-if="isCanOperate"
|
||||
v-has="'split:sarFileSplitItems:merge'">
|
||||
<a-icon type="snippets" />
|
||||
{{ $t('docTool.split.mergerClause') }}
|
||||
</div>
|
||||
<div class="operator-text" @click="handleManage"
|
||||
v-if="isCanOperate"
|
||||
v-has="'split:sarFileSplitItems:set'">
|
||||
<a-icon type="setting" />
|
||||
{{ $t('docTool.split.batchSetting') }}
|
||||
</div>
|
||||
<div class="operator-text" @click="handleBatCancel"
|
||||
v-if="isCanOperate"
|
||||
v-has="'split:sarFileSplitItems:delete'">
|
||||
<a-icon type="delete" />
|
||||
{{ $t('batchDelete') }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="split-detail-table">
|
||||
<j-table
|
||||
v-if="columns && columns.length > 0"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:can-drag="true"
|
||||
rowKey="id"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
:pagination="ipagination"
|
||||
:scroll="{x: '100%'}"
|
||||
@change="tableOnChange">
|
||||
<!--表格部分-->
|
||||
<div class="page-right-box">
|
||||
<div class="table-operator">
|
||||
<!--导入-->
|
||||
<a-upload name="file"
|
||||
:showUploadList="false"
|
||||
:multiple="false"
|
||||
:headers="tokenHeader"
|
||||
:action="importExcelUrl"
|
||||
v-has="'domesticStandard:import'"
|
||||
@change="handleImportExcel">
|
||||
<a-button type="primary" icon="download" ghost>{{ $t('import') }}</a-button>
|
||||
</a-upload>
|
||||
<!--导出-->
|
||||
<a-button icon="upload"
|
||||
type="primary"
|
||||
ghost
|
||||
v-has="'domesticStandard:export'"
|
||||
@click="handleExportXls($t('standardRegulationLibrary.domesticStandard.exportFileName'))">
|
||||
{{ $t('export') }}
|
||||
</a-button>
|
||||
<!--批量删除-->
|
||||
<a-button type="primary" icon="delete" ghost @click="batchDel" v-has="'domesticStandard:batchDel'">{{ $t('batchDelete') }}</a-button>
|
||||
<!--模板下载-->
|
||||
<a-button type="primary"
|
||||
icon="download"
|
||||
ghost
|
||||
v-has="'domesticStandard:downTemplate'"
|
||||
@click="downTemplate($t('standardRegulationLibrary.domesticStandard.templateName'))">
|
||||
{{ $t('templateDownload') }}
|
||||
</a-button>
|
||||
<!--批量复制-->
|
||||
<a-button type="primary" ghost @click="handleCopyManage" v-has="'domesticStandard:batchDel'">{{ $t('docTool.split.batchCopy') }}</a-button>
|
||||
<!--批量编辑-->
|
||||
<a-button type="primary" ghost @click="handleManage">{{ $t('docTool.split.batchEdit') }}</a-button>
|
||||
<!--合并条款-->
|
||||
<a-button type="primary" ghost @click="handleMergeManage">{{ $t('docTool.split.mergerClause') }}</a-button>
|
||||
</div>
|
||||
<div>
|
||||
<j-table
|
||||
v-if="columns && columns.length > 0"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:can-drag="true"
|
||||
rowKey="id"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
:pagination="ipagination"
|
||||
:scroll="{x: '100%'}"
|
||||
@change="tableOnChange">
|
||||
|
||||
<template slot="operation" slot-scope="{text, record}">
|
||||
<a v-for="(operation, index) in operationList" :key="index" @click="operationClick(operation,record)">
|
||||
<!-- v-has="operation.has"-->
|
||||
<span class="text">
|
||||
<template slot="operation" slot-scope="{text, record}">
|
||||
<a v-for="(operation, index) in operationList" :key="index" @click="operationClick(operation,record)">
|
||||
<!-- v-has="operation.has"-->
|
||||
<span class="text">
|
||||
{{ operation.text }}
|
||||
</span>
|
||||
</a>
|
||||
</template>
|
||||
</a>
|
||||
</template>
|
||||
|
||||
<!-- 详情-->
|
||||
<template slot="detailClick" slot-scope="{text, record}">
|
||||
<a-tooltip overlay-class-name="tooltip-style">
|
||||
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
|
||||
<a class="table-text textName" @click="detailClick(record)" v-if="text || text === 0">{{ text }}</a>
|
||||
<div class="table-text" v-else>{{ global.emptyLine }}</div>
|
||||
</a-tooltip>
|
||||
</template>
|
||||
<!-- 详情-->
|
||||
<template slot="detailClick" slot-scope="{text, record}">
|
||||
<a-tooltip overlay-class-name="tooltip-style">
|
||||
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
|
||||
<a class="table-text textName" @click="detailClick(record)" v-if="text || text === 0">{{ text }}</a>
|
||||
<div class="table-text" v-else>{{ global.emptyLine }}</div>
|
||||
</a-tooltip>
|
||||
</template>
|
||||
|
||||
<template slot="showContent" slot-scope="text, record">
|
||||
<span class="content-show" @click="showContent(text,record)">{{record.iterms_conditions&&record.iterms_conditions!=='null'?record.iterms_conditions.replace(/<.*?>/ig, ' ') : ''}}</span>
|
||||
</template>
|
||||
<template slot="showContent" slot-scope="text, record">
|
||||
<span class="content-show"
|
||||
@click="showContent(text,record)">{{ record.iterms_conditions && record.iterms_conditions !== 'null' ? record.iterms_conditions.replace(/<.*?>/ig, ' ') : ''
|
||||
}}</span>
|
||||
</template>
|
||||
|
||||
</j-table>
|
||||
</div>
|
||||
</j-table>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 条款详情 -->
|
||||
<split-clause-detail ref="splitClauseDetail"></split-clause-detail>
|
||||
<!-- 添加节点 -->
|
||||
<split-detail-node-add ref="splitDetailNodeAdd" @ok="nodeAddOk" @update="nodeUpdateOk"></split-detail-node-add>
|
||||
<!-- 批量设置弹框 -->
|
||||
<split-detail-batch-setting ref="splitDetailBatchSetting" @ok="batchSettingOk"></split-detail-batch-setting>
|
||||
<split-add-form ref="splitForm" :flag="'4'"
|
||||
:url="url" :infoId="infoId" :menuId="menuId" :itemId="itemId" @closeVisible="closeVisible"
|
||||
@sumber="sumber"></split-add-form>
|
||||
|
||||
</div>
|
||||
</a-card>
|
||||
|
||||
<!-- 条款详情 -->
|
||||
<split-clause-detail ref="splitClauseDetail"></split-clause-detail>
|
||||
<!-- 添加节点 -->
|
||||
<split-detail-node-add ref="splitDetailNodeAdd" @ok="nodeAddOk" @update="nodeUpdateOk"></split-detail-node-add>
|
||||
<!-- 批量设置弹框 -->
|
||||
<split-detail-batch-setting ref="splitDetailBatchSetting" @ok="batchSettingOk"></split-detail-batch-setting>
|
||||
<split-add-form ref="splitForm" :flag="'4'"
|
||||
:url="url" :infoId="infoId" :menuId="menuId" :itemId="itemId" @closeVisible="closeVisible"
|
||||
@sumber="sumber"></split-add-form>
|
||||
</internal-detail-page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Search from '@/components/customField/Search'
|
||||
import JTable from '@/components/jero/JTable'
|
||||
import InternalDetailPage from '../../components/InternalDetailPage.vue'
|
||||
import JTable from '../../components/jero/JTable.vue'
|
||||
// 条款添加
|
||||
import SplitAddForm from './SplitAddForm'
|
||||
import SplitAddForm from './modules/SplitAddForm.vue'
|
||||
// 条款内容弹框
|
||||
import SplitClauseDetail from './SplitClauseDetail'
|
||||
import SplitClauseDetail from './modules/SplitClauseDetail.vue'
|
||||
// 添加左侧树节点弹框
|
||||
import SplitDetailNodeAdd from './SplitDetailNodeAdd'
|
||||
import SplitDetailNodeAdd from './modules/SplitDetailNodeAdd.vue'
|
||||
// 批量设置弹框
|
||||
import SplitDetailBatchSetting from './SplitDetailBatchSetting'
|
||||
import SplitDetailBatchSetting from './modules/SplitDetailBatchSetting.vue'
|
||||
import Vue from 'vue'
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import { ACCESS_TOKEN } from '../../store/mutation-types.js'
|
||||
import { mapGetters } from 'vuex'
|
||||
import { postAction, getAction, downloadFile } from '@/api/manage'
|
||||
import { postAction, getAction, downloadFile } from '../../api/manage.js'
|
||||
import moment from 'moment'
|
||||
import { ConfigurableTableMixin } from '../../../mixins/ConfigurableTableMixin'
|
||||
import { ConfigurableTableMixin } from '../../mixins/ConfigurableTableMixin.js'
|
||||
import {getDocSplitTableHeader} from '../../api/documentToolApi.js'
|
||||
|
||||
export default {
|
||||
name: 'SplitDetail',
|
||||
name: 'DocumentSplitDetail',
|
||||
components: {
|
||||
Search,
|
||||
InternalDetailPage,
|
||||
JTable,
|
||||
SplitAddForm,
|
||||
SplitClauseDetail,
|
||||
@@ -265,6 +252,10 @@ export default {
|
||||
menu_id: this.menuId,
|
||||
info_id: this.infoId
|
||||
}
|
||||
},
|
||||
// 页面标题是标准名称
|
||||
pageTitle () {
|
||||
return this.$route.query.standardName
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
@@ -888,11 +879,11 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
@import '~../../assets/less/common.less';
|
||||
|
||||
@media screen and (min-width: 600px) and (max-width: 1600px) {
|
||||
.operator-text {
|
||||
margin-right: 20px !important;
|
||||
}
|
||||
.page-left-right-layout {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
}
|
||||
</style>
|
||||
@@ -2,11 +2,11 @@
|
||||
<a-card :bordered="false" class="page-left-right-layout">
|
||||
<!-- 树部分-->
|
||||
<div class="page-left-box">
|
||||
<a-spin :spinning="treeLoading">
|
||||
<!-- $t('standardRegulationLibrary.domesticStandard.treeSearchPlaceholder')-->
|
||||
<a-input-search v-model="treeInput"
|
||||
:placeholder="$t('standardRegulationLibrary.domesticStandard.treeSearchPlaceholder')"
|
||||
@search="handleTreeSearch" />
|
||||
<!-- $t('standardRegulationLibrary.domesticStandard.treeSearchPlaceholder')-->
|
||||
<a-input-search v-model="treeInput"
|
||||
:placeholder="$t('standardRegulationLibrary.domesticStandard.treeSearchPlaceholder')"
|
||||
@search="handleTreeSearch" />
|
||||
<div class="page-tree-box page-tree-box-has-search">
|
||||
<a-tree :show-line="true" :show-icon="true" :tree-data="treeData" :selected-keys="selectedTreeKeys">
|
||||
<a-icon type="folder" slot="folder" class="tree-icon" />
|
||||
<a-icon type="file" slot="file" class="tree-icon" />
|
||||
@@ -22,7 +22,8 @@
|
||||
</template>
|
||||
<span class="tree-node-custom-title">{{ record.title }}</span>
|
||||
</a-tooltip>
|
||||
<template v-if="record.key === mouseInNodeKey">
|
||||
<!---->
|
||||
<div class="tree-operate-node-btn-box" :class="{'tree-operate-node-btn-box-hide': record.key !== mouseInNodeKey}">
|
||||
<!-- 新增-->
|
||||
<a-button icon="plus"
|
||||
class="tree-operate-node-btn"
|
||||
@@ -43,11 +44,11 @@
|
||||
@click.stop="handleDelTreeNode(record)">
|
||||
<i class="iconfont icon-shanchu_" />
|
||||
</a-button>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</a-tree>
|
||||
</a-spin>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 表格部分-->
|
||||
<div class="page-right-box">
|
||||
@@ -539,35 +540,6 @@ export default {
|
||||
color: #1D2129;
|
||||
}
|
||||
|
||||
.tree-operate-node {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
align-items: center;
|
||||
|
||||
&-btn {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background: rgba(213, 44, 38, 0.08);
|
||||
border-radius: 2px 2px 2px 2px;
|
||||
border: none;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-left: 4px;
|
||||
padding: 0;
|
||||
|
||||
/deep/ .anticon {
|
||||
margin-top: 2px;
|
||||
color: #D52C26;
|
||||
}
|
||||
|
||||
i {
|
||||
color: @primary-color;
|
||||
height: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/deep/ .ant-tree li span.ant-tree-switcher.ant-tree-switcher-noop {
|
||||
display: none;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user