产品结构树:
1、工序和工步层级新增加工设备型号和加工设备类型字段
2、各层级详细信息调整创建人及修改人字段
3、指派到设备窗口布局完成100%
| | |
| | | |
| | | export default { |
| | | //-------------------------产品结构树------------------------------------------------ |
| | | // 获取产品结构树 |
| | | getProductStructureTreeApi: () => getAction('/nc/product/load/tree'), |
| | | |
| | | // 获取所有设备的列表 |
| | | getAllDeviceListApi: (type) => getAction('/nc/device/list/all'), |
| | | // 导入NC程序/文档 |
| | | importDocumentFromLocalApi: ({ params, formData }) => { |
| | | const paramsStringify = querystring.stringify(params) |
| | | return uploadAction(`/nc/doc/add?${paramsStringify}`, formData) |
| | | }, |
| | | |
| | | // 获取指派到设备中的设备树 |
| | | getDocumentAssignDeviceTreeApi: ({ attributionType, attributionId }) => getAction(`/nc/device/load/depart/tree/${attributionType}/${attributionId}`), |
| | | // 下载文档 |
| | | downloadDocumentApi: ({ id, docName }) => downloadFile(`/nc/doc/download/${id}`, docName), |
| | | // 文档出库 |
| | |
| | | <a-descriptions-item label="处理类型 ">{{currentLevelDetails.processType}}</a-descriptions-item> |
| | | <a-descriptions-item label="结构类型 ">{{currentLevelDetails.structureType}}</a-descriptions-item> |
| | | <a-descriptions-item label="重量" :span="2">{{currentLevelDetails.componentWeight}}</a-descriptions-item> |
| | | <a-descriptions-item label="创建人">{{currentLevelDetails.createUser_dicText}}</a-descriptions-item> |
| | | <a-descriptions-item label="创建人">{{currentLevelDetails.createName}}</a-descriptions-item> |
| | | <a-descriptions-item label="创建时间" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item> |
| | | <a-descriptions-item label="修改人">{{currentLevelDetails.updateUser_dicText}}</a-descriptions-item> |
| | | <a-descriptions-item label="修改人">{{currentLevelDetails.updateName}}</a-descriptions-item> |
| | | <a-descriptions-item label="修改时间" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item> |
| | | <a-descriptions-item label="描述" :span="3">{{currentLevelDetails.description}}</a-descriptions-item> |
| | | </a-descriptions> |
| | |
| | | <a-descriptions-item label="文档状态">{{currentLevelDetails.docStatus_dictText}}</a-descriptions-item> |
| | | <a-descriptions-item label="系统指定版本">{{currentLevelDetails.publishVersion}}</a-descriptions-item> |
| | | <a-descriptions-item label="出库状态">{{currentLevelDetails.pullStatus_dictText}}</a-descriptions-item> |
| | | <a-descriptions-item label="出库人" :span="2">{{currentLevelDetails.pullUser}}</a-descriptions-item> |
| | | <a-descriptions-item label="出库人" :span="2">{{currentLevelDetails.pullUser_dictText}}</a-descriptions-item> |
| | | <a-descriptions-item label="创建人">{{currentLevelDetails.createBy_dictText}}</a-descriptions-item> |
| | | <a-descriptions-item label="创建时间" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item> |
| | | <a-descriptions-item label="修改人">{{currentLevelDetails.updateBy_dictText}}</a-descriptions-item> |
| | | <a-descriptions-item label="修改时间" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item> |
| | | <a-descriptions-item label="描述" :span="3">{{currentLevelDetails.description}}</a-descriptions-item> |
| | | </a-descriptions> |
| | | </template> |
| | |
| | | <template> |
| | | <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false"> |
| | | |
| | | <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false" :size="size" rowKey="fileId"> |
| | | <template slot="rowIndex" slot-scope="text,record,index"> |
| | | <span :style="{color:setCurrentVersionColor(record.publishFlag)}">{{parseInt(index) + 1}}</span> |
| | | </template> |
| | | <template slot="fileName" slot-scope="text,record,index"> |
| | | <span :style="{color:setCurrentVersionColor(record.publishFlag)}"> |
| | | {{text}}.{{record.fileSuffix}} |
| | | <span v-if="record.publishFlag">[当前版本]</span> |
| | | </span> |
| | | </template> |
| | | <template slot="docVersion" slot-scope="text,record"> |
| | | <span :style="{color:setCurrentVersionColor(record.publishFlag)}">{{text}}</span> |
| | | </template> |
| | | <template slot="fileSize" slot-scope="text,record"> |
| | | <span :style="{color:setCurrentVersionColor(record.publishFlag)}">{{(text/1024).toFixed(2)}}KB</span> |
| | | </template> |
| | | </a-table> |
| | | </template> |
| | | |
| | | <script> |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import { getAction } from '@/api/manage' |
| | | |
| | | export default { |
| | | name: 'DocumentVersionTableList', |
| | | mixins: [JeecgListMixin], |
| | | components: {}, |
| | | props: { |
| | | currentDocumentInfo: { |
| | | type: Object |
| | | }, |
| | | size: { |
| | | type: String |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | disableMixinCreated: true, |
| | | queryParams: {}, |
| | | columns: [ |
| | | { |
| | | title: '序号', |
| | | dataIndex: 'rowIndex', |
| | | key: 'rowIndex', |
| | | width: 65, |
| | | align: 'center', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | | } |
| | | }, |
| | | { title: '文件名称', dataIndex: 'fileName', align: 'center' }, |
| | | { title: '版本号', dataIndex: 'docVersion', align: 'center' }, |
| | | { title: '文件大小', dataIndex: 'fileSize', align: 'center' } |
| | | { title: '序号', dataIndex: 'rowIndex', width: 65, align: 'center', scopedSlots: { customRender: 'rowIndex' } }, |
| | | { title: '文件名称', dataIndex: 'fileName', align: 'center', scopedSlots: { customRender: 'fileName' } }, |
| | | { title: '版本号', dataIndex: 'docVersion', align: 'center', scopedSlots: { customRender: 'docVersion' } }, |
| | | { title: '文件大小', dataIndex: 'fileSize', align: 'center', scopedSlots: { customRender: 'fileSize' } } |
| | | ], |
| | | url: { |
| | | list: '' |
| | | list: '/nc/file/find/list' |
| | | } |
| | | } |
| | | }, |
| | | methods: {} |
| | | methods: { |
| | | loadData() { |
| | | this.dataSource = [] |
| | | if (!this.url.list) { |
| | | this.$message.error('请设置url.list属性!') |
| | | return |
| | | } |
| | | var params = this.getQueryParams()//查询条件 |
| | | params.docId = this.currentDocumentInfo.docId |
| | | if (!params) { |
| | | return false |
| | | } |
| | | this.loading = true |
| | | getAction(this.url.list, params).then((res) => { |
| | | if (res.success) { |
| | | this.dataSource = res.list |
| | | } else { |
| | | this.$message.warning(res.message) |
| | | } |
| | | }).finally(() => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * 设置表格中为当前版本的文件表格行颜色标识 |
| | | * @param publishFlag 是否为当前版本 |
| | | * @returns {string} 颜色标识 |
| | | */ |
| | | setCurrentVersionColor(publishFlag) { |
| | | return publishFlag ? '#DB9538' : '' |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | |
| | | <template> |
| | | <a-modal width="75%" :title="title" :visible="visible" @cancel="visible=false" :maskClosable="false" centered> |
| | | <a-modal width="75%" :title="title" :visible="visible" @cancel="visible=false" :maskClosable="false" centered |
| | | @ok="handleAssignDocumentToDevice"> |
| | | <div class="tabs-container"> |
| | | <div style="width: 72%"> |
| | | <a-tabs> |
| | |
| | | </div> |
| | | |
| | | |
| | | <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false" |
| | | :scroll="{y:440}" :size="size" rowKey="docId"> |
| | | <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false" :loading="loading" |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" |
| | | :scroll="{y:456}" :size="size" rowKey="docId"> |
| | | |
| | | </a-table> |
| | | </a-tab-pane> |
| | |
| | | <div style="width: 25%"> |
| | | <a-tabs> |
| | | <a-tab-pane tab="设备列表"> |
| | | <a-spin :spinning="spinning"> |
| | | <div style="display: flex;flex-direction: column;"> |
| | | <div style="display: flex"> |
| | | <a-input placeholder="输入关键字进行搜索" allowClear v-model="searchInput" |
| | | @change="handleSearchInputChange"/> |
| | | <a-dropdown :trigger="['click']" placement="bottomCenter" style="margin: 0 8px"> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item key="1" @click="expandedKeys = allTreeKeys">展开所有</a-menu-item> |
| | | <a-menu-item key="2" @click="expandedKeys = []">合并所有</a-menu-item> |
| | | </a-menu> |
| | | <a-button> |
| | | <a-icon type="bars"/> |
| | | </a-button> |
| | | </a-dropdown> |
| | | </div> |
| | | |
| | | <!--产品结构树--> |
| | | <div style="overflow:auto;margin-top: 10px;height: 400px"> |
| | | <a-tree ref="tree" checkable :checkedKeys="checkedKeys" :expandedKeys.sync="expandedKeys" |
| | | :autoExpandParent="autoExpandParent" |
| | | :treeData="treeDataSource" @check="handleTreeNodeCheck" @expand="handleTreeExpand"> |
| | | <template slot="title" slot-scope="{ label, parentId, entity, key:treeKey,type}"> |
| | | <span v-if="label.indexOf(searchValue) > -1">{{ label.substr(0, label.indexOf(searchValue)) }}<span |
| | | class="replaceSearch">{{ searchValue }}</span>{{ label.substr(label.indexOf(searchValue) + searchValue.length) }}</span> |
| | | <span v-else>{{ label }}</span> |
| | | </template> |
| | | </a-tree> |
| | | </div> |
| | | |
| | | <div> |
| | | <a-form> |
| | | <a-form-item label="指派原因"> |
| | | <a-textarea v-model="queryParam.applyReason" rows="3" style="resize: none"></a-textarea> |
| | | </a-form-item> |
| | | </a-form> |
| | | </div> |
| | | </div> |
| | | </a-spin> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getAction } from '@/api/manage' |
| | | import dncApi from '@/api/dnc' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import ATextarea from 'ant-design-vue/es/input/TextArea' |
| | | |
| | | export default { |
| | | name: 'NcDocumentAssignModal', |
| | | components: {}, |
| | | components: { ATextarea }, |
| | | mixins: [JeecgListMixin], |
| | | props: { |
| | | currentDocumentInfo: { |
| | | type: Object |
| | | }, |
| | | size: { |
| | | type: String |
| | | } |
| | |
| | | }, |
| | | { title: '文件名称', dataIndex: 'docName', align: 'center', width: 300 }, |
| | | { title: '设备编号', dataIndex: 'docCode', align: 'center' }, |
| | | { title: '出库状态', dataIndex: 'pullStatus', align: 'center' }, |
| | | { title: '状 态', dataIndex: 'docStatus', align: 'center' }, |
| | | { title: '出库状态', dataIndex: 'pullStatus_dictText', align: 'center' }, |
| | | { title: '状 态', dataIndex: 'docStatus_dictText', align: 'center' }, |
| | | { title: '上传时间', dataIndex: 'createTime', align: 'center', width: 200 } |
| | | ], |
| | | dataSource: [ |
| | | { |
| | | 'docId': '1872116579179859971', |
| | | 'docName': 'api-ms-win-core-heap-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116579423129601', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:50', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116579179859972', |
| | | 'docName': 'api-ms-win-core-libraryloader-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116579423129606', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:50', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116581352509442', |
| | | 'docName': 'api-ms-win-core-processthreads-l1-1-1.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116581453172737', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:50', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116581352509441', |
| | | 'docName': 'api-ms-win-core-profile-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116581453172738', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:50', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116581398646787', |
| | | 'docName': 'api-ms-win-core-processenvironment-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116581499310083', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:50', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116581394452482', |
| | | 'docName': 'api-ms-win-core-processthreads-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116581499310082', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:50', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116581398646786', |
| | | 'docName': 'api-ms-win-core-namedpipe-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116581503504385', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:50', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116581398646791', |
| | | 'docName': 'api-ms-win-core-rtlsupport-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116581503504386', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:50', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116583265112065', |
| | | 'docName': 'api-ms-win-core-synch-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116583357386754', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:50', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116583298666502', |
| | | 'docName': 'api-ms-win-core-timezone-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116583386746881', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:50', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116583298666498', |
| | | 'docName': 'api-ms-win-core-sysinfo-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116583399329795', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:50', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116583298666499', |
| | | 'docName': 'api-ms-win-core-util-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116583399329794', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:50', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116585123188739', |
| | | 'docName': 'api-ms-win-crt-convert-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116585219657730', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:51', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116585123188738', |
| | | 'docName': 'api-ms-win-crt-heap-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116585219657729', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:51', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116585131577347', |
| | | 'docName': 'api-ms-win-crt-environment-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116585223852035', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:51', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116585131577350', |
| | | 'docName': 'api-ms-win-crt-conio-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116585223852036', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:51', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116585131577346', |
| | | 'docName': 'api-ms-win-crt-locale-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116585223852034', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:51', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116585139965954', |
| | | 'docName': 'api-ms-win-crt-filesystem-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116585232240641', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:51', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116587392307203', |
| | | 'docName': 'api-ms-win-crt-stdio-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116587505553412', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:52', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116587392307207', |
| | | 'docName': 'api-ms-win-crt-process-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116587505553409', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:51', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116587379724289', |
| | | 'docName': 'api-ms-win-crt-multibyte-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116587497164802', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:51', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116587388112901', |
| | | 'docName': 'api-ms-win-crt-private-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116587497164801', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:52', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116587388112899', |
| | | 'docName': 'api-ms-win-crt-runtime-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116587505553410', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:51', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116587392307205', |
| | | 'docName': 'api-ms-win-crt-math-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116587505553411', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:51', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116589451710466', |
| | | 'docName': 'api-ms-win-crt-string-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116589644648450', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:52', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116589472681986', |
| | | 'docName': 'api-ms-win-crt-time-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116589653037060', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:52', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116589472681987', |
| | | 'docName': 'api-ms-win-crt-utility-l1-1-0.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116589653037058', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:52', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116589472681985', |
| | | 'docName': 'chrome_100_qq.pak', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'pak', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116589653037059', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:52', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116589787254785', |
| | | 'docName': 'chrome_200_qq.pak', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'pak', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116589896306690', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:52', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116590152159233', |
| | | 'docName': 'd3dcompiler_47.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116590277988354', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:52', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1872116591695663106', |
| | | 'docName': 'ffmpeg.dll', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'dll', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1872116591783743489', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2024-12-26 11:05:52', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | }, |
| | | { |
| | | 'docId': '1878649744767254529', |
| | | 'docName': 'avatar2.jpg', |
| | | 'docAlias': null, |
| | | 'docCode': null, |
| | | 'docSuffix': 'jpg', |
| | | 'docStatus': 1, |
| | | 'publishFileId': '1878649744901472258', |
| | | 'publishVersion': 'a.1', |
| | | 'description': null, |
| | | 'createTime': '2025-01-13 11:46:18', |
| | | 'updateTime': null, |
| | | 'createUser': '1254966905669160962', |
| | | 'updateUser': null, |
| | | 'docClassCode': null, |
| | | 'pullStatus': 1, |
| | | 'pullUser': null, |
| | | 'attributionType': 5, |
| | | 'attributionId': '1327523708556668930', |
| | | 'classificationId': '1257965381181095938', |
| | | 'syncStatus': null |
| | | } |
| | | ], |
| | | queryParam: {}, |
| | | searchValue: '', |
| | | searchInput: '', |
| | | spinning: false, |
| | | treeDataSource: [], |
| | | allTreeKeys: [], |
| | | checkedKeys: [], |
| | | expandedKeys: [], |
| | | autoExpandParent: true, |
| | | url: { |
| | | list: '' |
| | | list: '/nc/doc/find/list' |
| | | } |
| | | } |
| | | }, |
| | | watch: { |
| | | visible: { |
| | | handler(value) { |
| | | if (value) this.loadData(1) |
| | | if (value) { |
| | | this.resetData() |
| | | this.loadData() |
| | | this.getDocumentAssignDeviceTreeByApi() |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | methods: {} |
| | | methods: { |
| | | loadData() { |
| | | this.dataSource = [] |
| | | if (!this.url.list) { |
| | | this.$message.error('请设置url.list属性!') |
| | | return |
| | | } |
| | | var params = this.getQueryParams()//查询条件 |
| | | if (!params) { |
| | | return false |
| | | } |
| | | const { attributionType, attributionId, param } = this.currentDocumentInfo |
| | | console.log('currentDocumentInfo', this.currentDocumentInfo) |
| | | params.attributionType = attributionType |
| | | params.attributionId = attributionId |
| | | params.docClassCode = param |
| | | console.log('params', params) |
| | | this.loading = true |
| | | getAction(this.url.list, params).then((res) => { |
| | | if (res.success) this.dataSource = res.result |
| | | else this.$message.warning(res.message) |
| | | }).finally(() => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | |
| | | getDocumentAssignDeviceTreeByApi() { |
| | | this.spinning = true |
| | | this.treeDataSource = [] |
| | | dncApi.getDocumentAssignDeviceTreeApi(this.currentDocumentInfo) |
| | | .then(res => { |
| | | if (res.success) { |
| | | this.dataList = [] |
| | | this.allTreeKeys = [] |
| | | this.treeDataSource = res.list |
| | | this.generateList(this.treeDataSource) |
| | | } else { |
| | | this.$message.warn(res.message) |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.spinning = false |
| | | }) |
| | | }, |
| | | |
| | | handleAssignDocumentToDevice() { |
| | | const param = {} |
| | | console.log('table', this.selectedRowKeys) |
| | | const treeCheckedDeviceKeys = [] |
| | | this.checkedKeys.forEach(checkedKey => { |
| | | const deviceId = this.dataList.find(item => item.key === checkedKey && item.type === 2) |
| | | if (deviceId) treeCheckedDeviceKeys.push(deviceId.key) |
| | | }) |
| | | |
| | | console.log('treeCheckedDeviceKeys', treeCheckedDeviceKeys) |
| | | }, |
| | | |
| | | /* 输入查询内容变化时触发 */ |
| | | handleSearchInputChange() { |
| | | let search = this.searchInput |
| | | console.log('data', this.dataList) |
| | | console.log('search', search) |
| | | let expandedKeys = this.dataList |
| | | .map(item => { |
| | | if (item.title != null) { |
| | | if (item.title.indexOf(search) > -1) { |
| | | return this.getParentKey(item.key, this.treeDataSource) |
| | | } |
| | | return null |
| | | } |
| | | }) |
| | | .filter((item, i, self) => item && self.indexOf(item) === i) |
| | | Object.assign(this, { |
| | | expandedKeys, |
| | | searchValue: search, |
| | | autoExpandParent: true |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * 树节点展开合并时触发 |
| | | * @param expandedKeys 展开项key |
| | | */ |
| | | handleTreeExpand(expandedKeys) { |
| | | this.expandedKeys = expandedKeys |
| | | this.autoExpandParent = false |
| | | }, |
| | | |
| | | /** |
| | | * 树节点复选框选中时触发 |
| | | * @param selectedKeys 选中节点key |
| | | * @param {node} node 节点对象 |
| | | */ |
| | | handleTreeNodeCheck(checkedKeys, { node }) { |
| | | let record = node.dataRef |
| | | this.checkedKeys = checkedKeys |
| | | }, |
| | | |
| | | /** |
| | | * 递归获得输入项的父级key |
| | | * @param key 子项key |
| | | * @param tree 子项 |
| | | */ |
| | | getParentKey(key, tree) { |
| | | let parentKey |
| | | for (let i = 0; i < tree.length; i++) { |
| | | const node = tree[i] |
| | | if (node.children) { |
| | | if (node.children.some(item => item.key === key)) { |
| | | parentKey = node.key |
| | | console.log('parentKey', parentKey) |
| | | } else if ( |
| | | this.getParentKey(key, node.children)) { |
| | | parentKey = this.getParentKey(key, node.children) |
| | | } |
| | | } |
| | | } |
| | | return parentKey |
| | | }, |
| | | |
| | | /** |
| | | * 递归获得所有树节点key |
| | | * @param data |
| | | */ |
| | | generateList(data) { |
| | | for (let i = 0; i < data.length; i++) { |
| | | data[i].key = data[i].id |
| | | const node = data[i] |
| | | const key = node.id |
| | | const title = node.label |
| | | const type = node.type |
| | | this.dataList.push({ key, title, type }) |
| | | this.allTreeKeys.push(key) |
| | | if (node.children) this.generateList(node.children) |
| | | } |
| | | }, |
| | | |
| | | resetData() { |
| | | this.searchInput = '' |
| | | this.expandedKeys = [] |
| | | this.selectedRowKeys = [] |
| | | this.checkedKeys = [] |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | <style scoped lang="less"> |
| | | /deep/ .ant-modal { |
| | | .tabs-container { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | |
| | | .replaceSearch { |
| | | color: #40a9ff; |
| | | font-weight: bold; |
| | | background-color: rgb(204, 204, 204); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | </style> |
| | |
| | | <template> |
| | | <div> |
| | | <a-table :columns="columns" :data-source="dataSource" bordered :pagination="ipagination" |
| | | :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="docId"> |
| | | :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="docId" @change="handleTableChange"> |
| | | |
| | | </a-table> |
| | | |
| | | <DocumentModal ref="modalForm" @ok="modalFormOk"/> |
| | | |
| | | <NcDocumentAssignModal :size="size" ref="documentAssignModalRef"/> |
| | | <NcDocumentAssignModal :size="size" ref="documentAssignModalRef" |
| | | :currentDocumentInfo="currentRightClickedDocumentInfo"/> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | { title: '上传时间', dataIndex: 'createTime', align: 'center' } |
| | | ], |
| | | dataSource: [], |
| | | currentRightClickedDocumentInfo: {}, |
| | | currentClickedDocumentInfo: {}, |
| | | url: { |
| | | list: '/nc/doc/find/page' |
| | | } |
| | |
| | | on: { |
| | | contextmenu: event => { |
| | | event.preventDefault() |
| | | this.$emit('handleTableContextMenuOpen', { ...record, param: 'NC' }) |
| | | this.currentRightClickedDocumentInfo = Object.assign({ param: 'NC' }, record) |
| | | this.$emit('handleTableContextMenuOpen', this.currentRightClickedDocumentInfo) |
| | | }, |
| | | click: () => { |
| | | this.$bus.$emit('sendCurrentLevelInfo', record) |
| | | if (this.currentClickedDocumentInfo.docId === record.docId) return |
| | | this.currentClickedDocumentInfo = Object.assign({}, record) |
| | | this.$bus.$emit('sendCurrentClickedDocumentInfo', record) |
| | | } |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <div> |
| | | <a-table :columns="columns" :data-source="dataSource" bordered :pagination="ipagination" |
| | | :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="docId"> |
| | | :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="docId" @change="handleTableChange"> |
| | | |
| | | </a-table> |
| | | |
| | |
| | | { title: '上传时间', dataIndex: 'createTime', align: 'center' } |
| | | ], |
| | | dataSource: [], |
| | | currentDocumentInfo: {}, |
| | | url: { |
| | | list: '/nc/doc/find/page' |
| | | } |
| | |
| | | this.$emit('handleTableContextMenuOpen', { ...record, param: 'OTHER' }) |
| | | }, |
| | | click: () => { |
| | | this.$bus.$emit('sendCurrentLevelInfo', record) |
| | | if (this.currentDocumentInfo.docId === record.docId) return |
| | | this.currentDocumentInfo = Object.assign({}, record) |
| | | this.$bus.$emit('sendCurrentClickedDocumentInfo', record) |
| | | } |
| | | } |
| | | } |
| | |
| | | <a-descriptions-item label="处理类型 ">{{currentLevelDetails.processType}}</a-descriptions-item> |
| | | <a-descriptions-item label="结构类型 ">{{currentLevelDetails.structureType}}</a-descriptions-item> |
| | | <a-descriptions-item label="重量" :span="2">{{currentLevelDetails.partsWeight}}</a-descriptions-item> |
| | | <a-descriptions-item label="创建人">{{currentLevelDetails.createUser_dicText}}</a-descriptions-item> |
| | | <a-descriptions-item label="创建人">{{currentLevelDetails.createName}}</a-descriptions-item> |
| | | <a-descriptions-item label="创建时间" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item> |
| | | <a-descriptions-item label="修改人">{{currentLevelDetails.updateUser_dicText}}</a-descriptions-item> |
| | | <a-descriptions-item label="修改人">{{currentLevelDetails.updateName}}</a-descriptions-item> |
| | | <a-descriptions-item label="修改时间" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item> |
| | | <a-descriptions-item label="描述" :span="3">{{currentLevelDetails.description}}</a-descriptions-item> |
| | | </a-descriptions> |
| | |
| | | <a-descriptions-item label="工艺编号 ">{{currentLevelDetails.craftNo}}</a-descriptions-item> |
| | | <a-descriptions-item label="工序类型">{{currentLevelDetails.processType}}</a-descriptions-item> |
| | | <a-descriptions-item label="加工设备型号">{{currentLevelDetails.processingEquipmentModel}}</a-descriptions-item> |
| | | <!--<a-descriptions-item label="加工设备类型">{{currentLevelDetails.processingEquipmentOs}}</a-descriptions-item>--> |
| | | <a-descriptions-item label="加工设备类型">{{currentLevelDetails.processingEquipmentOs}}</a-descriptions-item> |
| | | <a-descriptions-item label="加工设备编号">{{currentLevelDetails.processingEquipmentCode}}</a-descriptions-item> |
| | | <a-descriptions-item label="工装编号">{{currentLevelDetails.assembleStep}}</a-descriptions-item> |
| | | <a-descriptions-item label="工装名称 ">{{currentLevelDetails.assembleName}}</a-descriptions-item> |
| | | <a-descriptions-item label="创建人">{{currentLevelDetails.createName}}</a-descriptions-item> |
| | | <a-descriptions-item label="创建时间" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item> |
| | | <a-descriptions-item label="修改人">{{currentLevelDetails.updateName}}</a-descriptions-item> |
| | | <a-descriptions-item label="修改时间" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item> |
| | | <a-descriptions-item label="描述" :span="3">{{currentLevelDetails.description}}</a-descriptions-item> |
| | | </a-descriptions> |
| | | </template> |
| | |
| | | @ok="handleOk" |
| | | @cancel="handleCancel" |
| | | cancelText="关闭"> |
| | | <ProcessModalForm ref="realForm" @ok="submitCallback"/> |
| | | <ProcessModalForm ref="realForm" @ok="submitCallback" :allDeviceList="allDeviceList"/> |
| | | </j-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import dncApi from '@/api/dnc' |
| | | import ProcessModalForm from './ProcessModalForm.vue' |
| | | |
| | | export default { |
| | |
| | | title: '', |
| | | width: 700, |
| | | visible: false, |
| | | allDeviceList: [], |
| | | isAddNextLevel: false // 是否为添加下级,作为树节点是否展开的判断 |
| | | } |
| | | }, |
| | | watch: { |
| | | visible: { |
| | | handler(value) { |
| | | if (value) this.getAllDeviceListByApi() |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) |
| | | }, |
| | | methods: { |
| | | getAllDeviceListByApi() { |
| | | dncApi.getAllDeviceListApi() |
| | | .then(res => { |
| | | if (res.success) this.allDeviceList = res.list |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * 点击部件创建部件下级工序 |
| | | */ |
| | |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="加工设备编号" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> |
| | | <a-select v-model="model.processingEquipmentCode" placeholder="请选择加工设备编号"></a-select> |
| | | <a-select v-model="model.processingEquipmentCode" placeholder="请选择加工设备编号"> |
| | | <a-select-option v-for="item in allDeviceList" :key="item.deviceId"> |
| | | {{item.deviceId}} |
| | | </a-select-option> |
| | | </a-select> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="加工设备型号"> |
| | | <a-input v-model="model.processingEquipmentModel" placeholder="请输入加工设备型号"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="加工设备类型"> |
| | | <a-input v-model="model.processingEquipmentOs" placeholder="请输入加工设备类型"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | |
| | | export default { |
| | | name: 'ProcessModalForm', |
| | | components: {}, |
| | | props: { |
| | | allDeviceList: { |
| | | type: Array |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | model: { |
| | |
| | | created() { |
| | | //备份model原始值 |
| | | this.modelDefault = JSON.parse(JSON.stringify(this.model)) |
| | | this.$bus.$on('sendAllDeviceList', deviceList => this.deviceList = deviceList) |
| | | }, |
| | | methods: { |
| | | add(params) { |
| | |
| | | <a-descriptions bordered :size="size"> |
| | | <a-descriptions-item label="工步名称">{{currentLevelDetails.stepName}}</a-descriptions-item> |
| | | <a-descriptions-item label="工步号">{{currentLevelDetails.stepCode}}</a-descriptions-item> |
| | | <a-descriptions-item label="工艺编号 ">{{currentLevelDetails.craftNo}}</a-descriptions-item> |
| | | <a-descriptions-item label="工步类型">{{currentLevelDetails.stepType}}</a-descriptions-item> |
| | | <a-descriptions-item label="加工设备型号">{{currentLevelDetails.processingEquipmentModel}}</a-descriptions-item> |
| | | <a-descriptions-item label="加工设备类型">{{currentLevelDetails.processingEquipmentOs}}</a-descriptions-item> |
| | | <a-descriptions-item label="加工设备编号">{{currentLevelDetails.deviceNo}}</a-descriptions-item> |
| | | <a-descriptions-item label="工装编号">{{currentLevelDetails.assembleStep}}</a-descriptions-item> |
| | | <a-descriptions-item label="工装名称 ">{{currentLevelDetails.assembleName}}</a-descriptions-item> |
| | | <a-descriptions-item label="工装名称 " :span="2">{{currentLevelDetails.assembleName}}</a-descriptions-item> |
| | | <a-descriptions-item label="创建人">{{currentLevelDetails.createName}}</a-descriptions-item> |
| | | <a-descriptions-item label="创建时间" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item> |
| | | <a-descriptions-item label="修改人">{{currentLevelDetails.updateName}}</a-descriptions-item> |
| | | <a-descriptions-item label="修改时间" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item> |
| | | <a-descriptions-item label="描述" :span="3">{{currentLevelDetails.description}}</a-descriptions-item> |
| | | </a-descriptions> |
| | | </template> |
| | |
| | | @ok="handleOk" |
| | | @cancel="handleCancel" |
| | | cancelText="关闭"> |
| | | <ProcessStepModalForm ref="realForm" @ok="submitCallback"/> |
| | | <ProcessStepModalForm ref="realForm" @ok="submitCallback" :allDeviceList="allDeviceList"/> |
| | | </j-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import dncApi from '@/api/dnc' |
| | | import ProcessStepModalForm from './ProcessStepModalForm.vue' |
| | | |
| | | export default { |
| | |
| | | type: Object |
| | | } |
| | | }, |
| | | watch: { |
| | | visible: { |
| | | handler(value) { |
| | | if (value) this.getAllDeviceListByApi() |
| | | } |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | title: '', |
| | | width: 700, |
| | | visible: false, |
| | | allDeviceList: [], |
| | | isAddNextLevel: false // 是否为添加下级,作为树节点是否展开的判断 |
| | | } |
| | | }, |
| | |
| | | this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) |
| | | }, |
| | | methods: { |
| | | getAllDeviceListByApi() { |
| | | dncApi.getAllDeviceListApi() |
| | | .then(res => { |
| | | if (res.success) this.allDeviceList = res.list |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * 点击工序创建工序下级工步 |
| | | */ |
| | |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="加工设备编号" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> |
| | | <a-select v-model="model.deviceNo" placeholder="请选择加工设备编号"></a-select> |
| | | <a-select v-model="model.deviceNo" placeholder="请选择加工设备编号"> |
| | | <a-select-option v-for="item in allDeviceList" :key="item.deviceId"> |
| | | {{item.deviceId}} |
| | | </a-select-option> |
| | | </a-select> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="工艺编号"> |
| | | <a-input v-model="model.craftNo" placeholder="请输入工艺编号"></a-input> |
| | | <a-form-model-item label="加工设备型号"> |
| | | <a-input v-model="model.processingEquipmentModel" placeholder="请输入加工设备型号"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="工艺规程版本"> |
| | | <a-input v-model="model.craftVersion" placeholder="请输入工艺规程版本"></a-input> |
| | | <a-form-model-item label="加工设备类型"> |
| | | <a-input v-model="model.processingEquipmentOs" placeholder="请输入加工设备类型"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | |
| | | <a-row> |
| | | <a-col :span="12"> |
| | |
| | | export default { |
| | | name: 'ProcessStepModalForm', |
| | | components: {}, |
| | | props: { |
| | | allDeviceList: { |
| | | type: Array |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | model: { |
| | |
| | | <a-descriptions-item label="产品名称">{{currentLevelDetails.productName}}</a-descriptions-item> |
| | | <a-descriptions-item label="产品型号">{{currentLevelDetails.productModel}}</a-descriptions-item> |
| | | <a-descriptions-item label="产品代码 ">{{currentLevelDetails.productNo}}</a-descriptions-item> |
| | | <a-descriptions-item label="创建人">{{currentLevelDetails.createUser_dicText}}</a-descriptions-item> |
| | | <a-descriptions-item label="创建人">{{currentLevelDetails.createName}}</a-descriptions-item> |
| | | <a-descriptions-item label="创建时间" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item> |
| | | <a-descriptions-item label="修改人">{{currentLevelDetails.updateUser_dicText}}</a-descriptions-item> |
| | | <a-descriptions-item label="修改人">{{currentLevelDetails.updateName}}</a-descriptions-item> |
| | | <a-descriptions-item label="修改时间" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item> |
| | | </a-descriptions> |
| | | </template> |
| | |
| | | <template> |
| | | <a-tabs style="height: 100%" v-model="activeTabKey" v-if="Object.keys(currentLevelInfo).length>0"> |
| | | <a-tabs style="height: 100%" v-model="activeTabKey" v-if="Object.keys(currentLevelInfo).length>0" |
| | | @change="handleTabChange"> |
| | | <a-tab-pane :key="1" tab="产品属性" v-if="currentLevelInfo.type===1"> |
| | | <ProductInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/> |
| | | <ProductInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/> |
| | | </a-tab-pane> |
| | | |
| | | <a-tab-pane :key="1" tab="部件属性" v-if="currentLevelInfo.type===2"> |
| | | <ComponentInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/> |
| | | <ComponentInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/> |
| | | </a-tab-pane> |
| | | |
| | | <a-tab-pane :key="1" tab="零件属性" v-if="currentLevelInfo.type===3"> |
| | | <PartInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/> |
| | | <PartInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/> |
| | | </a-tab-pane> |
| | | |
| | | <a-tab-pane :key="1" tab="工序属性" v-if="currentLevelInfo.type===5"> |
| | | <ProcessInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/> |
| | | <ProcessInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/> |
| | | </a-tab-pane> |
| | | |
| | | <a-tab-pane :key="1" tab="工步属性" v-if="currentLevelInfo.type===6"> |
| | | <ProcessStepInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/> |
| | | <ProcessStepInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/> |
| | | </a-tab-pane> |
| | | |
| | | <template v-if="currentLevelInfo.hasOwnProperty('attributionType')"> |
| | | <a-tab-pane :key="1" tab="文档属性"> |
| | | <DocumentInfo :currentLevelDetails="currentLevelInfo" :size="descriptionsContainerSize"/> |
| | | <DocumentInfo :currentLevelDetails="currentLevelInfo" :size="containerSize"/> |
| | | </a-tab-pane> |
| | | |
| | | <a-tab-pane :key="2" tab="预览"> |
| | |
| | | </a-tab-pane> |
| | | |
| | | <a-tab-pane :key="3" tab="文档版本"> |
| | | <DocumentVersionTableList/> |
| | | <DocumentVersionTableList ref="documentVersionTableRef" :currentDocumentInfo="currentLevelInfo" |
| | | :size="containerSize"/> |
| | | </a-tab-pane> |
| | | |
| | | <a-tab-pane :key="4" tab="使用设备" v-if="currentLevelInfo.attributionType===5"> |
| | | <UseDocumentEquipmentTableList/> |
| | | <UseDocumentEquipmentTableList ref="useDocumentEquipmentTableRef"/> |
| | | </a-tab-pane> |
| | | </template> |
| | | </a-tabs> |
| | |
| | | data() { |
| | | return { |
| | | activeTabKey: 1, |
| | | descriptionsContainerSize: 'small', |
| | | currentLevelInfo: {} |
| | | containerSize: 'small', |
| | | currentLevelInfo: {}, |
| | | hasLoadedDataTabKeyArray: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.$bus.$on('sendCurrentLevelInfo', this.receiveCurrentLevelInfo) |
| | | this.$bus.$on('sendCurrentClickedDocumentInfo', this.receiveCurrentLevelInfo) |
| | | this.$bus.$on('sendCurrentTreeNodeInfo', this.receiveCurrentLevelInfo) |
| | | this.$bus.$on('reloadMainBottomTableData', this.reloadMainBottomTableData) |
| | | }, |
| | | methods: { |
| | | /** |
| | |
| | | */ |
| | | receiveCurrentLevelInfo(levelInfo) { |
| | | this.currentLevelInfo = levelInfo |
| | | if (levelInfo.attributionType) this.activeTabKey = 1 |
| | | this.activeTabKey = 1 |
| | | this.hasLoadedDataTabKeyArray = [] |
| | | }, |
| | | |
| | | handleTabChange(activeTabKey) { |
| | | if (!this.hasLoadedDataTabKeyArray.includes(activeTabKey)) { |
| | | if (activeTabKey === 3) { |
| | | this.$nextTick(() => this.$refs.documentVersionTableRef.loadData()) |
| | | } else if (activeTabKey === 4) { |
| | | this.$nextTick(() => this.$refs.useDocumentEquipmentTableRef.loadData()) |
| | | } |
| | | this.hasLoadedDataTabKeyArray.push(activeTabKey) |
| | | } |
| | | }, |
| | | |
| | | reloadMainBottomTableData(tableName) { |
| | | if (this.$refs[tableName + 'TableRef']) this.$refs[tableName + 'TableRef'].loadData() |
| | | } |
| | | } |
| | | } |
| | |
| | | }, |
| | | created() { |
| | | this.$bus.$on('sendCurrentTreeNodeInfo', this.receiveCurrentTreeNodeInfo) |
| | | this.$bus.$on('importFileSuccess', this.reloadDocumentListData) |
| | | this.$bus.$on('reloadDocumentListData', this.reloadDocumentListData) |
| | | this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod) |
| | | }, |
| | | methods: { |
| | |
| | | .then(res => { |
| | | if (res.success) { |
| | | this.reloadDocumentListData({ docClassCode: param, attributionId }) |
| | | this.$bus.$emit('reloadMainBottomTableData', 'documentVersion') |
| | | that.$notification.success({ |
| | | message: '消息', |
| | | description: res.message |
| | |
| | | </div> |
| | | |
| | | <!--产品结构树--> |
| | | <div class="" style="flex: 1;overflow:auto;margin-top: 10px"> |
| | | <a-tree ref="tree" show-icon :checkStrictly="checkStrictly" :expandedKeys.sync="expandedKeys" |
| | | <div style="flex: 1;overflow:auto;margin-top: 10px"> |
| | | <a-tree ref="tree" show-icon :expandedKeys.sync="expandedKeys" |
| | | :selectedKeys="selectedKeys" :treeData="treeDataSource" :autoExpandParent="autoExpandParent" |
| | | @select="handleTreeSelect" @expand="handleTreeExpand" @rightClick="handleTreeRightClick"> |
| | | <template slot="title" slot-scope="{ label, parentId, entity, key:treeKey,type}"> |
| | |
| | | this.loading = true |
| | | this.cardLoading = true |
| | | dncApi.getProductStructureTreeApi().then(res => { |
| | | console.log('res', res) |
| | | if (res.success) { |
| | | this.dataList = [] |
| | | this.allTreeKeys = [] |
| | |
| | | /** |
| | | * 点击导入文档或NC程序时触发 |
| | | * @param treeNodeInfo 点击树节点右键菜单导入程序时传入树节点信息 |
| | | * @param tableRowInfo 点击表格行右键菜单导入程序时传入行信息 |
| | | * @param tableRowInfo 右键表格行时传入行信息 |
| | | */ |
| | | handleImport(treeNodeInfo, tableRowInfo) { |
| | | this.isUploadMultiple = true |
| | |
| | | this.visible = true |
| | | }, |
| | | |
| | | /** |
| | | * 点击文档生命周期的入库时触发 |
| | | * @param _ |
| | | * @param tableRowInfo 右键表格行时传入行信息 |
| | | */ |
| | | handlePush(_, tableRowInfo) { |
| | | this.isUploadMultiple = false |
| | | console.log('tableRowInfo', tableRowInfo) |
| | |
| | | this.visible = true |
| | | }, |
| | | |
| | | handleRemove(file) { |
| | | const index = this.fileList.indexOf(file) |
| | | const newFileList = this.fileList.slice() |
| | | newFileList.splice(index, 1) |
| | | this.fileList = newFileList |
| | | }, |
| | | |
| | | /** |
| | | * 选择好文件点击确定后 |
| | | * @param file 文件对象 |
| | | */ |
| | | beforeUpload(file) { |
| | | if (this.isUploadMultiple) { |
| | | if (!this.fileList.find(item => item.name === file.name)) this.fileList = [...this.fileList, file] |
| | | } else { |
| | | this.fileList.splice(0, 1, file) |
| | | } |
| | | else this.fileList.splice(0, 1, file) |
| | | return false |
| | | }, |
| | | |
| | | /** |
| | | * 点击上传至服务器按钮时触发 |
| | | */ |
| | | handleUpload() { |
| | | const { fileList, $notification, isUploadMultiple, uploadParams, $bus } = this |
| | | this.uploading = true |
| | |
| | | if (uploadedFileCount === fileList.length) { |
| | | // 至少有一个文件上传成功后就需要重新加载文档列表 |
| | | if (uploadSuccessFileCount > 0) { |
| | | $bus.$emit('importFileSuccess', uploadParams) |
| | | if (!isUploadMultiple) this.visible = false //无法连续入库多个版本因此入库成功后即可退出窗口 |
| | | $bus.$emit('reloadDocumentListData', uploadParams) |
| | | if (!isUploadMultiple) { |
| | | $bus.$emit('reloadMainBottomTableData', 'documentVersion') |
| | | this.visible = false //无法连续入库多个版本因此入库成功后即可退出窗口 |
| | | } |
| | | } |
| | | this.uploading = false |
| | | } |
| | |
| | | }, |
| | | |
| | | /** |
| | | * 删除文件列表项时触发 |
| | | * @param file 文件对象 |
| | | */ |
| | | handleRemove(file) { |
| | | const index = this.fileList.indexOf(file) |
| | | const newFileList = this.fileList.slice() |
| | | newFileList.splice(index, 1) |
| | | this.fileList = newFileList |
| | | }, |
| | | |
| | | /** |
| | | * 控制文件上传窗口关闭并清空文件列表 |
| | | */ |
| | | handleModalClose() { |