| | |
| | | <template> |
| | | <div> |
| | | <a-table :columns="columns" :data-source="dataSource" bordered :pagination="ipagination" |
| | | :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="docId"> |
| | | <div style="flex: 1"> |
| | | <a-table :columns="columns" :data-source="dataSource" bordered :pagination="ipagination" :loading="loading" |
| | | :scroll="{y:265}" :customRow="customRow" :size="size" rowKey="docId" @change="handleTableChange"> |
| | | |
| | | <!-- 字符串超长截取省略号显示--> |
| | | <span slot="docName" slot-scope="text"> |
| | | <j-ellipsis :value="text"/> |
| | | </span> |
| | | </a-table> |
| | | |
| | | <DocumentModal ref="modalForm" @ok="modalFormOk"/> |
| | | |
| | | <NcDocumentAssignModal ref="documentAssignModalRef"/> |
| | | <NcDocumentAssignModal :size="size" ref="documentAssignModalRef" |
| | | :currentDocumentInfo="currentRightClickedDocumentInfo"/> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getAction, postAction } from '@/api/manage' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import DocumentModal from './DocumentModal' |
| | | import DocumentModal from '../../../../common/DocumentModal' |
| | | import NcDocumentAssignModal from './NcDocumentAssignModal' |
| | | import dncApi from '@api/dnc' |
| | | |
| | | export default { |
| | | name: 'NcDocumentTableList', |
| | | components: { NcDocumentAssignModal, DocumentModal }, |
| | | mixins: [JeecgListMixin], |
| | | props: { |
| | | currentNCDocumentAttributionInfo: { |
| | | type: Object |
| | | }, |
| | | size: { |
| | | type: String |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | disableMixinCreated: true, |
| | | columns: [ |
| | | { |
| | | title: '序号', |
| | | dataIndex: 'rowIndex', |
| | | key: 'rowIndex', |
| | | width: 65, |
| | | width: 50, |
| | | align: 'center', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | | } |
| | | }, |
| | | { title: '文件名称', dataIndex: 'docName', align: 'center' }, |
| | | { title: '代码版本', dataIndex: 'docAlias', align: 'center' }, |
| | | { title: '出库状态', dataIndex: 'pullStatus', align: 'center' }, |
| | | { title: '状 态', dataIndex: 'docStatus', align: 'center' }, |
| | | { title: '系统指定版本', dataIndex: 'publishVersion', align: 'center' }, |
| | | { title: '上传时间', dataIndex: 'createTime', align: 'center' } |
| | | ], |
| | | dataSource: [ |
| | | { |
| | | 'docId': '1876099281127645185', |
| | | 'docName': 'avatar2.jpg', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'jpg', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1876099281458995202', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2025-01-06 10:51:40', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1868504592315248641', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | title: '文件名称', |
| | | dataIndex: 'docName', |
| | | key: 'docName', |
| | | align: 'center', |
| | | scopedSlots: { customRender: 'docName' }, |
| | | width: 500, |
| | | sorter: true |
| | | }, |
| | | { |
| | | 'docId': '1876114720452943873', |
| | | 'docName': 'color.less', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'less', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1876114720582967297', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2025-01-06 11:53:01', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1868504592315248641', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | title: '出库状态', |
| | | dataIndex: 'pullStatus_dictText', |
| | | key: 'pullStatus', |
| | | align: 'center', |
| | | filters: [ |
| | | { text: '未出库', value: 1 }, |
| | | { text: '已出库', value: 2 } |
| | | ], |
| | | width: 100 |
| | | }, |
| | | { |
| | | 'docId': '1876114736512933889', |
| | | 'docName': 'index.html', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'html', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1876114736705871874', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2025-01-06 11:53:05', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1868504592315248641', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | title: '状态', |
| | | dataIndex: 'docDispatchStatus_dictText', |
| | | key: 'docDispatchStatus', |
| | | align: 'center', |
| | | filters: [ |
| | | { text: '编制', value: 1 }, |
| | | { text: '校对', value: 2 }, |
| | | { text: '批准', value: 3 }, |
| | | { text: '试切', value: 4 }, |
| | | { text: '定型', value: 5 } |
| | | ], |
| | | width: 70 |
| | | }, |
| | | { title: '系统指定版本', dataIndex: 'publishVersion', align: 'center', width: 120 }, |
| | | { |
| | | 'docId': '1876114746621206529', |
| | | 'docName': 'logo.png', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'png', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1876114746818338818', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2025-01-06 11:53:07', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1868504592315248641', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1876114758923100161', |
| | | 'docName': 'lxzn.png', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'png', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1876114759111843842', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2025-01-06 11:53:10', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1868504592315248641', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1876114776241381377', |
| | | 'docName': 'v2.js', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'js', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1876114776438513666', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2025-01-06 11:53:14', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1868504592315248641', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | title: '创建时间', |
| | | dataIndex: 'createTime', |
| | | align: 'center', |
| | | width: 150, |
| | | sorter: true |
| | | } |
| | | ], |
| | | dataSource: [], |
| | | currentRightClickedDocumentInfo: {}, |
| | | currentClickedDocumentInfo: {}, |
| | | url: { |
| | | list: '' |
| | | list: '/nc/doc/find/page', |
| | | submitProccess:'/dncFlow/dispatchFile/submitProccess' |
| | | } |
| | | } |
| | | }, |
| | | watch: { |
| | | currentNCDocumentAttributionInfo: { |
| | | handler(value) { |
| | | this.currentClickedDocumentInfo = this.currentRightClickedDocumentInfo = {} |
| | | }, |
| | | immediate: true |
| | | } |
| | | }, |
| | | created() { |
| | | this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod) |
| | | }, |
| | | methods: { |
| | | loadData(arg) { |
| | | if (!this.url.list) { |
| | | this.$message.error('请设置url.list属性!') |
| | | return |
| | | } |
| | | const { attributionId, attributionType, docClassCode, autoClickedLevelInfo } = this.currentNCDocumentAttributionInfo |
| | | //加载数据 若传入参数1则加载第一页的内容 |
| | | if (arg === 1) this.ipagination.current = 1 |
| | | var params = this.getQueryParams()//查询条件 |
| | | params.attributionId = attributionId |
| | | params.attributionType = attributionType |
| | | params.docClassCode = docClassCode |
| | | if (!params) return false |
| | | this.dataSource = [] |
| | | this.loading = true |
| | | getAction(this.url.list + `/${this.ipagination.current}/${this.ipagination.pageSize}`, params).then((res) => { |
| | | if (res.success) { |
| | | this.dataSource = res.result.records |
| | | if (autoClickedLevelInfo) { |
| | | const tableRowRecord = this.dataSource.find(item => item.docId === autoClickedLevelInfo.docId) |
| | | this.handleTableRowClick(tableRowRecord) |
| | | this.$bus.$emit('searchNcFinished') |
| | | } |
| | | if (res.result.total) { |
| | | this.ipagination.total = res.result.total |
| | | } else { |
| | | this.ipagination.total = 0 |
| | | } |
| | | } else { |
| | | this.$message.warning(res.message) |
| | | } |
| | | }).finally(() => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * 自定义表格行功能 |
| | | * @param record 表格行记录 |
| | | */ |
| | | customRow(record) { |
| | | return { |
| | | style: { |
| | | backgroundColor: this.currentClickedDocumentInfo.docId === record.docId ? '#BAE7FF' : 'transparent' |
| | | }, |
| | | on: { |
| | | contextmenu: event => { |
| | | event.preventDefault() |
| | | this.$emit('handleTableContextMenuOpen', { ...record, param: 'document' }) |
| | | this.currentRightClickedDocumentInfo = Object.assign({ param: 'NC' }, record) |
| | | this.$emit('handleTableContextMenuOpen', this.currentRightClickedDocumentInfo) |
| | | }, |
| | | click: () => { |
| | | this.$bus.$emit('sendCurrentLevelInfo', record) |
| | | this.handleTableRowClick(record) |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * 表格行点击事件 |
| | | * @param record 表格行记录 |
| | | */ |
| | | handleTableRowClick(record) { |
| | | if (this.currentClickedDocumentInfo.docId === record.docId) return |
| | | this.currentClickedDocumentInfo = Object.assign({}, record) |
| | | this.$bus.$emit('sendCurrentClickedDocumentInfo', record) |
| | | }, |
| | | |
| | | /** |
| | | * 表格分页、排序改变、筛选时触发 |
| | | * @param pagination 分页器选项 |
| | | * @param filters 筛选选项 |
| | | * @param sorter 排序选项 |
| | | */ |
| | | handleTableChange(pagination, filters, sorter) { |
| | | if (sorter.order) { |
| | | this.isorter.column = sorter.field |
| | | this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc' |
| | | } else { |
| | | this.isorter.column = 'createTime' |
| | | this.isorter.order = 'desc' |
| | | } |
| | | for (let key in filters) { |
| | | this.filters[key] = filters[key].join(',') |
| | | } |
| | | this.ipagination = pagination |
| | | this.loadData() |
| | | }, |
| | | |
| | | handleDocumentEdit(record, modalTitle) { |
| | | if (!this.$refs.modalForm) return |
| | | this.$refs.modalForm.edit(record) |
| | | this.$refs.modalForm.title = modalTitle |
| | | }, |
| | | |
| | | handleDocumentAssign(record, modalTitle) { |
| | | if (!this.$refs.documentAssignModalRef) return |
| | | this.$refs.documentAssignModalRef.title = modalTitle |
| | | this.$refs.documentAssignModalRef.visible = true |
| | | }, |
| | | |
| | | handleAppoint(record){ |
| | | const that = this |
| | | console.log("sssss",record) |
| | | that.$confirm({ |
| | | title: '提示', |
| | | content: `确认定型吗?`, |
| | | okText: '确认', |
| | | cancelText: '取消', |
| | | onOk: () => { |
| | | let dispatchFile = { |
| | | 'docId':record.docId, |
| | | 'attributionId':record.attributionId, |
| | | 'attributionType':record.attributionType, |
| | | 'fileId':record.publishFileId |
| | | } |
| | | postAction(this.url.submitProccess,dispatchFile) |
| | | .then(res => { |
| | | if (res.success) { |
| | | this.$message.success('流程发起成功') |
| | | } else { |
| | | that.$notification.error({ |
| | | message: '消息', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }) |
| | | .catch(err => { |
| | | that.$notification.error({ |
| | | message: '消息', |
| | | description: err.message |
| | | }) |
| | | }) |
| | | .finally(() => { |
| | | that.$destroyAll() |
| | | }) |
| | | }, |
| | | onCancel: () => { |
| | | that.$destroyAll() |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | handleDocumentExtract(record) { |
| | | const that = this |
| | | const { docId, attributionId, attributionType } = record |
| | | that.$confirm({ |
| | | title: '提示', |
| | | content: `确认提取刀具吗?`, |
| | | okText: '确认', |
| | | cancelText: '取消', |
| | | onOk: () => { |
| | | dncApi.extractToolsApi({ docId, attributionId, attributionType }) |
| | | .then(res => { |
| | | if (res.success) { |
| | | that.$notification.success({ |
| | | message: '消息', |
| | | description: `提取成功`, |
| | | }) |
| | | that.$bus.$emit('reloadCutterList') |
| | | } else { |
| | | that.$notification.error({ |
| | | message: '消息', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }) |
| | | .catch(err => { |
| | | that.$notification.error({ |
| | | message: '消息', |
| | | description: err.message |
| | | }) |
| | | }) |
| | | .finally(() => { |
| | | that.$destroyAll() |
| | | }) |
| | | }, |
| | | onCancel: () => { |
| | | that.$destroyAll() |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | handleDelete() { |
| | | // 此处函数为屏蔽mixins中的同名函数,通用函数写在父级中 |
| | | }, |
| | | |
| | | triggerCorrespondingMethod({ methodName, level, modalTitle, tableRowInfo }) { |
| | | if (this[methodName] && tableRowInfo.attributionType === 5) this[methodName](tableRowInfo, modalTitle) |
| | | if (this[methodName] && tableRowInfo.param === 'NC') this[methodName](tableRowInfo, modalTitle) |
| | | } |
| | | } |
| | | } |