¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-card |
| | | :bordered="false" |
| | | class="card-area" |
| | | > |
| | | <template slot="title"> |
| | | <i |
| | | class="action-jeecg actionsite2" |
| | | style="font-size: 18px;" |
| | | /> |
| | | å¤ä»¶ä¿¡æ¯ |
| | | </template> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div class="table-page-search-wrapper"> |
| | | <!-- æç´¢åºå --> |
| | | <a-form |
| | | layout="inline" |
| | | @keyup.enter.native="searchQuery" |
| | | > |
| | | <a-row :gutter="24"> |
| | | <a-col |
| | | :md="8" |
| | | :sm="8" |
| | | > |
| | | <a-form-item label="å¤ä»¶ç¼å·"> |
| | | <j-input |
| | | placeholder="请è¾å
¥å¤ä»¶ç¼å·æ¥è¯¢" |
| | | v-model="queryParam.num" |
| | | ></j-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col |
| | | :md="8" |
| | | :sm="8" |
| | | > |
| | | <a-form-item label="å¤ä»¶åç§°"> |
| | | <j-input |
| | | placeholder="请è¾å
¥å¤ä»¶åç§°æ¥è¯¢" |
| | | v-model="queryParam.name" |
| | | ></j-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | |
| | | <!-- æä½æé®åºå --> |
| | | <div |
| | | class="table-operator" |
| | | style="margin-top: 5px" |
| | | > |
| | | <a-button |
| | | type="primary" |
| | | @click="searchQuery" |
| | | icon="search" |
| | | >æ¥è¯¢</a-button> |
| | | <a-button |
| | | @click="searchReset" |
| | | icon="reload" |
| | | >éç½®</a-button> |
| | | <a-button |
| | | @click="handleAdd" |
| | | type="primary" |
| | | v-has="'sparePartList:add'" |
| | | icon="plus" |
| | | :hidden="disabled" |
| | | >æ°å¢</a-button> |
| | | <a-button |
| | | type="primary" |
| | | icon="download" |
| | | @click="handleExportXls('å¤ä»¶ä¿¡æ¯')" |
| | | >导åº</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-dropdown v-if="selectedRowKeys.length > 0"> |
| | | <a-button style="margin-left: 8px"> |
| | | æ¹éæä½ |
| | | <a-icon type="down" /> |
| | | </a-button> |
| | | <a-menu slot="overlay" > |
| | | <a-menu-item @click="batchDel"> |
| | | <a-icon type="delete" />å é¤ |
| | | </a-menu-item> |
| | | </a-menu> |
| | | </a-dropdown> |
| | | </div> |
| | | |
| | | <a-table |
| | | ref="table" |
| | | bordered |
| | | size="middle" |
| | | rowKey="id" |
| | | :columns="columns" |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | :rowSelection="rowSelection" |
| | | @change="handleTableChange" |
| | | :scroll="{ x: 'calc(1500px + 50%)', y: 900 }" |
| | | :customRow="clickThenSelect" |
| | | > |
| | | |
| | | <span |
| | | slot="action" |
| | | slot-scope="text, record" |
| | | > |
| | | <a |
| | | href="javascript:;" |
| | | v-has="'sparePartList:edit'" |
| | | @click="handleEdit(record)" |
| | | >ç¼è¾</a> |
| | | <a-divider type="vertical" /> |
| | | <a-dropdown> |
| | | <a class="ant-dropdown-link"> |
| | | æ´å¤ |
| | | <a-icon type="down" /> |
| | | </a> |
| | | <a-menu slot="overlay" v-has="'sparePartList:delete'"> |
| | | <!-- <a-menu-item> |
| | | <a @click="handleEdit(record)">ç¼è¾</a> |
| | | </a-menu-item> --> |
| | | <a-menu-item > |
| | | <a-popconfirm |
| | | title="ç¡®å®å é¤å?" |
| | | @confirm="() => handleDelete(record.id)" |
| | | > |
| | | <a>å é¤</a> |
| | | </a-popconfirm> |
| | | </a-menu-item> |
| | | </a-menu> |
| | | </a-dropdown> |
| | | </span> |
| | | </a-table> |
| | | |
| | | <a-tabs |
| | | type="card" |
| | | defaultActiveKey="1" |
| | | > |
| | | <a-tab-pane key="1"> |
| | | <span slot="tab"> |
| | | <a-badge>éé
è®¾å¤ </a-badge> |
| | | </span> |
| | | <div |
| | | class="table-operator" |
| | | style="margin-top: 0px" |
| | | > |
| | | <equipment-list ref="EquipmentList"></equipment-list> |
| | | </div> |
| | | </a-tab-pane> |
| | | |
| | | </a-tabs> |
| | | <spare-part-model |
| | | ref="modalForm" |
| | | @ok="modalFormOk" |
| | | ></spare-part-model> |
| | | |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | import { requestPut, deleteAction, getFileAccessHttpUrl, getAction } from '@/api/manage' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import SparePartModel from './SparePartModel.vue' |
| | | import JInput from '@/components/jeecg/JInput' |
| | | import JEllipsis from '@/components/jeecg/JEllipsis' |
| | | import Tooltip from 'ant-design-vue/es/tooltip' |
| | | import Vue from 'vue' |
| | | import EquipmentList from './EquipmentList' |
| | | |
| | | export default { |
| | | name: 'SparePart2List.', |
| | | mixins: [JeecgListMixin], |
| | | components: { |
| | | SparePartModel, |
| | | JInput, |
| | | JEllipsis, |
| | | EquipmentList, |
| | | Tooltip |
| | | }, |
| | | props: { |
| | | nodeSelected: { |
| | | type: Object, |
| | | default: {} |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | disabled: true, |
| | | ipagination: { |
| | | current: 1, |
| | | pageSize: 5, |
| | | pageSizeOptions: ['5', '10', '20'], |
| | | showTotal: (total, range) => { |
| | | return range[0] + "-" + range[1] + " å
±" + total + "æ¡" |
| | | }, |
| | | showQuickJumper: true, |
| | | showSizeChanger: true, |
| | | total: 0 |
| | | }, |
| | | selectedRowKeys: [], |
| | | selectionRows: [], |
| | | //é»è®¤æåº |
| | | isorter: { |
| | | column: 'num', |
| | | order: 'asc', |
| | | }, |
| | | |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key: 'rowIndex', |
| | | align: 'center', |
| | | customRender: function (t, r, index) { |
| | | return parseInt(index) + 1 |
| | | }, |
| | | width: 50, |
| | | }, |
| | | { |
| | | title: 'å¤ä»¶ç¼ç ', |
| | | align: "center", |
| | | dataIndex: 'num', |
| | | }, |
| | | { |
| | | title: 'å¤ä»¶åç§°', |
| | | align: "center", |
| | | dataIndex: 'name', |
| | | }, |
| | | { |
| | | title: 'åå·', |
| | | align: "center", |
| | | dataIndex: 'model', |
| | | }, |
| | | { |
| | | title: 'è§æ ¼', |
| | | align: "center", |
| | | dataIndex: 'specification', |
| | | }, |
| | | { |
| | | title: 'å¶é å', |
| | | align: "center", |
| | | dataIndex: 'constructorId_dictText', |
| | | }, |
| | | { |
| | | title: 'åä½', |
| | | align: "center", |
| | | dataIndex: 'mainUnitId_dictText', |
| | | }, |
| | | /* { |
| | | title: 'è¾
åä½', |
| | | align: "center", |
| | | dataIndex: 'auxiliaryUnitId_dictText', |
| | | }, */ |
| | | // { |
| | | // title: '主æ°é', |
| | | // align: "center", |
| | | // dataIndex: 'mainQuantity', |
| | | // }, |
| | | // { |
| | | // title: 'è¾
æ°é', |
| | | // align: "center", |
| | | // dataIndex: 'auxiliaryQuantity', |
| | | // }, |
| | | { |
| | | title: 'æææ', |
| | | align: "center", |
| | | dataIndex: 'validityPeriod', |
| | | }, |
| | | { |
| | | title: 'ææåä½', |
| | | align: "center", |
| | | dataIndex: 'validityPeriodUnitId_dictText', |
| | | }, |
| | | { |
| | | title: 'åºåä¸éå¼', |
| | | align: "center", |
| | | dataIndex: 'inventoryUpperLimit', |
| | | }, |
| | | { |
| | | title: 'åºåä¸éå¼', |
| | | align: "center", |
| | | dataIndex: 'inventoryLowerLimit', |
| | | }, |
| | | { |
| | | title: 'ç»æµè®¢è´§é', |
| | | align: "center", |
| | | dataIndex: 'economicOrderQuantity', |
| | | }, |
| | | { |
| | | title: 'éè´æåæ', |
| | | align: "center", |
| | | dataIndex: 'purchaseLeadTime', |
| | | }, |
| | | { |
| | | title: 'æä½', |
| | | align: "center", |
| | | dataIndex: 'action', |
| | | scopedSlots: { |
| | | customRender: 'action', |
| | | }, |
| | | width: 200, |
| | | fixed: 'right', |
| | | }, |
| | | ], |
| | | url: { |
| | | list: "/spare/sparePart/list", |
| | | delete: "/spare/sparePart/delete", |
| | | deleteBatch: "/spare/sparePart/deleteBatch", |
| | | exportXlsUrl: '/spare/sparePart/exportXls', |
| | | importExcelUrl: '/spare/sparePart/importExcel', |
| | | }, |
| | | //æ°å¢ãç¼è¾ãå é¤ãæ¹éå 餿使¹åæ°æ®åå·æ°å
³èçç»ä»¶ççå¬å±æ§ |
| | | alterFlag: "", |
| | | equipmentRecord: {}, |
| | | // parentNum: "-1", |
| | | // parentName: "设å¤åç±»", |
| | | }; |
| | | }, |
| | | |
| | | computed: { |
| | | rowSelection() { |
| | | return { |
| | | type: 'checkbox', |
| | | onChange: (selectedRowKeys, selectedRows) => { |
| | | this.selectedRowKeys = selectedRowKeys; |
| | | this.onSelectChange(selectedRowKeys, selectedRows); |
| | | }, |
| | | getCheckboxProps(record) { |
| | | return ({ |
| | | props: { |
| | | // disabled: !(record.equipmentCategoryDtlList.length == 0), |
| | | } |
| | | }) |
| | | }, |
| | | selectedRowKeys: this.selectedRowKeys, |
| | | }; |
| | | }, |
| | | importExcelUrl: function(){ |
| | | return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; |
| | | } |
| | | }, |
| | | methods: { |
| | | |
| | | clickThenSelect(record) { |
| | | return { |
| | | on: { |
| | | click: () => { |
| | | this.onSelectChange(record.id.split(","), [record]); |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | onSelectChange(selectedRowKeys, selectionRows) { |
| | | if (selectedRowKeys.length == 1) { |
| | | this.$refs.EquipmentList.sparePartId = selectedRowKeys[0] |
| | | } else { |
| | | this.$refs.EquipmentList.sparePartId = '-1' |
| | | } |
| | | this.selectedRowKeys = selectedRowKeys; |
| | | this.selectionRows = selectionRows; |
| | | }, |
| | | |
| | | //ç¦ç¨ç¶ææ ·å¼ |
| | | tableRowClass(record, index) { |
| | | if (record.status != "1") { |
| | | return "frozenRowClass"; |
| | | } |
| | | return ""; |
| | | }, |
| | | handleAdd: function () { |
| | | this.$refs.modalForm.add(); |
| | | this.$refs.modalForm.title = "æ°å¢"; |
| | | this.$refs.modalForm.disableSubmit = false; |
| | | this.$refs.modalForm.sparePartCategoryId = this.nodeSelected.key; |
| | | }, |
| | | handleDelete: function (id) { |
| | | if (!this.url.delete) { |
| | | this.$message.error("请设置url.delete屿§!") |
| | | return |
| | | } |
| | | var that = this; |
| | | deleteAction(that.url.delete, { id: id }).then((res) => { |
| | | if (res.success) { |
| | | //éæ°è®¡ç®å页é®é¢ |
| | | that.reCalculatePage(1) |
| | | that.$message.success(res.message); |
| | | that.loadData(); |
| | | that.alterFlag = new Date(); |
| | | } else { |
| | | that.$message.warning(res.message); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | batchDel: function () { |
| | | if (!this.url.deleteBatch) { |
| | | this.$message.error("请设置url.deleteBatch屿§!") |
| | | return |
| | | } |
| | | if (this.selectedRowKeys.length <= 0) { |
| | | this.$message.warning('è¯·éæ©ä¸æ¡è®°å½ï¼'); |
| | | return; |
| | | } else { |
| | | var ids = ""; |
| | | for (var a = 0; a < this.selectedRowKeys.length; a++) { |
| | | ids += this.selectedRowKeys[a] + ","; |
| | | } |
| | | var that = this; |
| | | this.$confirm({ |
| | | title: "确认å é¤", |
| | | content: "æ¯å¦å é¤é䏿°æ®?", |
| | | onOk: function () { |
| | | that.loading = true; |
| | | deleteAction(that.url.deleteBatch, { ids: ids }).then((res) => { |
| | | if (res.success) { |
| | | //éæ°è®¡ç®å页é®é¢ |
| | | that.reCalculatePage(that.selectedRowKeys.length) |
| | | that.$message.success(res.message); |
| | | that.loadData(); |
| | | that.onClearSelected(); |
| | | that.alterFlag = new Date(); |
| | | } else { |
| | | that.$message.warning(res.message); |
| | | } |
| | | }).finally(() => { |
| | | that.loading = false; |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | searchReset() { |
| | | this.queryParam = {}; |
| | | if (this.nodeSelected.key != -1) { |
| | | this.disabled = false; |
| | | this.queryParam.sparePartCategoryId = this.nodeSelected.key; |
| | | } else { |
| | | this.disabled = true; |
| | | } |
| | | this.selectedRowKeys = [] |
| | | this.selectionRows = [] |
| | | this.$refs.EquipmentList.sparePartId = '-1' |
| | | this.loadData(1); |
| | | }, |
| | | |
| | | searchQuery() { |
| | | this.selectedRowKeys = [] |
| | | this.selectionRows = [] |
| | | this.$refs.EquipmentList.sparePartId = '-1' |
| | | this.loadData(1); |
| | | }, |
| | | |
| | | modalFormOk() { |
| | | // æ°å¢/ä¿®æ¹ æåæ¶ï¼éè½½å表 |
| | | this.loadData() |
| | | //æ¸
空å表éä¸ |
| | | this.onClearSelected() |
| | | this.$refs.EquipmentList.sparePartId = '-1' |
| | | }, |
| | | }, |
| | | watch: { |
| | | alterFlag() { |
| | | this.$bus.$emit('queryTreeData'); |
| | | }, |
| | | nodeSelected() { |
| | | this.queryParam = {}; |
| | | if (this.nodeSelected.key != -1) { |
| | | this.disabled = false; |
| | | this.queryParam.sparePartCategoryId = this.nodeSelected.key; |
| | | } else { |
| | | this.disabled = true; |
| | | } |
| | | this.selectedRowKeys = [] |
| | | this.selectionRows = [] |
| | | this.$refs.EquipmentList.sparePartId = '-1' |
| | | this.loadData(1); |
| | | }, |
| | | }, |
| | | created() { |
| | | this.queryParam = {}; |
| | | this.queryParam.sparePartCategoryId = this.nodeSelected.key; |
| | | this.selectedRowKeys = [] |
| | | this.selectionRows = [] |
| | | this.loadData(1); |
| | | } |
| | | |
| | | |
| | | } |
| | | </script> |
| | | <style> |
| | | @import '~@assets/less/common.less'; |
| | | |
| | | .frozenRowClass { |
| | | color: #c9c9c9; |
| | | } |
| | | .success { |
| | | color: green; |
| | | } |
| | | .error { |
| | | color: red; |
| | | } |
| | | .fontweight { |
| | | font-weight: bold; |
| | | } |
| | | </style> |