| | |
| | | getDocumentAssignDeviceTreeApi: ({ attributionType, attributionId }) => getAction(`/nc/device/load/depart/tree/${attributionType}/${attributionId}`), |
| | | // ææ´¾ææ¡£å°è®¾å¤ |
| | | assignDocumentToDeviceApi: params => postAction('/nc/activit/assign/file/apply', params), |
| | | // æååå
· |
| | | extractToolsApi: ({ docId,attributionType, attributionId}) => getAction(`/nc/cutter/extractCutterInfo/${docId}/${attributionType}/${attributionId}`), |
| | | // ä¸è½½ææ¡£ |
| | | downloadDocumentApi: ({ docId, docName }) => requestGetDownLoad(`/nc/doc/download/${docId}`, docName), |
| | | // å é¤ææ¡£ |
| | |
| | | </a-col> |
| | | |
| | | <a-col :md="4" :sm="4"> |
| | | <a-form-item label="设å¤ç±»åç§°"> |
| | | <a-input placeholder="请è¾å
¥è®¾å¤ç±»åç§°" v-model="queryParam.deviceManagementName"></a-input> |
| | | <a-form-item label="æ°æ§ç³»ç»ç±»å«"> |
| | | <a-input placeholder="请è¾å
¥æ°æ§ç³»ç»ç±»å«" v-model="queryParam.deviceManagementName"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | |
| | | dataIndex: 'productionId_dictText' |
| | | }, |
| | | { |
| | | title: '设å¤ç±»', |
| | | title: 'è½´æ°', |
| | | align: 'center', |
| | | width: 200, |
| | | dataIndex: 'deviceManagementCode' |
| | | }, |
| | | { |
| | | title: '设å¤ç±»åç§°', |
| | | title: 'æ°æ§ç³»ç»ç±»å«', |
| | | align: 'center', |
| | | width: 200, |
| | | dataIndex: 'deviceManagementName' |
| | |
| | | </a-col> |
| | | |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="设å¤ç±»" prop="deviceManagementCode"> |
| | | <a-input allow-clear placeholder="请è¾å
¥è®¾å¤ç±»" :readOnly="disabledEdit" |
| | | <a-form-model-item label="è½´æ°" prop="deviceManagementCode"> |
| | | <a-input allow-clear placeholder="请è¾å
¥è½´æ°" :readOnly="disabledEdit" |
| | | v-model="model.deviceManagementCode"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | |
| | | |
| | | <a-row :gutter="24"> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="设å¤ç±»åç§°" prop="deviceManagementName"> |
| | | <a-input allow-clear placeholder="请è¾å
¥è®¾å¤ç±»åç§°" :readOnly="disabledEdit" |
| | | <a-form-model-item label="æ°æ§ç³»ç»ç±»å«" prop="deviceManagementName"> |
| | | <a-input allow-clear placeholder="请è¾å
¥æ°æ§ç³»ç»ç±»å«" :readOnly="disabledEdit" |
| | | v-model="model.deviceManagementName"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | |
| | | ], |
| | | deviceManagementCode: [ |
| | | { |
| | | required: true, message: '请è¾å
¥è®¾å¤ç±»!' |
| | | required: true, message: '请è¾å
¥è½´æ°!' |
| | | } |
| | | ], |
| | | deviceManagementName: [ |
| | | { |
| | | required: true, message: '请è¾å
¥è®¾å¤ç±»åç§°!' |
| | | required: true, message: '请è¾å
¥æ°æ§ç³»ç»ç±»å«!' |
| | | } |
| | | ], |
| | | equipmentIds: [ |
| | |
| | | width: 300, |
| | | sorter: true |
| | | }, |
| | | { title: '代ç çæ¬', dataIndex: 'docAlias', align: 'center' }, |
| | | { |
| | | title: 'åºåºç¶æ', |
| | | dataIndex: 'pullStatus_dictText', |
| | |
| | | width: 300, |
| | | sorter: true |
| | | }, |
| | | { title: '代ç çæ¬', dataIndex: 'docAlias', align: 'center' }, |
| | | { |
| | | title: 'åºåºç¶æ', |
| | | dataIndex: 'pullStatus_dictText', |
| | |
| | | methods: { |
| | | // æ·»å æç¨åå
· |
| | | handleCutterAdd() { |
| | | const { id, type } = this.currentTreeNodeInfo |
| | | const { attributionId, attributionType, docId } = this.currentTreeNodeInfo |
| | | this.visible = true |
| | | this.$nextTick(() => { |
| | | if (this.$refs.realForm) { |
| | | this.$refs.realForm.add({ |
| | | attributionId: id, |
| | | attributionType: type |
| | | attributionId: attributionId, |
| | | attributionType: attributionType, |
| | | docId: docId |
| | | }) |
| | | } |
| | | }) |
| | |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="åå
·ç¼å·" prop="cutterCode"> |
| | | <a-form-model-item label="åå
·ç¼å·"> |
| | | <a-input v-model="model.cutterCode" placeholder="请è¾å
¥åå
·ç¼å·" :readOnly="disableSubmit"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | |
| | | |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="åå
፱Ȍ"> |
| | | <j-dict-select-tag v-model="model.cutterType" placeholder="è¯·éæ©åå
፱Ȍ" dictCode="cutter_type" |
| | | :disabled="disableSubmit"/> |
| | | <a-form-model-item label="åå
·ç®ç§°" prop="cutterType"> |
| | | <a-input v-model="model.cutterType" placeholder="请è¾å
¥åå
·ç®ç§°" :readOnly="disableSubmit"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | |
| | | |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="åä½"> |
| | | <a-form-model-item label="åä½" prop="cutterSpacing"> |
| | | <a-input v-model="model.cutterSpacing" placeholder="请è¾å
¥åä½" :readOnly="disableSubmit"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | |
| | | }, |
| | | confirmLoading: false, |
| | | validatorRules: { |
| | | cutterCode: [ |
| | | { required: true, message: '请è¾å
¥åå
·ç¼å·!' } |
| | | cutterType: [ |
| | | { required: true, message: '请è¾å
¥åå
·ç®ç§°!' } |
| | | ], |
| | | cutterName: [ |
| | | { required: true, message: '请è¾å
¥åå
·åç§°!' } |
| | | ], |
| | | cutterSpacing: [ |
| | | { required: true, message: '请è¾å
¥åä½!' } |
| | | ] |
| | | }, |
| | | url: { |
| | |
| | | <a-space> |
| | | <a-button type="primary" @click="searchQuery" icon="search">æ¥è¯¢</a-button> |
| | | <a-button type="primary" @click="handleAdd" icon="plus" v-has="'cutter_add'">æ°å¢</a-button> |
| | | <a-button type="primary" @click="handleExportXls('åå
·å表')" icon="export">导åº</a-button> |
| | | <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" |
| | | :action="importExcelUrl" @change="handleImportExcel"> |
| | | <a-button type="primary" icon="import">导å
¥</a-button> |
| | | </a-upload> |
| | | <a-button type="primary" @click="handleAdd()" icon="export">åéåå
·ç³»ç»</a-button> |
| | | </a-space> |
| | | </a-col> |
| | | </a-row> |
| | |
| | | <a-table :columns="columns" :data-source="dataSource" bordered :pagination="ipagination" :size="size" rowKey="id" |
| | | @change="handleTableChange" :scroll="{y:189}"> |
| | | <template slot="action" slot-scope="text, record"> |
| | | <a @click="handleEdit(record)">ç¼è¾</a> |
| | | |
| | | <a @click="handleEdit(record)">éæ©åå
·</a> |
| | | |
| | | <a-divider type="vertical"/> |
| | | |
| | |
| | | return parseInt(index) + 1 |
| | | } |
| | | }, |
| | | { title: 'åå
·ç¼å·', dataIndex: 'cutterCode', align: 'center' }, |
| | | { title: 'åå
·åç§°', dataIndex: 'cutterName', align: 'center' }, |
| | | { title: 'åå
፱Ȍ', dataIndex: 'cutterType_dictText', align: 'center' }, |
| | | { title: 'åå
·ç¼å·', dataIndex: 'cutterCode', width: 100, align: 'center' }, |
| | | { title: 'åå
·åç§°', dataIndex: 'cutterName', width: 100, align: 'center' }, |
| | | { title: 'åå
·ç®ç§°', dataIndex: 'cutterType', width: 80, align: 'center' }, |
| | | { title: 'åå
·è§æ ¼', dataIndex: 'cutterSpec', align: 'center' }, |
| | | { title: 'é¢å®å¯¿å½', dataIndex: 'lifetime', width: 150, align: 'center' }, |
| | | { title: 'åä½', dataIndex: 'cutterSpacing', width: 150, align: 'center' }, |
| | | { title: 'åå
·æ°é', dataIndex: 'quantity', width: 150, align: 'center' }, |
| | | { title: 'åä½', dataIndex: 'cutterSpacing', width: 50, align: 'center' }, |
| | | { title: 'åå
·æ°é', dataIndex: 'quantity', width: 80, align: 'center' }, |
| | | { title: 'æè¿°', dataIndex: 'description', width: 200, align: 'center' }, |
| | | { title: 'æä½', dataIndex: 'action', scopedSlots: { customRender: 'action' }, align: 'center', width: 150 } |
| | | ], |
| | | url: { |
| | |
| | | }, |
| | | methods: { |
| | | setQueryParamAndLoadData(pageNo = 1) { |
| | | const { id, type } = this.currentLevelInfo |
| | | this.queryParam = Object.assign({}, { attributionId: id, attributionType: type }) |
| | | if (this.currentLevelInfo.classificationId_dictText==='nc'){ |
| | | const {docId,attributionType,attributionId} = this.currentLevelInfo |
| | | this.queryParam = Object.assign({}, { docId:docId,attributionType:attributionType,attributionId:attributionId }) |
| | | } |
| | | if (this.currentLevelInfo.deviceManagementId !== null && this.currentLevelInfo.deviceManagementId !== undefined){ |
| | | const {attributionType,id} = this.currentLevelInfo |
| | | this.queryParam = Object.assign({}, {attributionType:attributionType,attributionId:id }) |
| | | } |
| | | if (this.currentLevelInfo.id !== null && this.currentLevelInfo.type !== null && this.currentLevelInfo.type !== undefined && this.currentLevelInfo.id !== undefined){ |
| | | const { id, type } = this.currentLevelInfo |
| | | this.queryParam = Object.assign({}, { attributionId: id, attributionType: type }) |
| | | } |
| | | this.loadData(pageNo) |
| | | }, |
| | | searchQuery(pageNo = 1) { |
| | | if (this.currentLevelInfo.classificationId_dictText==='nc'){ |
| | | const {docId,attributionType,attributionId} = this.currentLevelInfo |
| | | this.queryParam = Object.assign({}, { docId:docId,attributionType:attributionType,attributionId:attributionId }) |
| | | } |
| | | if (this.currentLevelInfo.deviceManagementId !== null && this.currentLevelInfo.deviceManagementId !== undefined){ |
| | | const {attributionType,id} = this.currentLevelInfo |
| | | this.queryParam = Object.assign({}, {attributionType:attributionType,attributionId:id }) |
| | | } |
| | | if (this.currentLevelInfo.id !== null && this.currentLevelInfo.type !== null && this.currentLevelInfo.type !== undefined && this.currentLevelInfo.id !== undefined){ |
| | | const { id, type } = this.currentLevelInfo |
| | | this.queryParam = Object.assign({}, { attributionId: id, attributionType: type }) |
| | | } |
| | | this.loadData(pageNo) |
| | | }, |
| | | |
| | |
| | | |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="设å¤ç±»åç§°"> |
| | | <a-form-model-item label="æ°æ§ç³»ç»ç±»å«"> |
| | | <a-input v-model="model.deviceManagementId_dictText" placeholder="è¯·éæ©è®¾å¤ç±»" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | |
| | | }, |
| | | |
| | | /** |
| | | * 设å¤ç±»éæ©æ¹åå触åå¡«å
设å¤ç±»å¯¹åºè®¾å¤ç±»åç§° |
| | | * 设å¤ç±»éæ©æ¹åå触åå¡«å
设å¤ç±»å¯¹åºæ°æ§ç³»ç»ç±»å« |
| | | * @param value |
| | | */ |
| | | handleCodeSelectChange(value) { |
| | |
| | | // align: 'center' |
| | | // }, |
| | | { |
| | | title: '设å¤ç±»', |
| | | title: 'è½´æ°', |
| | | dataIndex: 'deviceManagementCode_dictText', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: '设å¤ç±»åç§°', |
| | | title: 'æ°æ§ç³»ç»ç±»å«', |
| | | dataIndex: 'deviceManagementId_dictText', |
| | | align: 'center' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- |
| | | Description: æ£ç´¢çµåæ ·æ¿List |
| | | Author: ä½è
liuyh |
| | | Date: 2025-02-27 |
| | | --> |
| | | <template> |
| | | <a-modal width="95%" :title="title" :visible="visible" @cancel="visible=false" :maskClosable="false" centered |
| | | @ok="handleAssignDocumentToDevice"> |
| | | <div class="tabs-container"> |
| | | <div style="width: 72%"> |
| | | <a-tabs> |
| | | <a-tab-pane tab="ææ¡£å表"> |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | | <a-row :gutter="24"> |
| | | <a-col :md="7" :sm="7"> |
| | | <a-form-item label="æä»¶åç§°"> |
| | | <a-input placeholder="请è¾å
¥æä»¶åç§°" v-model="queryParam.docName" allow-clear></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="7" :sm="7"> |
| | | <a-form-item label="æ°æ§ç³»ç»ç±»å«"> |
| | | <a-input placeholder="请è¾å
¥æ°æ§ç³»ç»ç±»å«" v-model="queryParam.deviceManagementName" allow-clear></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="7" :sm="7"> |
| | | <a-form-item label="è½´æ°"> |
| | | <a-input placeholder="请è¾å
¥è½´æ°" v-model="queryParam.deviceManagementCode" allow-clear></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="7" :sm="7"> |
| | | <a-form-item label="èç¹åç§°"> |
| | | <a-input placeholder="请è¾å
¥èç¹åç§°" v-model="queryParam.treeName" allow-clear></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="7" :sm="7"> |
| | | <a-form-item label="èç¹ä»£å·"> |
| | | <a-input placeholder="请è¾å
¥èç¹ä»£å·" v-model="queryParam.treeCode" allow-clear></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="7" :sm="7"> |
| | | <a-form-item label="æè´¨"> |
| | | <a-input placeholder="请è¾å
¥æè´¨" v-model="queryParam.structureType" allow-clear></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="11" :sm="11"> |
| | | <a-form-item label="ä¸ä¼ æ¶é´"> |
| | | <a-range-picker v-model="date" value-format="YYYY-MM-DD" |
| | | @change="handleDateChange" allow-clear></a-range-picker> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="4" :sm="4"> |
| | | <a-button type="primary" @click="searchQuery" icon="search">æ¥è¯¢</a-button> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | |
| | | |
| | | <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false" :loading="loading" |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys,selectedRows:selectionRows, onChange: onSelectChange}" |
| | | @change="handleTableChange" |
| | | :scroll="{y:456}" :size="size" rowKey="docId"> |
| | | |
| | | </a-table> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </div> |
| | | |
| | | <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-button type="primary" @click="isExpandAllTreeNode=!isExpandAllTreeNode" style="margin: 0 8px"> |
| | | å±å¼/æå |
| | | </a-button> |
| | | </div> |
| | | |
| | | <!--产åç»ææ --> |
| | | <div style="overflow:auto;margin-top: 10px;height: 400px"> |
| | | <a-tree blockNode checkable :checkedKeys="checkedKeys" :expandedKeys.sync="expandedKeys" |
| | | :autoExpandParent="autoExpandParent" @select="handleTreeNodeSelect" |
| | | :treeData="treeDataSource" @check="handleTreeNodeCheck" @expand="handleTreeNodeExpand"> |
| | | <template slot="title" slot-scope="{ title, parentId, entity, key:treeKey,type}"> |
| | | <span v-if="title.indexOf(searchValue) > -1">{{ title.substr(0, title.indexOf(searchValue)) }}<span |
| | | class="replaceSearch">{{ |
| | | searchValue |
| | | }}</span>{{ title.substr(title.indexOf(searchValue) + searchValue.length) }}</span> |
| | | <span v-else>{{ title }}</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> |
| | | </div> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getAction } from '@/api/manage' |
| | | import dncApi from '@/api/dnc' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | |
| | | export default { |
| | | name: 'NcDocumentSearchNcModal', |
| | | components: {}, |
| | | mixins: [JeecgListMixin], |
| | | props: { |
| | | currentDocumentInfo: { |
| | | type: Object |
| | | }, |
| | | size: { |
| | | type: String |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | disableMixinCreated: true, |
| | | visible: false, |
| | | title: '', |
| | | columns: [ |
| | | { |
| | | title: 'åºå·', |
| | | dataIndex: 'rowIndex', |
| | | key: 'rowIndex', |
| | | width: 50, |
| | | align: 'center', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | | } |
| | | }, |
| | | { |
| | | title: 'èç¹åç§°', |
| | | dataIndex: 'nodeName', |
| | | align: 'center', |
| | | width: 80, |
| | | sorter: false |
| | | }, |
| | | { |
| | | title: 'èç¹ä»£å·', |
| | | dataIndex: 'nodeCode', |
| | | align: 'center', |
| | | width: 80, |
| | | sorter: false |
| | | }, |
| | | { |
| | | title: 'æ°æ§ç³»ç»ç±»å«', |
| | | dataIndex: 'deviceName', |
| | | align: 'center', |
| | | width: 80, |
| | | sorter: false |
| | | }, |
| | | { |
| | | title: 'è½´æ°', |
| | | dataIndex: 'deviceCode', |
| | | align: 'center', |
| | | width: 80, |
| | | sorter: false |
| | | }, |
| | | { |
| | | title: 'æä»¶åç§°', |
| | | dataIndex: 'docName', |
| | | key: 'docName', |
| | | align: 'center', |
| | | width: 200, |
| | | sorter: true |
| | | }, |
| | | { |
| | | title: 'åºåºç¶æ', |
| | | dataIndex: 'pullStatus_dictText', |
| | | key: 'pullStatus', |
| | | align: 'center', |
| | | width: 100, |
| | | filters: [ |
| | | { text: 'æªåºåº', value: 1 }, |
| | | { text: 'å·²åºåº', value: 2 } |
| | | ] |
| | | }, |
| | | { |
| | | title: 'ç¶ æ', |
| | | dataIndex: 'docDispatchStatus_dictText', |
| | | key: 'docDispatchStatus', |
| | | align: 'center', |
| | | width: 60, |
| | | filters: [ |
| | | { text: 'ç¼å¶', value: 1 }, |
| | | { text: 'æ ¡å¯¹', value: 2 }, |
| | | { text: 'æ¹å', value: 3 }, |
| | | { text: 'è¯å', value: 4 }, |
| | | { text: 'å®å', value: 5 } |
| | | ] |
| | | }, |
| | | { |
| | | title: 'å建æ¶é´', |
| | | dataIndex: 'createTime', |
| | | align: 'center', |
| | | width: 150, |
| | | sorter: true |
| | | } |
| | | ], |
| | | searchValue: '', |
| | | searchInput: '', |
| | | spinning: false, |
| | | treeDataSource: [], |
| | | allTreeKeys: [], |
| | | checkedKeys: [], |
| | | expandedKeys: [], |
| | | autoExpandParent: true, |
| | | isExpandAllTreeNode: true, |
| | | date: [], |
| | | url: { |
| | | list: '/nc/product/query/nc' |
| | | } |
| | | } |
| | | }, |
| | | watch: { |
| | | visible: { |
| | | handler(value) { |
| | | if (value) { |
| | | this.resetData() |
| | | this.loadData() |
| | | this.getDocumentAssignDeviceTreeByApi() |
| | | } |
| | | } |
| | | }, |
| | | isExpandAllTreeNode: { |
| | | handler(value) { |
| | | if (value) this.expandedKeys = this.allTreeKeys |
| | | else this.expandedKeys = [] |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) |
| | | }, |
| | | methods: { |
| | | handleSearchNc() { |
| | | this.visible = true |
| | | }, |
| | | // è·åå½åå¯¹åºææ¡£å表 |
| | | loadData() { |
| | | this.dataSource = [] |
| | | if (!this.url.list) { |
| | | this.$message.error('请设置url.list屿§!') |
| | | return |
| | | } |
| | | var params = this.getQueryParams()//æ¥è¯¢æ¡ä»¶ |
| | | if (!params) return false |
| | | params.attributionType = this.currentDocumentInfo.type |
| | | params.attributionId = this.currentDocumentInfo.key |
| | | 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 |
| | | }) |
| | | }, |
| | | |
| | | // è·åDNCè®¾å¤æ |
| | | getDocumentAssignDeviceTreeByApi() { |
| | | this.spinning = true |
| | | this.treeDataSource = [] |
| | | dncApi.getDeviceTreeDataApi() |
| | | .then(res => { |
| | | if (res.success) { |
| | | this.dataList = [] |
| | | this.allTreeKeys = [] |
| | | this.treeDataSource = res.result |
| | | this.generateList(this.treeDataSource) |
| | | this.expandedKeys = this.allTreeKeys |
| | | } else { |
| | | this.$message.warn(res.message) |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.spinning = false |
| | | }) |
| | | }, |
| | | |
| | | // æ¶é´éæ©å¨éæ©å®æå触å |
| | | handleDateChange(value) { |
| | | this.queryParam.startTime = value[0] |
| | | this.queryParam.endTime = value[1] |
| | | }, |
| | | |
| | | /** |
| | | * è¡¨æ ¼å页ãæåºæ¹åãçéæ¶è§¦å |
| | | * @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.loadData() |
| | | }, |
| | | |
| | | // ææ´¾å°è®¾å¤çªå£ç¹å»ç¡®å®ææ´¾è®¾å¤å触å |
| | | handleAssignDocumentToDevice() { |
| | | const { |
| | | checkedKeys, |
| | | selectedRowKeys, |
| | | selectionRows, |
| | | dataList, |
| | | $confirm, |
| | | $notification, |
| | | currentDocumentInfo, |
| | | queryParam: { applyReason }, |
| | | $destroyAll, |
| | | $bus |
| | | } = this |
| | | const { attributionId, attributionType } = currentDocumentInfo |
| | | const paramsArray = [] |
| | | // è¿æ»¤è½¦é´keyä»
æ¾å
¥è®¾å¤key |
| | | const treeCheckedDeviceKeys = [] |
| | | checkedKeys.forEach(checkedKey => { |
| | | const device = dataList.find(item => item.key === checkedKey && item.type === 2) |
| | | if (device) treeCheckedDeviceKeys.push(device.key) |
| | | }) |
| | | |
| | | if (treeCheckedDeviceKeys.length === 0 || selectedRowKeys.length === 0) { |
| | | $notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: 'è¯·éæ©è®¾å¤æææ¡£' |
| | | }) |
| | | return |
| | | } |
| | | |
| | | $confirm({ |
| | | title: 'æç¤º', |
| | | content: `确认æäº¤åï¼`, |
| | | okText: '确认', |
| | | cancelText: 'åæ¶', |
| | | onOk: () => { |
| | | // åé循ç¯ç¡®å®æ¯ä¸ç»è®¾å¤ä¸ææ¡£çåæ° |
| | | treeCheckedDeviceKeys.forEach(deviceId => { |
| | | selectionRows.forEach(({ docId, publishFileId ,attributionId,attributionType}) => { |
| | | paramsArray.push({ |
| | | docId, |
| | | deviceId, |
| | | fileId: publishFileId, |
| | | attributionId, |
| | | attributionType, |
| | | applyReason |
| | | }) |
| | | }) |
| | | }) |
| | | |
| | | paramsArray.forEach(item => { |
| | | dncApi.assignDocumentToDeviceApi(item) |
| | | .then(res => { |
| | | if (res.success) { |
| | | $bus.$emit('reloadMainBottomTableData', 'useDocumentEquipment') |
| | | $notification.success({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | } else { |
| | | $notification.error({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }) |
| | | .catch(err => { |
| | | $notification.error({ |
| | | message: 'æ¶æ¯', |
| | | description: err.message |
| | | }) |
| | | }) |
| | | .finally(() => { |
| | | $destroyAll() |
| | | }) |
| | | }) |
| | | }, |
| | | onCancel: () => { |
| | | $destroyAll() |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | /* è¾å
¥æ¥è¯¢å
容ååæ¶è§¦å */ |
| | | 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 |
| | | */ |
| | | handleTreeNodeExpand(expandedKeys) { |
| | | this.expandedKeys = expandedKeys |
| | | this.autoExpandParent = false |
| | | }, |
| | | |
| | | /** |
| | | * æ èç¹å¤éæ¡é䏿¶è§¦å |
| | | * @param selectedKeys éä¸èç¹key |
| | | * @param {node} node èç¹å¯¹è±¡ |
| | | */ |
| | | handleTreeNodeCheck(checkedKeys, { node }) { |
| | | let record = node.dataRef |
| | | this.checkedKeys = checkedKeys |
| | | }, |
| | | |
| | | /** |
| | | * æ èç¹é䏿¶è§¦åï¼æ¨¡ææ èç¹å¤éæ¡é䏿¶çææï¼ |
| | | * @param selectedKeys éä¸èç¹key |
| | | * @param {node} node èç¹å¯¹è±¡ |
| | | */ |
| | | handleTreeNodeSelect(selectedKeys, { node }) { |
| | | node.$el.childNodes[1].click() |
| | | }, |
| | | |
| | | /** |
| | | * éå½è·å¾è¾å
¥é¡¹çç¶çº§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++) { |
| | | const node = data[i] |
| | | const key = node.key |
| | | const title = node.title |
| | | 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.selectionRows = {} |
| | | this.checkedKeys = [] |
| | | this.filters = {} |
| | | this.isorter = Object.assign({}, this.defaultSorter) |
| | | }, |
| | | |
| | | handleDelete() { |
| | | // æ¤å¤å½æ°ä¸ºå±è½mixinsä¸çåå彿°ï¼éç¨å½æ°åå¨ç¶çº§ä¸ |
| | | }, |
| | | |
| | | triggerCorrespondingMethod({ methodName, modalTitle }) { |
| | | if (this[methodName]) { |
| | | this[methodName]() |
| | | this.title = modalTitle |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <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); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | ::-webkit-scrollbar { |
| | | width: 8px; |
| | | } |
| | | </style> |
| | |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import DocumentModal from '../../../../common/DocumentModal' |
| | | import NcDocumentAssignModal from './NcDocumentAssignModal' |
| | | import dncApi from '@api/dnc' |
| | | |
| | | export default { |
| | | name: 'NcDocumentTableList', |
| | |
| | | title: 'åºå·', |
| | | dataIndex: 'rowIndex', |
| | | key: 'rowIndex', |
| | | width: 65, |
| | | width: 50, |
| | | align: 'center', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | |
| | | dataIndex: 'docName', |
| | | key: 'docName', |
| | | align: 'center', |
| | | width: 300, |
| | | scopedSlots: {customRender: 'docName'}, |
| | | width: 500, |
| | | sorter: true |
| | | }, |
| | | { title: '代ç çæ¬', dataIndex: 'docAlias', align: 'center' }, |
| | | { |
| | | title: 'åºåºç¶æ', |
| | | dataIndex: 'pullStatus_dictText', |
| | |
| | | filters: [ |
| | | { text: 'æªåºåº', value: 1 }, |
| | | { text: 'å·²åºåº', value: 2 } |
| | | ] |
| | | ], |
| | | width: 100 |
| | | }, |
| | | { |
| | | title: 'ç¶ æ', |
| | | title: 'ç¶æ', |
| | | dataIndex: 'docDispatchStatus_dictText', |
| | | key: 'docDispatchStatus', |
| | | align: 'center', |
| | |
| | | { text: 'æ¹å', value: 3 }, |
| | | { text: 'è¯å', value: 4 }, |
| | | { text: 'å®å', value: 5 } |
| | | ] |
| | | ], |
| | | width: 70 |
| | | }, |
| | | { title: 'ç³»ç»æå®çæ¬', dataIndex: 'publishVersion', align: 'center', width: 200 }, |
| | | { title: 'ç³»ç»æå®çæ¬', dataIndex: 'publishVersion', align: 'center', width: 120 }, |
| | | { |
| | | title: 'å建æ¶é´', |
| | | dataIndex: 'createTime', |
| | | align: 'center', |
| | | width: 200, |
| | | width: 150, |
| | | sorter: true |
| | | } |
| | | ], |
| | |
| | | this.$refs.documentAssignModalRef.visible = true |
| | | }, |
| | | |
| | | 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: `æåæå` |
| | | }) |
| | | } 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ä¸çåå彿°ï¼éç¨å½æ°åå¨ç¶çº§ä¸ |
| | | }, |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <j-form-container :disabled="formDisabled"> |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="夹å
·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="fixtureInformation"> |
| | | <a-input v-model="model.fixtureInformation" placeholder="请è¾å
¥å¤¹å
·" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="å¾ç" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="picture"> |
| | | <j-image-upload isMultiple :number="1" v-model="model.picture" ></j-image-upload> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="说æä¿¡æ¯" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remake"> |
| | | <a-textarea v-model="model.remake" rows="4" placeholder="请è¾å
¥è¯´æä¿¡æ¯" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form-model> |
| | | </j-form-container> |
| | | </a-spin> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import { httpAction, getAction } from '@api/manage' |
| | | import { validateDuplicateValue } from '@/utils/util' |
| | | |
| | | export default { |
| | | name: 'GuideCardBatchForm', |
| | | components: { |
| | | }, |
| | | props: { |
| | | //表åç¦ç¨ |
| | | disabled: { |
| | | type: Boolean, |
| | | default: false, |
| | | required: false |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | model:{ |
| | | }, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 }, |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 }, |
| | | }, |
| | | confirmLoading: false, |
| | | validatorRules: { |
| | | fixtureInformation: [ |
| | | { required: true, message: '请è¾å
¥å¤¹å
·!'}, |
| | | ], |
| | | picture: [ |
| | | { required: true, message: '请è¾å
¥å¾ç!'}, |
| | | ], |
| | | remake: [ |
| | | { required: true, message: '请è¾å
¥è¯´æä¿¡æ¯!'}, |
| | | ], |
| | | }, |
| | | url: { |
| | | edit: "/dnc/guideCardBatch/edit", |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | formDisabled(){ |
| | | return this.disabled |
| | | }, |
| | | }, |
| | | created () { |
| | | //å¤ä»½modelåå§å¼ |
| | | this.modelDefault = JSON.parse(JSON.stringify(this.model)); |
| | | }, |
| | | methods: { |
| | | add () { |
| | | this.edit(this.modelDefault); |
| | | }, |
| | | edit (record) { |
| | | this.model = Object.assign({}, record); |
| | | this.visible = true; |
| | | }, |
| | | submitForm () { |
| | | const that = this; |
| | | // 触å表åéªè¯ |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = true; |
| | | let httpurl = ''; |
| | | let method = ''; |
| | | if(!this.model.id){ |
| | | httpurl+=this.url.add; |
| | | method = 'post'; |
| | | }else{ |
| | | httpurl+=this.url.edit; |
| | | method = 'put'; |
| | | } |
| | | httpAction(httpurl,this.model,method).then((res)=>{ |
| | | if(res.success){ |
| | | that.$message.success(res.message); |
| | | that.$emit('ok'); |
| | | }else{ |
| | | that.$message.warning(res.message); |
| | | } |
| | | }).finally(() => { |
| | | that.confirmLoading = false; |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <j-form-container :disabled="formDisabled"> |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="æµæ°´å·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="serialNumber"> |
| | | <a-input v-model="model.serialNumber" placeholder="请è¾å
¥æµæ°´å·" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="åä½" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="unit"> |
| | | <a-input v-model="model.unit" placeholder="请è¾å
¥åä½" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="ç¨åºæä»¶å" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="docName"> |
| | | <a-input v-model="model.docName" placeholder="请è¾å
¥ç¨åºæä»¶å" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="é¶ä»¶å¾å·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="partsCode"> |
| | | <a-input v-model="model.partsCode" placeholder="请è¾å
¥é¶ä»¶å¾å·" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="é¶ä»¶åç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="partsName"> |
| | | <a-input v-model="model.partsName" placeholder="请è¾å
¥é¶ä»¶åç§°" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="é¶ä»¶ææ" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materielDesp"> |
| | | <a-input v-model="model.materielDesp" placeholder="请è¾å
¥é¶ä»¶ææ" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="夹å
·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="fixtureInformation"> |
| | | <a-input v-model="model.fixtureInformation" placeholder="请è¾å
¥å¤¹å
·" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="å·¥åºï¼å·¥æ¥å·ï¼" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processWorkCode"> |
| | | <a-input v-model="model.processWorkCode" placeholder="请è¾å
¥å·¥åºï¼å·¥æ¥å·ï¼" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="å å·¥æ¹æ¬¡" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processingBatch"> |
| | | <a-input v-model="model.processingBatch" placeholder="请è¾å
¥å å·¥æ¹æ¬¡" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="å å·¥æ°é" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processingQuantity"> |
| | | <a-input v-model="model.processingQuantity" placeholder="请è¾å
¥å å·¥æ°é" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="å 工设å¤" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processingEquipment"> |
| | | <a-input v-model="model.processingEquipment" placeholder="请è¾å
¥å 工设å¤" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="å¾ç" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="picture"> |
| | | <j-image-upload isMultiple v-model="model.picture" ></j-image-upload> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="说æä¿¡æ¯" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remake"> |
| | | <a-textarea v-model="model.remake" rows="4" placeholder="请è¾å
¥è¯´æä¿¡æ¯" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="ç¼å人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="compiler"> |
| | | <a-input v-model="model.compiler" placeholder="请è¾å
¥ç¼å人" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="ç¼åæ¥æ" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="compilerTime"> |
| | | <j-date placeholder="è¯·éæ©ç¼åæ¥æ" v-model="model.compilerTime" style="width: 100%" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="æ ¡å¯¹äºº" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="proofreader"> |
| | | <a-input v-model="model.proofreader" placeholder="请è¾å
¥æ ¡å¯¹äºº" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="æ ¡å¯¹æ¥æ" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="proofreaderTime"> |
| | | <j-date placeholder="è¯·éæ©æ ¡å¯¹æ¥æ" v-model="model.proofreaderTime" style="width: 100%" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="æä½è
" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operator"> |
| | | <a-input v-model="model.operator" placeholder="请è¾å
¥æä½è
" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="馿£æ¥æ" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inspectionTime"> |
| | | <j-date placeholder="è¯·éæ©é¦æ£æ¥æ" v-model="model.inspectionTime" style="width: 100%" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="审æ¹äºº" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approver"> |
| | | <a-input v-model="model.approver" placeholder="请è¾å
¥å®¡æ¹äºº" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="å®¡æ¹æ¥æ" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approverTime"> |
| | | <j-date placeholder="è¯·éæ©å®¡æ¹æ¥æ" v-model="model.approverTime" style="width: 100%" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form-model> |
| | | </j-form-container> |
| | | </a-spin> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import { httpAction, getAction } from '@api/manage' |
| | | import { validateDuplicateValue } from '@/utils/util' |
| | | |
| | | export default { |
| | | name: 'GuideCardBatchForm', |
| | | components: { |
| | | }, |
| | | props: { |
| | | //表åç¦ç¨ |
| | | disabled: { |
| | | type: Boolean, |
| | | default: false, |
| | | required: false |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | model:{ |
| | | }, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 }, |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 }, |
| | | }, |
| | | confirmLoading: false, |
| | | validatorRules: { |
| | | fixtureInformation: [ |
| | | { required: true, message: '请è¾å
¥å¤¹å
·!'}, |
| | | ], |
| | | picture: [ |
| | | { required: true, message: '请è¾å
¥å¾ç!'}, |
| | | ], |
| | | remake: [ |
| | | { required: true, message: '请è¾å
¥è¯´æä¿¡æ¯!'}, |
| | | ], |
| | | }, |
| | | url: { |
| | | add: "/dnc/guideCardBatch/add", |
| | | edit: "/dnc/guideCardBatch/edit", |
| | | queryById: "/dnc/guideCardBatch/queryById" |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | formDisabled(){ |
| | | return this.disabled |
| | | }, |
| | | }, |
| | | created () { |
| | | //å¤ä»½modelåå§å¼ |
| | | this.modelDefault = JSON.parse(JSON.stringify(this.model)); |
| | | }, |
| | | methods: { |
| | | add () { |
| | | this.edit(this.modelDefault); |
| | | }, |
| | | edit (record) { |
| | | this.model = Object.assign({}, record); |
| | | this.visible = true; |
| | | }, |
| | | submitForm () { |
| | | const that = this; |
| | | // 触å表åéªè¯ |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = true; |
| | | let httpurl = ''; |
| | | let method = ''; |
| | | if(!this.model.id){ |
| | | httpurl+=this.url.add; |
| | | method = 'post'; |
| | | }else{ |
| | | httpurl+=this.url.edit; |
| | | method = 'put'; |
| | | } |
| | | httpAction(httpurl,this.model,method).then((res)=>{ |
| | | if(res.success){ |
| | | that.$message.success(res.message); |
| | | that.$emit('ok'); |
| | | }else{ |
| | | that.$message.warning(res.message); |
| | | } |
| | | }).finally(() => { |
| | | that.confirmLoading = false; |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-card :bordered="false"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | | <a-row :gutter="24"> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="æµæ°´å·"> |
| | | <a-input placeholder="请è¾å
¥æµæ°´å·" v-model="queryParam.serialNumber"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="夹å
·"> |
| | | <a-input placeholder="请è¾å
¥å¤¹å
·" v-model="queryParam.fixtureInformation"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="å å·¥æ¹æ¬¡"> |
| | | <a-input placeholder="请è¾å
¥å å·¥æ¹æ¬¡" v-model="queryParam.processingBatch"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> |
| | | <a-button type="primary" @click="searchQuery" icon="search">æ¥è¯¢</a-button> |
| | | <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">éç½®</a-button> |
| | | </span> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | <!-- æ¥è¯¢åºå-END --> |
| | | |
| | | <!-- tableåºå-begin --> |
| | | <div> |
| | | <a-table |
| | | ref="table" |
| | | size="middle" |
| | | :scroll="{x:true}" |
| | | bordered |
| | | rowKey="id" |
| | | :columns="columns" |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | class="j-table-force-nowrap" |
| | | @change="handleTableChange"> |
| | | |
| | | <template slot="htmlSlot" slot-scope="text"> |
| | | <div v-html="text"></div> |
| | | </template> |
| | | <template slot="imgSlot" slot-scope="text,record"> |
| | | <span v-if="!text" style="font-size: 12px;font-style: italic;">æ å¾ç</span> |
| | | <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> |
| | | </template> |
| | | <template slot="fileSlot" slot-scope="text"> |
| | | <span v-if="!text" style="font-size: 12px;font-style: italic;">æ æä»¶</span> |
| | | <a-button |
| | | v-else |
| | | :ghost="true" |
| | | type="primary" |
| | | icon="download" |
| | | size="small" |
| | | @click="downloadFile(text)"> |
| | | ä¸è½½ |
| | | </a-button> |
| | | </template> |
| | | |
| | | <span slot="action" slot-scope="text, record"> |
| | | |
| | | <a @click="handleEdit(record)">ä¸ä¼ /ä¿®æ¹ä¿¡æ¯</a> |
| | | |
| | | <a-divider type="vertical" /> |
| | | |
| | | <a @click="handleDetail(record)">çææ°æ§å å·¥ç¨åºç¡®è®¤è¡¨</a> |
| | | |
| | | <a-divider type="vertical" /> |
| | | |
| | | <a @click="handleDetail(record)">åèµ·æµç¨</a> |
| | | |
| | | <a-divider type="vertical" /> |
| | | |
| | | <a @click="handleDetail(record)">详æ
</a> |
| | | |
| | | </span> |
| | | |
| | | </a-table> |
| | | </div> |
| | | |
| | | <guide-card-batch-modal ref="modalForm" @ok="modalFormOk"></guide-card-batch-modal> |
| | | |
| | | <GuideCardBatchModalDrawer ref="modalEditForm" @ok="modalFormOk"></GuideCardBatchModalDrawer> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import '@assets/less/TableExpand.less' |
| | | import { mixinDevice } from '@/utils/mixin' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import GuideCardBatchModal from './GuideCardBatchModal' |
| | | import GuideCardBatchModalDrawer from './GuideCardBatchModal.Style#Drawer.vue' |
| | | import { getAction } from '@api/manage' |
| | | |
| | | export default { |
| | | name: 'GuideCardBatchList', |
| | | mixins:[JeecgListMixin, mixinDevice], |
| | | props: { |
| | | guideCardBatchInfo: { |
| | | type: Object |
| | | }, |
| | | size: { |
| | | type: String |
| | | } |
| | | }, |
| | | components: { |
| | | GuideCardBatchModal, |
| | | GuideCardBatchModalDrawer |
| | | }, |
| | | data () { |
| | | return { |
| | | description: 'ncæä»¶å¯¹åºæ°æ§ç¨åºå 工确认表管ç页é¢', |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key:'rowIndex', |
| | | width:60, |
| | | align:"center", |
| | | customRender:function (t,r,index) { |
| | | return parseInt(index)+1; |
| | | } |
| | | }, |
| | | { |
| | | title:'æµæ°´å·', |
| | | align:"center", |
| | | dataIndex: 'serialNumber' |
| | | }, |
| | | { |
| | | title:'夹å
·', |
| | | align:"center", |
| | | dataIndex: 'fixtureInformation' |
| | | }, |
| | | { |
| | | title:'å å·¥æ¹æ¬¡', |
| | | align:"center", |
| | | dataIndex: 'processingBatch' |
| | | }, |
| | | { |
| | | title:'å å·¥æ°é', |
| | | align:"center", |
| | | dataIndex: 'processingQuantity' |
| | | }, |
| | | { |
| | | title:'å 工设å¤', |
| | | align:"center", |
| | | dataIndex: 'processingEquipment' |
| | | }, |
| | | { |
| | | title: 'æä½', |
| | | dataIndex: 'action', |
| | | align:"center", |
| | | fixed:"right", |
| | | width:147, |
| | | scopedSlots: { customRender: 'action' } |
| | | } |
| | | ], |
| | | url: { |
| | | list: "/dnc/guideCardBatch/list", |
| | | delete: "/dnc/guideCardBatch/delete", |
| | | deleteBatch: "/dnc/guideCardBatch/deleteBatch", |
| | | exportXlsUrl: "/dnc/guideCardBatch/exportXls", |
| | | importExcelUrl: "dnc/guideCardBatch/importExcel", |
| | | |
| | | }, |
| | | dictOptions:{}, |
| | | superFieldList:[], |
| | | } |
| | | }, |
| | | created() { |
| | | this.getSuperFieldList(); |
| | | }, |
| | | computed: { |
| | | importExcelUrl: function(){ |
| | | return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; |
| | | }, |
| | | }, |
| | | methods: { |
| | | initDictConfig(){ |
| | | }, |
| | | getGuideCardBatchList(){ |
| | | console.log('currentDocumentInfo', this.guideCardBatchInfo) |
| | | let params |
| | | params.docId=this.guideCardBatchInfo.docId; |
| | | params.serialNumber=this.queryParam.serialNumber; |
| | | params.fixtureInformation=this.guideCardBatchInfo.fixtureInformation; |
| | | params.processingBatch=this.guideCardBatchInfo.processingBatch; |
| | | this.loading = true |
| | | getAction(this.url.list,params).then((res) => { |
| | | if (res.success) { |
| | | this.dataSource = res.result.records||res.result; |
| | | 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 |
| | | }) |
| | | }, |
| | | getSuperFieldList(){ |
| | | let fieldList=[]; |
| | | fieldList.push({type:'string',value:'serialNumber',text:'æµæ°´å·',dictCode:''}) |
| | | fieldList.push({type:'string',value:'unit',text:'åä½',dictCode:''}) |
| | | fieldList.push({type:'string',value:'docName',text:'ç¨åºæä»¶å',dictCode:''}) |
| | | fieldList.push({type:'string',value:'partsCode',text:'é¶ä»¶å¾å·',dictCode:''}) |
| | | fieldList.push({type:'string',value:'partsName',text:'é¶ä»¶åç§°',dictCode:''}) |
| | | fieldList.push({type:'string',value:'materielDesp',text:'é¶ä»¶ææ',dictCode:''}) |
| | | fieldList.push({type:'string',value:'fixtureInformation',text:'夹å
·',dictCode:''}) |
| | | fieldList.push({type:'string',value:'processWorkCode',text:'å·¥åºï¼å·¥æ¥å·ï¼',dictCode:''}) |
| | | fieldList.push({type:'string',value:'processingBatch',text:'å å·¥æ¹æ¬¡',dictCode:''}) |
| | | fieldList.push({type:'string',value:'processingQuantity',text:'å å·¥æ°é',dictCode:''}) |
| | | fieldList.push({type:'string',value:'processingEquipment',text:'å 工设å¤',dictCode:''}) |
| | | fieldList.push({type:'Text',value:'picture',text:'å¾ç',dictCode:''}) |
| | | fieldList.push({type:'string',value:'remake',text:'说æä¿¡æ¯',dictCode:''}) |
| | | fieldList.push({type:'string',value:'compiler',text:'ç¼å人',dictCode:''}) |
| | | fieldList.push({type:'date',value:'compilerTime',text:'ç¼åæ¥æ'}) |
| | | fieldList.push({type:'string',value:'proofreader',text:'æ ¡å¯¹äºº',dictCode:''}) |
| | | fieldList.push({type:'date',value:'proofreaderTime',text:'æ ¡å¯¹æ¥æ'}) |
| | | fieldList.push({type:'string',value:'operator',text:'æä½è
',dictCode:''}) |
| | | fieldList.push({type:'date',value:'inspectionTime',text:'馿£æ¥æ'}) |
| | | fieldList.push({type:'string',value:'approver',text:'审æ¹äºº',dictCode:''}) |
| | | fieldList.push({type:'date',value:'approverTime',text:'å®¡æ¹æ¥æ'}) |
| | | this.superFieldList = fieldList |
| | | }, |
| | | handleEdit(record) { |
| | | this.$refs.modalEditForm.edit(record); |
| | | this.$refs.modalEditForm.title = "ä¸ä¼ /ä¿®æ¹ä¿¡æ¯"; |
| | | this.$refs.modalEditForm.disableSubmit = false; |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | @import '~@assets/less/common.less'; |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-drawer |
| | | :title="title" |
| | | :width="width" |
| | | placement="right" |
| | | :closable="false" |
| | | @close="close" |
| | | destroyOnClose |
| | | :visible="visible"> |
| | | <GuideCardBatchEditForm ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></GuideCardBatchEditForm> |
| | | <div class="drawer-footer"> |
| | | <a-button @click="handleCancel" style="margin-bottom: 0;">å
³é</a-button> |
| | | <a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;">æäº¤</a-button> |
| | | </div> |
| | | </a-drawer> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import GuideCardBatchEditForm from './GuideCardBatchEditForm.vue' |
| | | |
| | | export default { |
| | | name: 'GuideCardBatchModal', |
| | | components: { |
| | | GuideCardBatchEditForm |
| | | }, |
| | | data () { |
| | | return { |
| | | title:"æä½", |
| | | width:800, |
| | | visible: false, |
| | | disableSubmit: false |
| | | } |
| | | }, |
| | | methods: { |
| | | add () { |
| | | this.visible=true |
| | | this.$nextTick(()=>{ |
| | | this.$refs.realForm.add(); |
| | | }) |
| | | }, |
| | | edit (record) { |
| | | this.visible=true |
| | | this.$nextTick(()=>{ |
| | | this.$refs.realForm.edit(record); |
| | | }); |
| | | }, |
| | | close () { |
| | | this.$emit('close'); |
| | | this.visible = false; |
| | | }, |
| | | submitCallback(){ |
| | | this.$emit('ok'); |
| | | this.visible = false; |
| | | }, |
| | | handleOk () { |
| | | this.$refs.realForm.submitForm(); |
| | | }, |
| | | handleCancel () { |
| | | this.close() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | /** Buttonæé®é´è· */ |
| | | .ant-btn { |
| | | margin-left: 30px; |
| | | margin-bottom: 30px; |
| | | float: right; |
| | | } |
| | | .drawer-footer{ |
| | | position: absolute; |
| | | bottom: -8px; |
| | | width: 100%; |
| | | border-top: 1px solid #e8e8e8; |
| | | padding: 10px 16px; |
| | | text-align: right; |
| | | left: 0; |
| | | background: #fff; |
| | | border-radius: 0 0 2px 2px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <j-modal |
| | | :title="title" |
| | | :width="width" |
| | | :visible="visible" |
| | | switchFullscreen |
| | | @ok="handleOk" |
| | | :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" |
| | | @cancel="handleCancel" |
| | | cancelText="å
³é"> |
| | | <guide-card-batch-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></guide-card-batch-form> |
| | | </j-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import GuideCardBatchForm from './GuideCardBatchForm' |
| | | export default { |
| | | name: 'GuideCardBatchModal', |
| | | components: { |
| | | GuideCardBatchForm |
| | | }, |
| | | data () { |
| | | return { |
| | | title:'', |
| | | width:800, |
| | | visible: false, |
| | | disableSubmit: false |
| | | } |
| | | }, |
| | | methods: { |
| | | add () { |
| | | this.visible=true |
| | | this.$nextTick(()=>{ |
| | | this.$refs.realForm.add(); |
| | | }) |
| | | }, |
| | | edit (record) { |
| | | this.visible=true |
| | | this.$nextTick(()=>{ |
| | | this.$refs.realForm.edit(record); |
| | | }) |
| | | }, |
| | | close () { |
| | | this.$emit('close'); |
| | | this.visible = false; |
| | | }, |
| | | handleOk () { |
| | | this.$refs.realForm.submitForm(); |
| | | }, |
| | | submitCallback(){ |
| | | this.$emit('ok'); |
| | | this.visible = false; |
| | | }, |
| | | handleCancel () { |
| | | this.close() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | :currentLevelDetails="currentLevelInfo" :size="containerSize"/> |
| | | </a-tab-pane> |
| | | |
| | | <!--ç³»ç»åæ°é
ç½®ä¸è¥åæ°ä¸º1æ¶æå±ç¤ºå¯¹åºå±çº§çåå
·å表--> |
| | | <a-tab-pane :key="2" tab="åå
·å表" |
| | | v-if="+currentLevelInfo.type===5&&isProcessHasCutterList||+currentLevelInfo.type===6&&isProcessStepHasCutterList"> |
| | | <CutterTableList ref="cutterTableListRef" :currentLevelInfo="currentLevelInfo" :size="containerSize"/> |
| | | </a-tab-pane> |
| | | |
| | | <template v-if="currentLevelInfo.hasOwnProperty('docId')"> |
| | | <a-tab-pane :key="1" tab="ææ¡£å±æ§"> |
| | | <DocumentInfo :currentLevelDetails="currentLevelInfo" :size="containerSize"/> |
| | |
| | | <UseDocumentEquipmentTableList ref="useDocumentEquipmentTableRef" :currentDocumentInfo="currentLevelInfo" |
| | | :size="containerSize"/> |
| | | </a-tab-pane> |
| | | |
| | | <a-tab-pane :key="5" tab="åå
·å表"> |
| | | <CutterTableList ref="cutterTableListRef" :currentLevelInfo="currentLevelInfo" :size="containerSize"/> |
| | | </a-tab-pane> |
| | | |
| | | <a-tab-pane :key="6" tab="审ç¾è¯¦æ
"> |
| | | <DocumentInfoFlow ref="flowTableListRef" :currentLevelDetails="currentLevelInfo" :size="containerSize"/> |
| | | </a-tab-pane> |
| | | |
| | | <a-tab-pane :key="7" tab="æ¹æ¬¡å表"> |
| | | <GuideCardBatchList ref="guideCardBatchInfoRef" :guideCardBatchInfo="currentLevelInfo" :size="containerSize"/> |
| | | </a-tab-pane> |
| | | |
| | | |
| | | </template> |
| | | </a-tabs> |
| | | |
| | |
| | | import ProcessStepInfo from './ProcessStep/ProcessStepInfo' |
| | | import CutterTableList from './Cutter/CutterTableList' |
| | | import DocumentInfo from '../../../common/DocumentInfo' |
| | | import DocumentInfoFlow from '../../../common/DocumentInfoFlow.vue' |
| | | import DocumentVersionTableList from '../../../common/DocumentVersionTableList' |
| | | import UseDocumentEquipmentTableList from './Document/UseNcDocumentEquipmentTableList' |
| | | import FilePreview from '../../../common/FilePreview' |
| | |
| | | import ProcessSpecVersionInfo |
| | | from '@views/dnc/base/modules/ProductStructure/ProcessSpecVersion/ProcessSpecVersionInfo.vue' |
| | | import { getAction } from '@/api/manage' |
| | | import GuideCardBatchList from '@views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchList.vue' |
| | | |
| | | export default { |
| | | name: 'ProductStructureMainBottom', |
| | | components: { |
| | | GuideCardBatchList, |
| | | ProcessSpecVersionInfo, |
| | | UseDeviceCustomTypeEquipmentTableList, |
| | | CutterTableList, |
| | |
| | | UseDocumentEquipmentTableList, |
| | | DocumentVersionTableList, |
| | | DocumentInfo, |
| | | DocumentInfoFlow, |
| | | ProcessInfo, |
| | | PartInfo, |
| | | ProductInfo, |
| | |
| | | case 4: |
| | | this.$nextTick(() => this.$refs.useDocumentEquipmentTableRef.loadData()) |
| | | break |
| | | case 5: |
| | | this.$nextTick(() => this.$refs.cutterTableListRef.setQueryParamAndLoadData(1)) |
| | | break |
| | | case 6: |
| | | this.$nextTick(() => this.$refs.flowTableListRef.getAllApproveData()) |
| | | break |
| | | case 7: |
| | | this.$nextTick(() => this.$refs.guideCardBatchInfoRef.getGuideCardBatchList()) |
| | | default: |
| | | } |
| | | // 黿¢æ¥å£å¨åä¸ææ¡£ä¸æ¬¡ç¹å»å
夿¬¡è§¦å |
| | |
| | | <AssignPermissionModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> |
| | | <!--æ£ç´¢çµå模æ¿å¼¹çª--> |
| | | <NcDocumentSearchModal :currentDocumentInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> |
| | | <!--æ£ç´¢NCæä»¶å¼¹çª--> |
| | | <NcDocumentSearchNcModal :currentDocumentInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> |
| | | <!--å¼ç¨é¨ä»¶--> |
| | | <NcComponentBorrowModal :currentBorrowInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> |
| | | <!--产åç»ææ åºæ¬å³é®èå(空ç½å¤è§¦å)--> |
| | |
| | | import ProductStructureBaseContextMenu |
| | | from '@views/dnc/base/modules/ProductStructure/ProductStructureBaseContextMenu.vue' |
| | | import NcDocumentSearchModal from '@views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchModal.vue' |
| | | import NcDocumentSearchNcModal from '@views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchNcModal.vue' |
| | | import NcComponentBorrowModal from '@views/dnc/base/modules/ProductStructure/Document/NcComponentBorrowModal.vue' |
| | | |
| | | export default { |
| | |
| | | ProductModal, |
| | | ProductStructureTreeContextMenu, |
| | | NcDocumentSearchModal, |
| | | NcDocumentSearchNcModal, |
| | | NcComponentBorrowModal |
| | | }, |
| | | data() { |
| | |
| | | // { label: 'å¯¼åºææ¡£', code: 'product_export', icon: 'export', isCommonMethod: true }, |
| | | { label: '导å
¥å
¶ä»ææ¡£', code: 'product_other_import', icon: 'import', isCommonMethod: true }, |
| | | { label: 'æ£ç´¢çµåæ ·æ¿', code: 'product_search', icon: 'search', isCommonMethod: true }, |
| | | { label: 'æ£ç´¢NCæä»¶', code: 'product_search_nc', icon: 'search', isCommonMethod: true }, |
| | | { label: 'å é¤', code: 'product_delete', icon: 'delete', isCommonMethod: true }, |
| | | { label: 'æéé
ç½®', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true } |
| | | ], |
| | |
| | | // { label: 'å¯¼åºææ¡£', code: 'component_export', icon: 'export', isCommonMethod: true }, |
| | | { label: '导å
¥å
¶ä»ææ¡£', code: 'component_other_import', icon: 'import', isCommonMethod: true }, |
| | | { label: 'æ£ç´¢çµåæ ·æ¿', code: 'component_search', icon: 'search', isCommonMethod: true }, |
| | | { label: 'æ£ç´¢NCæä»¶', code: 'component_search_nc', icon: 'search', isCommonMethod: true }, |
| | | { label: 'å¼ç¨é¨ä»¶',code: 'component_borrow',icon: 'plus',isCommonMethod: false}, |
| | | { label: 'å é¤', code: 'component_delete', icon: 'delete', isCommonMethod: true }, |
| | | { label: 'æéé
ç½®', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true } |
| | |
| | | // { label: 'å¯¼åºææ¡£', code: 'parts_export', icon: 'export', isCommonMethod: true }, |
| | | { label: '导å
¥å
¶ä»ææ¡£', code: 'parts_other_import', icon: 'import', isCommonMethod: true }, |
| | | { label: 'æ£ç´¢çµåæ ·æ¿', code: 'parts_search', icon: 'search', isCommonMethod: true }, |
| | | { label: 'æ£ç´¢NCæä»¶', code: 'parts_search_nc', icon: 'search', isCommonMethod: true }, |
| | | { label: 'å é¤', code: 'parts_delete', icon: 'delete', isCommonMethod: true }, |
| | | { label: 'æéé
ç½®', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true } |
| | | ], |
| | |
| | | { label: 'ç¼è¾å·¥èºè§ç¨çæ¬ä¿¡æ¯', code: 'version_edit', icon: 'edit', isCommonMethod: false }, |
| | | { label: '导å
¥å
¶ä»ææ¡£', code: 'version_other_import', icon: 'import', isCommonMethod: true }, |
| | | { label: 'æ£ç´¢çµåæ ·æ¿', code: 'version_search', icon: 'search', isCommonMethod: true }, |
| | | { label: 'æ£ç´¢NCæä»¶', code: 'version_search_nc', icon: 'search', isCommonMethod: true }, |
| | | { label: 'å é¤', code: 'version_delete', icon: 'delete', isCommonMethod: true }, |
| | | { label: 'æéé
ç½®', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true } |
| | | ], |
| | |
| | | // { label: '导åºNCç¨åº', code: 'process_export', icon: 'export', isCommonMethod: true }, |
| | | { label: '导å
¥NCç¨åº', code: 'process_nc_import', icon: 'import', isCommonMethod: true }, |
| | | { label: '导å
¥å
¶ä»ææ¡£', code: 'process_other_import', icon: 'import', isCommonMethod: true }, |
| | | { label: 'æ£ç´¢çµåæ ·æ¿', code: 'process_search', icon: 'search', isCommonMethod: true }, |
| | | { label: 'æ£ç´¢NCæä»¶', code: 'process_search_nc', icon: 'search', isCommonMethod: true }, |
| | | { label: 'æéé
ç½®', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true } |
| | | ], |
| | | //å·¥æ¥ |
| | |
| | | // { label: '导åºNCç¨åº', code: 'processStep_export', icon: 'import', isCommonMethod: true }, |
| | | { label: '导å
¥NCç¨åº', code: 'processStep_nc_import', icon: 'import', isCommonMethod: true }, |
| | | { label: '导å
¥å
¶ä»ææ¡£', code: 'processStep_other_import', icon: 'import', isCommonMethod: true }, |
| | | { label: 'æ£ç´¢çµåæ ·æ¿', code: 'processStep_search', icon: 'search', isCommonMethod: true }, |
| | | { label: 'æ£ç´¢NCæä»¶', code: 'processStep_search_nc', icon: 'search', isCommonMethod: true }, |
| | | { label: 'æéé
ç½®', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true } |
| | | ] |
| | | } |
| | |
| | | <template> |
| | | <a-descriptions bordered :size="size" :column="4"> |
| | | <a-descriptions-item label="ææ¡£åç§°">{{currentLevelDetails.docName}}</a-descriptions-item> |
| | | <a-descriptions-item label="代ç çæ¬">{{currentLevelDetails.docAlias}}</a-descriptions-item> |
| | | <a-descriptions-item label="设å¤ç¼å·">{{currentLevelDetails.docCode}}</a-descriptions-item> |
| | | <a-descriptions-item label="ææ¡£åç¼">{{currentLevelDetails.docSuffix}}</a-descriptions-item> |
| | | <a-descriptions-item label="ææ¡£ç¶æ">{{currentLevelDetails.docDispatchStatus_dictText}}</a-descriptions-item> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- |
| | | Description: 工使µ-ææ´¾è®¾å¤è¯¦æ
é¡µé¢ List |
| | | Author: ä½è
liuyh |
| | | Date: 2025-02-27 |
| | | --> |
| | | <template> |
| | | <a-card :bordered="false"> |
| | | <div> |
| | | <a-timeline style="padding:0 1% 0 12%" > |
| | | <a-timeline-item color='white' v-for="(item,index1) in hitaskDataSource" :key="index1"> |
| | | <div class="bottom"> |
| | | <p>å¤ç人ï¼{{item.assignee_dictText}}</p> |
| | | <p v-if="index1 !==0">å¤çæ¶é¿ï¼{{item.duration}}</p> |
| | | <p v-if="item.name !== 'æäº¤ç³è¯·'">å¤çç±»åï¼{{item.sequenceFlowName}}</p> |
| | | <p v-if="item.description != null">å¤çæè§ï¼{{item.description}}</p> |
| | | <div class="left_qiu"><span>{{item.taskName}}</span></div> |
| | | </div> |
| | | </a-timeline-item> |
| | | </a-timeline> |
| | | </div> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import '@assets/less/TableExpand.less' |
| | | import { mixinDevice } from '@/utils/mixin' |
| | | import { getAction, deleteAction, postAction, downFile, httpAction } from '@api/manage' |
| | | export default { |
| | | name: 'FlowShenPi', |
| | | mixins: [mixinDevice], |
| | | props: { |
| | | currentLevelDetails: { |
| | | type: Object |
| | | }, |
| | | size: { |
| | | type: String |
| | | } |
| | | }, |
| | | |
| | | data() { |
| | | return { |
| | | form: this.$form.createForm(this), |
| | | span: 12, |
| | | span1: 8, |
| | | coldisabled: true, |
| | | spinning: false, |
| | | tableRowRecord: {}, |
| | | assignFileStream:{}, |
| | | tableDataSource: [], |
| | | usageDataSource: [], |
| | | hitaskDataSource:[], |
| | | bomForm: {}, |
| | | approveContent:"", |
| | | imageSrc: null, |
| | | drawerVisible: true, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 30 }, |
| | | sm: { span: 16 } |
| | | }, |
| | | validatorRules: { |
| | | version: { |
| | | rules: [ |
| | | { required: true, message: '请è¾å
¥ææ¡£çæ¬!'}, |
| | | ] |
| | | }, |
| | | applyUser: { |
| | | rules: [ |
| | | { required: true, message: 'è¯·éæ©ç³è¯·äºº!'}, |
| | | ] |
| | | }, |
| | | approveContent: { |
| | | rules: [ |
| | | { required: true, message: '请è¾å
¥å®¡æ¹æè§!'}, |
| | | ] |
| | | }, |
| | | docName: { |
| | | rules: [ |
| | | { required: true, message: '请è¾å
¥ææ¡£åç§°!'}, |
| | | ] |
| | | }, |
| | | status: { |
| | | rules: [ |
| | | { required: true, message: 'è¯·éæ©å®¡æ¹ç¶æ!'}, |
| | | ] |
| | | }, |
| | | }, |
| | | approveData: {}, |
| | | flowData: {}, |
| | | title: '详æ
页é¢', |
| | | width: 1000, |
| | | visible: false, |
| | | // 表头 |
| | | url: { |
| | | queryHisTaskList:'/dncFlow/dispatchFile/queryDispatchDocFile', |
| | | }, |
| | | dictOptions: {}, |
| | | superFieldList: [], |
| | | workflowSource: [] |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | computed: {}, |
| | | methods: { |
| | | callback() { |
| | | }, |
| | | handCancel() { |
| | | this.visible = false |
| | | }, |
| | | getAllApproveData() { |
| | | console.log('currentLevelDetails----->', this.currentLevelDetails) |
| | | let parmhis={ |
| | | 'attributionId': this.currentLevelDetails.attributionId, |
| | | 'attributionType': this.currentLevelDetails.attributionType, |
| | | 'docId': this.currentLevelDetails.docId |
| | | } |
| | | getAction(this.url.queryHisTaskList,parmhis).then(res=>{ |
| | | this.hitaskDataSource=res.result |
| | | }).finally( |
| | | this.visible = true, |
| | | console.log('this.approveData---->', this.approveData) |
| | | ) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | .shallow-hr { |
| | | border: 0; |
| | | height: 1px; /* åç线çé«åº¦ */ |
| | | background-color: rgba(0, 0, 0, 0.1); /* ä½¿ç¨ RGBA é¢è²ï¼å¹¶è®¾ç½®è¾ä½çéæåº¦ */ |
| | | margin: 20px 0; /* åç线ä¸ä¸çå¤è¾¹è· */ |
| | | } |
| | | .btn-custom { |
| | | background-color: #4CAF50; /* 绿è²èæ¯ */ |
| | | color: white; /* ç½è²æå */ |
| | | border: none; /* æ è¾¹æ¡ */ |
| | | padding: 5px 15px; /* å
è¾¹è· */ |
| | | text-align: center; /* æåå±
ä¸ */ |
| | | text-decoration: none; /* æ ä¸å线 */ |
| | | display: inline-block; /* è¡å
åå
ç´ */ |
| | | font-size: 12px; /* åä½å¤§å° */ |
| | | margin: 4px 2px; /* å¤è¾¹è· */ |
| | | cursor: pointer; /* é¼ æ æ¬åæ¶æ¾ç¤ºæå */ |
| | | border-radius: 4px; /* åè§è¾¹æ¡ */ |
| | | } |
| | | |
| | | .bold-large-label { |
| | | font-weight: bold; |
| | | font-size: 20px; /* æä½ éè¦çä»»ä½å¤§å° */ |
| | | } |
| | | .left_qiu{ |
| | | position: absolute; |
| | | left: -74px; |
| | | top: 0; |
| | | width:54px; |
| | | border-radius: 50%; |
| | | height:54px; |
| | | font-size: 13px; |
| | | margin: auto; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | align-items: center; |
| | | justify-content: center; |
| | | background: #0099ff; |
| | | transform: translate(0, 0); |
| | | } |
| | | /deep/ .ant-timeline-item-tail{ |
| | | left: -29px !important; |
| | | } |
| | | .left_qiu span{ |
| | | width: 3em; |
| | | display: block; |
| | | color: #fff; |
| | | text-align: center; |
| | | } |
| | | .img{ |
| | | width: 75%; |
| | | } |
| | | |
| | | .wrap{ |
| | | clear: both; |
| | | width: 100%; |
| | | display: flex; |
| | | height: 50px; |
| | | border: 1px solid #ccc; |
| | | /* background-color: aqua; */ |
| | | } |
| | | .box{ |
| | | width:21%; |
| | | height:50px; |
| | | border-right: 1px solid #ccc; |
| | | line-height: 50px; |
| | | /* background: red; */ |
| | | text-align:center; |
| | | margin: auto; |
| | | } |
| | | |
| | | @import '~@assets/less/common.less'; |
| | | </style> |
| | |
| | | |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="代ç çæ¬"> |
| | | <a-input v-model="model.docAlias" placeholder="请è¾å
¥ä»£ç çæ¬"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="æè¿°"> |
| | | <a-textarea v-model="model.description" placeholder="请è¾å
¥ææ¡£æè¿°"></a-textarea> |
| | | </a-form-model-item> |
| | |
| | | return parseInt(index) + 1 |
| | | } |
| | | }, |
| | | { title: 'æä»¶åç§°', dataIndex: 'fileName', align: 'center', scopedSlots: { customRender: 'fileName' } }, |
| | | { title: 'çæ¬å·', dataIndex: 'docVersion', align: 'center' }, |
| | | { title: 'æä»¶å¤§å°', dataIndex: 'fileSize', align: 'center' } |
| | | { title: 'æä»¶åç§°', dataIndex: 'fileName', align: 'center', scopedSlots: { customRender: 'fileName' },width: 500}, |
| | | { title: 'çæ¬å·', dataIndex: 'docVersion', align: 'center' ,width: 200}, |
| | | { title: 'æä»¶å¤§å°', dataIndex: 'fileSize', align: 'center' ,width: 150} |
| | | ], |
| | | url: { |
| | | list: '/nc/file/find/list' |
| | |
| | | NC: [ |
| | | { label: 'ç¼è¾ææ¡£ä¿¡æ¯', code: 'document_edit', subMenu: [], icon: 'edit', isCommonMethod: false }, |
| | | { label: 'ææ´¾å°è®¾å¤', code: 'document_assign', subMenu: [], icon: 'cluster', isCommonMethod: false }, |
| | | { label: 'æååå
·', code: 'document_extract', subMenu: [], icon: 'tool', isCommonMethod: false }, |
| | | { label: '导å
¥NCç¨åº', code: 'document_nc_import', subMenu: [], icon: 'import', isCommonMethod: true }, |
| | | { label: 'ä¸è½½', code: 'document_download', subMenu: [], icon: 'download', isCommonMethod: true }, |
| | | { label: 'å é¤', code: 'document_delete', subMenu: [], icon: 'delete', isCommonMethod: true }, |
| | |
| | | console.log('approcesstype--->', approcesstype) |
| | | switch (approcesstype) { |
| | | case 'drApproval': |
| | | item.description=item.title |
| | | item.description=item.description |
| | | this.handDrDetial(item) |
| | | break |
| | | case 'ggApproval': |
| | | item.description=item.title |
| | | item.description=item.description |
| | | this.handDispatchFileDetial(item) |
| | | break |
| | | case 'sbdjApproval': |
| | | item.description = item.title |
| | | item.description = item.description |
| | | this.handInspectionOrderDetail(item) |
| | | break |
| | | default: |
| | |
| | | }, |
| | | handDispatchFileDetial(item){ |
| | | this.selectDispatchFileXqData = item |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | this.selectDispatchFileXqData.assignee_dictText=item.todoUsers_dictText |
| | | this.selectDispatchFileXqData.createTime=item.startTime |
| | | this.selectDispatchFileXqData.procInstId=item.processInstanceId |
| | |
| | | </a-row> |
| | | <a-row> |
| | | <a-col :span='span'> |
| | | <a-form-model-item label='设å¤ç±»åç§°' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementCode'> |
| | | <a-form-model-item label='æ°æ§ç³»ç»ç±»å«' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementCode'> |
| | | <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceManagementCode'></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span='span'> |
| | | <a-form-model-item label='设å¤ç±»åç§°' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementName'> |
| | | <a-form-model-item label='æ°æ§ç³»ç»ç±»å«' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementName'> |
| | | <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceManagementName'></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | |
| | | </a-row> |
| | | <a-row> |
| | | <a-col :span='span'> |
| | | <a-form-model-item label='设å¤ç±»åç§°' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementCode'> |
| | | <a-form-model-item label='æ°æ§ç³»ç»ç±»å«' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementCode'> |
| | | <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceManagementCode'></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span='span'> |
| | | <a-form-model-item label='设å¤ç±»åç§°' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementName'> |
| | | <a-form-model-item label='æ°æ§ç³»ç»ç±»å«' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementName'> |
| | | <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceManagementName'></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | |
| | | > |
| | | <a-card :bordered="false"> |
| | | <div> |
| | | <b>{{ selectShenpiData.title }}</b> |
| | | <b>{{ selectShenpiData.description }}</b> |
| | | <br> |
| | | <br> |
| | | <a-tag color="blue"> |