| | |
| | | <a-button @click="searchReset" icon="reload" style="margin-left: 8px">éç½®</a-button> |
| | | <a @click="handleToggleSearch" style="margin-left: 8px"> |
| | | {{ toggleSearchStatus ? 'æ¶èµ·' : 'å±å¼' }} |
| | | <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> |
| | | <a-icon :type="toggleSearchStatus ? 'up' : 'down'" /> |
| | | </a> |
| | | </span> |
| | | </a-col> |
| | |
| | | <a-dropdown v-if="selectedRowKeys.length > 0 "> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item key="1" @click="batchHandle"> |
| | | <a-icon type="delete"/> |
| | | <a-icon type="delete" /> |
| | | æ¹éå¤ç |
| | | </a-menu-item> |
| | | </a-menu> |
| | | <a-button style="margin-left: 8px"> æ¹éæä½ |
| | | <a-icon type="down"/> |
| | | <a-icon type="down" /> |
| | | </a-button> |
| | | </a-dropdown> |
| | | </div> |
| | |
| | | <div> |
| | | <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> |
| | | <i class="anticon anticon-info-circle ant-alert-icon"></i>已鿩 <a style="font-weight: 600">{{ |
| | | selectedRowKeys.length }}</a>项 |
| | | selectedRowKeys.length }}</a>项 |
| | | <a style="margin-left: 24px" @click="onClearSelected">æ¸
空</a> |
| | | </div> |
| | | |
| | |
| | | |
| | | </a-table> |
| | | </div> |
| | | <AssignFileStreamHandle ref="modalFormApproval" :selectShenpiData="selectShenpiData" @searchReset="searchReset"></AssignFileStreamHandle> |
| | | <DispatchFileHandle ref="modalFormDispatchFileXq" :selectShenpiData="selectDispatchFileXqData" @searchReset="searchReset"></DispatchFileHandle> |
| | | <DispatchFileBachHandleStyle ref="modalFormDispatchFileBatch" @searchReset="searchReset" @ok="modalFormOk"></DispatchFileBachHandleStyle> |
| | | <AssignFileStreamHandle ref="modalFormApproval" :selectShenpiData="selectShenpiData" |
| | | @searchReset="searchReset"></AssignFileStreamHandle> |
| | | <DispatchFileHandle ref="modalFormDispatchFileXq" :selectShenpiData="selectDispatchFileXqData" |
| | | @searchReset="searchReset"></DispatchFileHandle> |
| | | <DispatchFileBachHandleStyle ref="modalFormDispatchFileBatch" @searchReset="searchReset" |
| | | @ok="modalFormOk"></DispatchFileBachHandleStyle> |
| | | <!--å个æµç¨å¤ç--> |
| | | <InspectionOrderHandle ref="modalFormInspectionOrder" :selectShenpiData="selectInspectionOrderData" |
| | | @searchReset="searchReset"></InspectionOrderHandle> |
| | |
| | | <repair-order-approval-modal ref="repairOrderApprovalModal" @searchReset="searchReset" |
| | | :selectShenpiData="selectRepairOrderData"></repair-order-approval-modal> |
| | | <out-bound-order-handle ref="outBoundOrderHandle" :selectShenpiData="selectOutBoundOrderData" |
| | | @searchReset="searchReset"></out-bound-order-handle> |
| | | @searchReset="searchReset"></out-bound-order-handle> |
| | | <stocktaking-bound-handle ref="stocktakingBoundHandle" :selectShenpiData="selectStocktakingBoundOrderData" @searchReset="searchReset"></stocktaking-bound-handle> |
| | | |
| | | |
| | | <loss-bound-handle ref="lossBoundHandle" :selectShenpiData="selectLossBoundOrderData" |
| | | @searchReset="searchReset"></loss-bound-handle> |
| | | <!-- <loss-bound-handle ref="lossBoundHandle" :selectShenpiData="selectLossBoundOrderData"--> |
| | | <!-- @searchReset="searchReset"></loss-bound-handle>--> |
| | | <!--æ¹éå¤ç--> |
| | | <inspection-order-batch-handle ref="inspectionOrderBatchHandleRef" @searchReset="searchReset" |
| | | :taskList="selectionRows"/> |
| | | :taskList="selectionRows" /> |
| | | |
| | | <week-maintenance-batch-approval-modal ref="weenMaintenanceBatchApprovalModalRef" @searchReset="searchReset" |
| | | :taskList="selectionRows"/> |
| | | <equipment-lean-out-approval-modal ref="equipmentLeanOutApprovalModelRef" @searchReset="searchReset"/> |
| | | :taskList="selectionRows" /> |
| | | <equipment-lean-out-approval-modal ref="equipmentLeanOutApprovalModelRef" @searchReset="searchReset" /> |
| | | |
| | | <second-maintenance-approval-modal ref="secondMaintenanceApprovalModal" :selectShenpiData="selectSecondMaintenanceData" |
| | | @searchReset="searchReset"></second-maintenance-approval-modal> |
| | | <second-maintenance-approval-modal ref="secondMaintenanceApprovalModal" |
| | | :selectShenpiData="selectSecondMaintenanceData" |
| | | @searchReset="searchReset"></second-maintenance-approval-modal> |
| | | <third-maintenance-approval-modal ref="thirdMaintenanceApprovalModal" :selectShenpiData="selectThirdMaintenanceData" |
| | | @searchReset="searchReset"></third-maintenance-approval-modal> |
| | | <equipment-seal-up-approval-modal ref="equipmentSealUpApprovalModelRef" @searchReset="searchReset"/> |
| | | @searchReset="searchReset"></third-maintenance-approval-modal> |
| | | <equipment-seal-up-approval-modal ref="equipmentSealUpApprovalModelRef" @searchReset="searchReset" /> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import '@/assets/less/TableExpand.less' |
| | | import { mixinDevice } from '@/utils/mixin' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import JDictSelectTag from '@/components/dict/JDictSelectTag.vue' |
| | | import WeekMaintenanceApprovalModal from '@views/flowable/workflow/weekMaintenance/WeekMaintenanceApprovalModal' |
| | | import RepairOrderApprovalModal from '@views/flowable/workflow/repairOrder/RepairOrderApprovalModal' |
| | | import InspectionOrderHandle from '@views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue' |
| | | import '@/assets/less/TableExpand.less' |
| | | import { mixinDevice } from '@/utils/mixin' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import JDictSelectTag from '@/components/dict/JDictSelectTag.vue' |
| | | import WeekMaintenanceApprovalModal from '@views/flowable/workflow/weekMaintenance/WeekMaintenanceApprovalModal' |
| | | import RepairOrderApprovalModal from '@views/flowable/workflow/repairOrder/RepairOrderApprovalModal' |
| | | import InspectionOrderHandle from '@views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue' |
| | | |
| | | import { getAction } from '@api/manage' |
| | | import InspectionOrderBatchHandle from './InspectionOrder/InspectionOrderBatchHandle' |
| | | import WeekMaintenanceBatchApprovalModal from './weekMaintenance/WeekMaintenanceBatchApprovalModal' |
| | | import AssignFileStreamHandle from '@views/flowable/workflow/assignFileStream/AssignFileStreamHandle.vue' |
| | | import DispatchFileHandle from '@views/flowable/workflow/dispatchFile/DispatchFileHandle.vue' |
| | | import DispatchFileBachHandleStyle from '@views/flowable/workflow/dispatchFile/DispatchFileBachHandleStyle#Drawer.vue' |
| | | import OutBoundOrderHandle from '@views/flowable/workflow/outBoundOrder/OutBoundOrderHandle.vue' |
| | | import EquipmentLeanOutApprovalModal from '@views/flowable/workflow/leanOut/EquipmentLeanOutApprovalModal.vue' |
| | | import SecondMaintenanceApprovalModal from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue' |
| | | import ThirdMaintenanceApprovalModal from '@views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue' |
| | | import EquipmentSealUpApprovalModal from '@views/flowable/workflow/sealUp/EquipmentSealUpApprovalModal.vue' |
| | | export default { |
| | | name: 'NcDeviceCharactersList', |
| | | mixins: [JeecgListMixin, mixinDevice], |
| | | components: { |
| | | AssignFileStreamHandle, |
| | | DispatchFileHandle, |
| | | DispatchFileBachHandleStyle, |
| | | WeekMaintenanceBatchApprovalModal, |
| | | InspectionOrderBatchHandle, |
| | | JDictSelectTag, |
| | | WeekMaintenanceApprovalModal, |
| | | RepairOrderApprovalModal, |
| | | InspectionOrderHandle, |
| | | EquipmentLeanOutApprovalModal, |
| | | SecondMaintenanceApprovalModal, |
| | | ThirdMaintenanceApprovalModal, |
| | | OutBoundOrderHandle, |
| | | EquipmentSealUpApprovalModal, |
| | | }, |
| | | data() { |
| | | return { |
| | | description: '工使µ-æçå¾
å', |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: 'åºå·', |
| | | dataIndex: '', |
| | | key: 'rowIndex', |
| | | width: 60, |
| | | align: 'center', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | | } |
| | | }, |
| | | { |
| | | title: 'æµç¨åç±»', |
| | | align: 'center', |
| | | dataIndex: 'category_dictText' |
| | | }, |
| | | { |
| | | title: 'æµç¨åç§°', |
| | | align: 'center', |
| | | dataIndex: 'flowName', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: 'æµç¨ä¸å¡ç®è¦æè¿°', |
| | | align: 'center', |
| | | dataIndex: 'description', |
| | | width: 350, |
| | | ellipsis: true |
| | | import { getAction } from '@api/manage' |
| | | import InspectionOrderBatchHandle from './InspectionOrder/InspectionOrderBatchHandle' |
| | | import WeekMaintenanceBatchApprovalModal from './weekMaintenance/WeekMaintenanceBatchApprovalModal' |
| | | import AssignFileStreamHandle from '@views/flowable/workflow/assignFileStream/AssignFileStreamHandle.vue' |
| | | import DispatchFileHandle from '@views/flowable/workflow/dispatchFile/DispatchFileHandle.vue' |
| | | import DispatchFileBachHandleStyle from '@views/flowable/workflow/dispatchFile/DispatchFileBachHandleStyle#Drawer.vue' |
| | | import OutBoundOrderHandle from '@views/flowable/workflow/outBoundOrder/OutBoundOrderHandle.vue' |
| | | import EquipmentLeanOutApprovalModal from '@views/flowable/workflow/leanOut/EquipmentLeanOutApprovalModal.vue' |
| | | import SecondMaintenanceApprovalModal |
| | | from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue' |
| | | import ThirdMaintenanceApprovalModal from '@views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue' |
| | | import EquipmentSealUpApprovalModal from '@views/flowable/workflow/sealUp/EquipmentSealUpApprovalModal.vue' |
| | | import stocktakingBoundHandle from '@views/flowable/workflow/stocktakingBound/stocktakingBoundHandle.vue' |
| | | import lossBoundHandle from '@views/flowable/workflow/lossBound/lossBoundHandle.vue' |
| | | |
| | | }, |
| | | { |
| | | title: 'ä¸ä¸æ¥å¤ç人', |
| | | align: 'center', |
| | | dataIndex: 'preNodeAssignee_dictText', |
| | | width: 150 |
| | | }, |
| | | { |
| | | title: 'å驱èç¹', |
| | | align: 'center', |
| | | dataIndex: 'preNode', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: 'å½åèç¹', |
| | | align: 'center', |
| | | dataIndex: 'name', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: 'å½åèç¹å¼å§æ¶é´', |
| | | align: 'center', |
| | | dataIndex: 'createTime', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: 'æä½', |
| | | dataIndex: 'action', |
| | | scopedSlots: { customRender: 'action' }, |
| | | align: 'center', |
| | | width: 150, |
| | | fixed: 'right' |
| | | export default { |
| | | name: 'NcDeviceCharactersList', |
| | | mixins: [JeecgListMixin, mixinDevice], |
| | | components: { |
| | | lossBoundHandle, |
| | | stocktakingBoundHandle, |
| | | AssignFileStreamHandle, |
| | | DispatchFileHandle, |
| | | DispatchFileBachHandleStyle, |
| | | WeekMaintenanceBatchApprovalModal, |
| | | InspectionOrderBatchHandle, |
| | | JDictSelectTag, |
| | | WeekMaintenanceApprovalModal, |
| | | RepairOrderApprovalModal, |
| | | InspectionOrderHandle, |
| | | EquipmentLeanOutApprovalModal, |
| | | SecondMaintenanceApprovalModal, |
| | | ThirdMaintenanceApprovalModal, |
| | | OutBoundOrderHandle, |
| | | EquipmentSealUpApprovalModal |
| | | }, |
| | | data() { |
| | | return { |
| | | description: '工使µ-æçå¾
å', |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: 'åºå·', |
| | | dataIndex: '', |
| | | key: 'rowIndex', |
| | | width: 60, |
| | | align: 'center', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | | } |
| | | ], |
| | | url: { |
| | | list: '/assign/flow/toTaskBySelf', |
| | | isSameNode: '/assign/flow/isSameNode' |
| | | }, |
| | | dictOptions: {}, |
| | | selectShenpiData: {}, |
| | | selectDispatchFileXqData:{}, |
| | | selectInspectionOrderData: {}, |
| | | selectWeekMaintenanceData: {}, |
| | | selectSecondMaintenanceData: {}, |
| | | selectThirdMaintenanceData: {}, |
| | | selectBachData: {}, |
| | | selectRepairOrderData: {}, |
| | | selectOutBoundOrderData: {}, |
| | | //ä¸å¡ä¿¡æ¯ID |
| | | dataId: undefined |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | computed: { |
| | | importExcelUrl: function() { |
| | | return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` |
| | | { |
| | | title: 'æµç¨åç±»', |
| | | align: 'center', |
| | | dataIndex: 'category_dictText' |
| | | }, |
| | | { |
| | | title: 'æµç¨åç§°', |
| | | align: 'center', |
| | | dataIndex: 'flowName', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: 'æµç¨ä¸å¡ç®è¦æè¿°', |
| | | align: 'center', |
| | | dataIndex: 'description', |
| | | width: 350, |
| | | ellipsis: true |
| | | |
| | | }, |
| | | { |
| | | title: 'ä¸ä¸æ¥å¤ç人', |
| | | align: 'center', |
| | | dataIndex: 'preNodeAssignee_dictText', |
| | | width: 150 |
| | | }, |
| | | { |
| | | title: 'å驱èç¹', |
| | | align: 'center', |
| | | dataIndex: 'preNode', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: 'å½åèç¹', |
| | | align: 'center', |
| | | dataIndex: 'name', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: 'å½åèç¹å¼å§æ¶é´', |
| | | align: 'center', |
| | | dataIndex: 'createTime', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: 'æä½', |
| | | dataIndex: 'action', |
| | | scopedSlots: { customRender: 'action' }, |
| | | align: 'center', |
| | | width: 150, |
| | | fixed: 'right' |
| | | } |
| | | ], |
| | | url: { |
| | | list: '/assign/flow/toTaskBySelf', |
| | | isSameNode: '/assign/flow/isSameNode' |
| | | }, |
| | | getTableColumnsTotalWidth() { |
| | | return this.columns.reduce((total, item) => total + item.width, 0) |
| | | } |
| | | dictOptions: {}, |
| | | selectShenpiData: {}, |
| | | selectDispatchFileXqData: {}, |
| | | selectInspectionOrderData: {}, |
| | | selectWeekMaintenanceData: {}, |
| | | selectSecondMaintenanceData: {}, |
| | | selectThirdMaintenanceData: {}, |
| | | selectBachData: {}, |
| | | selectRepairOrderData: {}, |
| | | selectOutBoundOrderData: {}, |
| | | selectLossBoundOrderData: {}, |
| | | selectStocktakingBoundOrderData: {}, |
| | | //ä¸å¡ä¿¡æ¯ID |
| | | dataId: undefined |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | computed: { |
| | | importExcelUrl: function() { |
| | | return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` |
| | | }, |
| | | methods: { |
| | | loadData(arg) { |
| | | if (!this.url.list) { |
| | | this.$message.error('请设置url.list屿§!') |
| | | return |
| | | } |
| | | //å è½½æ°æ® è¥ä¼ å
¥åæ°1åå 载第ä¸é¡µçå
容 |
| | | if (arg === 1) { |
| | | this.ipagination.current = 1 |
| | | } |
| | | var params = this.getQueryParams()//æ¥è¯¢æ¡ä»¶ |
| | | if (!params) { |
| | | return false |
| | | } |
| | | this.loading = true |
| | | getAction(this.url.list, params).then((res) => { |
| | | if (res.success) { |
| | | // console.log(res) |
| | | //update-begin---author:zhangyafei Date:20201118 forï¼éé
ä¸åé¡µçæ°æ®å表------------ |
| | | this.dataSource = res.result.records || res.result |
| | | if (res.result.total) { |
| | | this.ipagination.total = res.result.total |
| | | } else { |
| | | this.ipagination.total = 0 |
| | | } |
| | | if (this.selectedRowKeys.length > 0) this.selectedRowKeys = this.selectionRows = [] |
| | | //update-end---author:zhangyafei Date:20201118 forï¼éé
ä¸åé¡µçæ°æ®å表------------ |
| | | getTableColumnsTotalWidth() { |
| | | return this.columns.reduce((total, item) => total + item.width, 0) |
| | | } |
| | | }, |
| | | methods: { |
| | | loadData(arg) { |
| | | if (!this.url.list) { |
| | | this.$message.error('请设置url.list屿§!') |
| | | return |
| | | } |
| | | //å è½½æ°æ® è¥ä¼ å
¥åæ°1åå 载第ä¸é¡µçå
容 |
| | | if (arg === 1) { |
| | | this.ipagination.current = 1 |
| | | } |
| | | var params = this.getQueryParams()//æ¥è¯¢æ¡ä»¶ |
| | | if (!params) { |
| | | return false |
| | | } |
| | | this.loading = true |
| | | getAction(this.url.list, params).then((res) => { |
| | | if (res.success) { |
| | | // console.log(res) |
| | | //update-begin---author:zhangyafei Date:20201118 forï¼éé
ä¸åé¡µçæ°æ®å表------------ |
| | | this.dataSource = res.result.records || res.result |
| | | if (res.result.total) { |
| | | this.ipagination.total = res.result.total |
| | | } else { |
| | | this.$message.warning(res.message) |
| | | this.ipagination.total = 0 |
| | | } |
| | | }).finally(() => { |
| | | this.loading = false |
| | | if (this.selectedRowKeys.length > 0) this.selectedRowKeys = this.selectionRows = [] |
| | | //update-end---author:zhangyafei Date:20201118 forï¼éé
ä¸åé¡µçæ°æ®å表------------ |
| | | } else { |
| | | this.$message.warning(res.message) |
| | | } |
| | | }).finally(() => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | |
| | | handelDetail(item, index) { |
| | | console.log('ç¹å»äºè¯¦æ
') |
| | | console.log('item----->', item) |
| | | console.log('index----->', index) |
| | | let processType = this.splitAprocessType(item.category) |
| | | console.log('processType--->', processType) |
| | | switch (processType) { |
| | | case 'drApproval': |
| | | this.handDrDetial(item) |
| | | break |
| | | case 'ggApproval': |
| | | this.handDispatchFileDetial(item) |
| | | break |
| | | case 'sbdjApproval': |
| | | this.handInspectionOrder(item) |
| | | break |
| | | case 'WEEK_MAINTENANCE': |
| | | this.handleWeekMaintenance(item) |
| | | break |
| | | case 'eam_repair': |
| | | this.handleRepairOrder(item) |
| | | break |
| | | case 'equipment_lean_out': |
| | | this.handleEquipmentLeanOut(item) |
| | | break |
| | | case 'second_maintenance': |
| | | this.handleSecondMaintenance(item) |
| | | break |
| | | case 'third_maintenance': |
| | | this.handleThirdMaintenance(item) |
| | | break |
| | | case 'toolOutStorageApproval': |
| | | this.handleToolOutStorageApproval(item) |
| | | break |
| | | case 'toolsStocktakingBound': |
| | | this.handleToolStocktakingApproval(item) |
| | | break |
| | | case 'toolsLossApproval': |
| | | this.handleToolLossApproval(item) |
| | | break |
| | | case 'equipment_seal_up': |
| | | this.handleEquipmentSealUp(item) |
| | | break |
| | | default: |
| | | alert('没æ¾å°è¯¥æµç¨') |
| | | } |
| | | }, |
| | | |
| | | batchHandle() { |
| | | const categorySet = new Set(this.selectionRows.map(item => item.category)) |
| | | const nameSet = new Set(this.selectionRows.map(item => item.name)) |
| | | if (categorySet.size !== 1 || nameSet.size !== 1) { |
| | | this.$notification.info({ |
| | | message: 'æ¶æ¯', |
| | | description: 'è¯·éæ©å䏿µç¨åç±»ä¸çåä¸å½åèç¹' |
| | | }) |
| | | }, |
| | | return |
| | | } |
| | | |
| | | handelDetail(item, index) { |
| | | console.log('ç¹å»äºè¯¦æ
') |
| | | console.log('item----->', item) |
| | | console.log('index----->', index) |
| | | let processType = this.splitAprocessType(item.category) |
| | | console.log('processType--->', processType) |
| | | switch (processType) { |
| | | case 'drApproval': |
| | | this.handDrDetial(item) |
| | | break |
| | | case 'ggApproval': |
| | | this.handDispatchFileDetial(item) |
| | | break |
| | | case 'sbdjApproval': |
| | | this.handInspectionOrder(item) |
| | | break |
| | | case 'WEEK_MAINTENANCE': |
| | | this.handleWeekMaintenance(item) |
| | | break |
| | | case 'eam_repair': |
| | | this.handleRepairOrder(item) |
| | | break |
| | | case 'equipment_lean_out': |
| | | this.handleEquipmentLeanOut(item) |
| | | break |
| | | case 'second_maintenance': |
| | | this.handleSecondMaintenance(item) |
| | | break |
| | | case 'third_maintenance': |
| | | this.handleThirdMaintenance(item) |
| | | break |
| | | case 'toolOutStorageApproval': |
| | | this.handleToolOutStorageApproval(item) |
| | | break |
| | | case 'equipment_seal_up': |
| | | this.handleEquipmentSealUp(item) |
| | | break |
| | | default: |
| | | alert('没æ¾å°è¯¥æµç¨') |
| | | } |
| | | }, |
| | | if (categorySet.has('eam_repair')) { |
| | | this.$notification.info({ |
| | | message: 'æ¶æ¯', |
| | | description: '设å¤ç»´ä¿®æµç¨æ æ³æ¹éå¤ç' |
| | | }) |
| | | return |
| | | } |
| | | |
| | | batchHandle() { |
| | | const categorySet = new Set(this.selectionRows.map(item => item.category)) |
| | | const nameSet = new Set(this.selectionRows.map(item => item.name)) |
| | | if (categorySet.size !== 1 || nameSet.size !== 1) { |
| | | this.$notification.info({ |
| | | message: 'æ¶æ¯', |
| | | description: 'è¯·éæ©å䏿µç¨åç±»ä¸çåä¸å½åèç¹' |
| | | }) |
| | | return |
| | | } |
| | | if (categorySet.has('sbdjApproval')) { |
| | | this.$refs.inspectionOrderBatchHandleRef.visible = true |
| | | this.$refs.inspectionOrderBatchHandleRef.title = this.selectionRows[0].name |
| | | this.$refs.inspectionOrderBatchHandleRef.getAllApproveData(this.selectionRows[0]) |
| | | this.$refs.inspectionOrderBatchHandleRef.getBasicInformation(this.selectionRows[0]) |
| | | } else if (categorySet.has('WEEK_MAINTENANCE')) { |
| | | this.$refs.weenMaintenanceBatchApprovalModalRef.handleDetail(this.selectionRows[0]) |
| | | this.$refs.weenMaintenanceBatchApprovalModalRef.title = this.selectionRows[0].name |
| | | } |
| | | }, |
| | | |
| | | if (categorySet.has('eam_repair')) { |
| | | this.$notification.info({ |
| | | message: 'æ¶æ¯', |
| | | description: '设å¤ç»´ä¿®æµç¨æ æ³æ¹éå¤ç' |
| | | }) |
| | | return |
| | | } |
| | | splitAprocessType(title) { |
| | | let parts = title.split('ï¼') // 注æåå·æ¯å
¨è§å符ï¼ä½¿ç¨å¯¹åºçåè¿è¡åå² |
| | | let result = parts[0] |
| | | return result |
| | | }, |
| | | |
| | | if (categorySet.has('sbdjApproval')) { |
| | | this.$refs.inspectionOrderBatchHandleRef.visible = true |
| | | this.$refs.inspectionOrderBatchHandleRef.title = this.selectionRows[0].name |
| | | this.$refs.inspectionOrderBatchHandleRef.getAllApproveData(this.selectionRows[0]) |
| | | this.$refs.inspectionOrderBatchHandleRef.getBasicInformation(this.selectionRows[0]) |
| | | } else if (categorySet.has('WEEK_MAINTENANCE')) { |
| | | this.$refs.weenMaintenanceBatchApprovalModalRef.handleDetail(this.selectionRows[0]) |
| | | this.$refs.weenMaintenanceBatchApprovalModalRef.title = this.selectionRows[0].name |
| | | } |
| | | }, |
| | | handDrDetial(item) { |
| | | this.selectShenpiData = item |
| | | this.$refs.modalFormApproval.clearTableSource() |
| | | this.$refs.modalFormApproval.getAllApproveData(item) |
| | | }, |
| | | |
| | | splitAprocessType(title) { |
| | | let parts = title.split('ï¼') // 注æåå·æ¯å
¨è§å符ï¼ä½¿ç¨å¯¹åºçåè¿è¡åå² |
| | | let result = parts[0] |
| | | return result |
| | | }, |
| | | handDispatchFileDetial(item) { |
| | | console.log('item----->', item) |
| | | this.selectDispatchFileXqData = item |
| | | this.$refs.modalFormDispatchFileXq.clearTableSource() |
| | | this.$refs.modalFormDispatchFileXq.getAllApproveData(item) |
| | | }, |
| | | |
| | | handDrDetial(item) { |
| | | this.selectShenpiData = item |
| | | this.$refs.modalFormApproval.clearTableSource() |
| | | this.$refs.modalFormApproval.getAllApproveData(item) |
| | | }, |
| | | handInspectionOrder(record) { |
| | | console.log('record----->', record) |
| | | this.selectInspectionOrderData = Object.assign({}, record) |
| | | this.$refs.modalFormInspectionOrder.visible = true |
| | | this.$refs.modalFormInspectionOrder.title = record.name |
| | | this.$refs.modalFormInspectionOrder.getAllApproveData(record) |
| | | this.$refs.modalFormInspectionOrder.getBasicInformation(record) |
| | | }, |
| | | |
| | | handDispatchFileDetial(item){ |
| | | console.log('item----->', item) |
| | | this.selectDispatchFileXqData = item |
| | | this.$refs.modalFormDispatchFileXq.clearTableSource() |
| | | this.$refs.modalFormDispatchFileXq.getAllApproveData(item) |
| | | }, |
| | | handleWeekMaintenance(item) { |
| | | if (item && item.dataId) { |
| | | this.selectWeekMaintenanceData = Object.assign({}, item) |
| | | this.$refs.weekMaintenanceApprovalModal.handleDetail(item) |
| | | this.$refs.weekMaintenanceApprovalModal.title = item.name |
| | | this.$refs.weekMaintenanceApprovalModal.disableSubmit = false |
| | | } |
| | | }, |
| | | |
| | | handInspectionOrder(record) { |
| | | console.log('record----->', record) |
| | | this.selectInspectionOrderData = Object.assign({}, record) |
| | | this.$refs.modalFormInspectionOrder.visible = true |
| | | this.$refs.modalFormInspectionOrder.title = record.name |
| | | this.$refs.modalFormInspectionOrder.getAllApproveData(record) |
| | | this.$refs.modalFormInspectionOrder.getBasicInformation(record) |
| | | }, |
| | | /** |
| | | * ç¹å»è®¾å¤ç»´ä¿®åç±»æµç¨è¯¦æ
æ¶è§¦å |
| | | * @param record |
| | | */ |
| | | handleRepairOrder(record) { |
| | | this.selectRepairOrderData = Object.assign({}, record) |
| | | this.$refs.repairOrderApprovalModal.visible = true |
| | | this.$refs.repairOrderApprovalModal.title = record.name |
| | | this.$refs.repairOrderApprovalModal.getAllApproveData(record) |
| | | this.$refs.repairOrderApprovalModal.getBasicInformation(record) |
| | | }, |
| | | handleEquipmentLeanOut(item) { |
| | | this.$refs.equipmentLeanOutApprovalModelRef.visible = true |
| | | this.$refs.equipmentLeanOutApprovalModelRef.title = item.name |
| | | this.$refs.equipmentLeanOutApprovalModelRef.handleDetail(item) |
| | | this.$refs.equipmentLeanOutApprovalModelRef.disableSubmit = false |
| | | }, |
| | | handleSecondMaintenance(item) { |
| | | if (item && item.dataId) { |
| | | this.selectSecondMaintenanceData = Object.assign({}, item) |
| | | this.$refs.secondMaintenanceApprovalModal.handleDetail(item) |
| | | this.$refs.secondMaintenanceApprovalModal.title = item.name |
| | | this.$refs.secondMaintenanceApprovalModal.disableSubmit = false |
| | | } |
| | | }, |
| | | handleThirdMaintenance(item) { |
| | | if (item && item.dataId) { |
| | | this.selectThirdMaintenanceData = Object.assign({}, item) |
| | | this.$refs.thirdMaintenanceApprovalModal.handleDetail(item) |
| | | this.$refs.thirdMaintenanceApprovalModal.title = item.name |
| | | this.$refs.thirdMaintenanceApprovalModal.disableSubmit = false |
| | | } |
| | | }, |
| | | handleToolOutStorageApproval(item) { |
| | | if (item && item.dataId) { |
| | | this.selectOutBoundOrderData = Object.assign({}, item) |
| | | this.$refs.outBoundOrderHandle.auditVisible = true |
| | | this.$refs.outBoundOrderHandle.clearTableSource() |
| | | this.$refs.outBoundOrderHandle.getAllApproveData(item) |
| | | } |
| | | }, |
| | | handleToolStocktakingApproval(item) { |
| | | if (item && item.dataId) { |
| | | this.selectStocktakingBoundOrderData = Object.assign({}, item) |
| | | this.$refs.stocktakingBoundHandle.auditVisible = true |
| | | this.$refs.stocktakingBoundHandle.clearTableSource() |
| | | this.$refs.stocktakingBoundHandle.getAllApproveData(item) |
| | | } |
| | | }, |
| | | handleToolLossApproval(item) { |
| | | if (item && item.dataId) { |
| | | this.selectLossBoundOrderData = Object.assign({}, item) |
| | | this.$refs.lossBoundHandle.auditVisible = true |
| | | this.$refs.lossBoundHandle.clearTableSource() |
| | | this.$refs.lossBoundHandle.getAllApproveData(item) |
| | | } |
| | | }, |
| | | |
| | | |
| | | handleWeekMaintenance(item) { |
| | | if (item && item.dataId) { |
| | | this.selectWeekMaintenanceData = Object.assign({}, item) |
| | | this.$refs.weekMaintenanceApprovalModal.handleDetail(item) |
| | | this.$refs.weekMaintenanceApprovalModal.title = item.name |
| | | this.$refs.weekMaintenanceApprovalModal.disableSubmit = false |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * ç¹å»è®¾å¤ç»´ä¿®åç±»æµç¨è¯¦æ
æ¶è§¦å |
| | | * @param record |
| | | */ |
| | | handleRepairOrder(record) { |
| | | this.selectRepairOrderData = Object.assign({}, record) |
| | | this.$refs.repairOrderApprovalModal.visible = true |
| | | this.$refs.repairOrderApprovalModal.title = record.name |
| | | this.$refs.repairOrderApprovalModal.getAllApproveData(record) |
| | | this.$refs.repairOrderApprovalModal.getBasicInformation(record) |
| | | }, |
| | | handleEquipmentLeanOut(item) { |
| | | this.$refs.equipmentLeanOutApprovalModelRef.visible = true |
| | | this.$refs.equipmentLeanOutApprovalModelRef.title = item.name |
| | | this.$refs.equipmentLeanOutApprovalModelRef.handleDetail(item) |
| | | this.$refs.equipmentLeanOutApprovalModelRef.disableSubmit = false |
| | | }, |
| | | handleSecondMaintenance(item) { |
| | | if (item && item.dataId) { |
| | | this.selectSecondMaintenanceData = Object.assign({}, item) |
| | | this.$refs.secondMaintenanceApprovalModal.handleDetail(item) |
| | | this.$refs.secondMaintenanceApprovalModal.title = item.name |
| | | this.$refs.secondMaintenanceApprovalModal.disableSubmit = false |
| | | } |
| | | }, |
| | | handleThirdMaintenance(item) { |
| | | if (item && item.dataId) { |
| | | this.selectThirdMaintenanceData = Object.assign({}, item) |
| | | this.$refs.thirdMaintenanceApprovalModal.handleDetail(item) |
| | | this.$refs.thirdMaintenanceApprovalModal.title = item.name |
| | | this.$refs.thirdMaintenanceApprovalModal.disableSubmit = false |
| | | } |
| | | }, |
| | | handleToolOutStorageApproval(item) { |
| | | if (item && item.dataId) { |
| | | this.selectOutBoundOrderData = Object.assign({}, item) |
| | | this.$refs.outBoundOrderHandle.auditVisible = true |
| | | this.$refs.outBoundOrderHandle.clearTableSource() |
| | | this.$refs.outBoundOrderHandle.getAllApproveData(item) |
| | | } |
| | | }, |
| | | handleEquipmentSealUp(item) { |
| | | this.$refs.equipmentSealUpApprovalModelRef.visible = true |
| | | this.$refs.equipmentSealUpApprovalModelRef.title = item.name |
| | | this.$refs.equipmentSealUpApprovalModelRef.handleDetail(item) |
| | | this.$refs.equipmentSealUpApprovalModelRef.disableSubmit = false |
| | | }, |
| | | handleEquipmentSealUp(item) { |
| | | this.$refs.equipmentSealUpApprovalModelRef.visible = true |
| | | this.$refs.equipmentSealUpApprovalModelRef.title = item.name |
| | | this.$refs.equipmentSealUpApprovalModelRef.handleDetail(item) |
| | | this.$refs.equipmentSealUpApprovalModelRef.disableSubmit = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | @import '~@assets/less/common.less'; |
| | | @import '~@assets/less/common.less'; |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | :title="title" |
| | | :width="width" |
| | | :visible="visible" |
| | | :footer="null" |
| | | @cancel="handCancel" |
| | | > |
| | | <a-card :bordered="false"> |
| | | <div> |
| | | <b>{{ selectShenpiData.description }}</b> |
| | | <br> |
| | | <br> |
| | | <a-tag color="blue"> |
| | | å¤ç人 {{ selectShenpiData.assignee_dictText }} |
| | | </a-tag> |
| | | <a-tag color="blue"> |
| | | å建æ¶é´ {{ selectShenpiData.createTime }} |
| | | </a-tag> |
| | | <br> |
| | | <br> |
| | | <button @click="fetchAndShowBmp" class="btn-custom">æå¼æµç¨å¾</button> |
| | | <div v-if="imageSrc"> |
| | | <img :src="imageSrc" alt="Fetched Image" /> |
| | | </div> |
| | | <hr class="shallow-hr"> |
| | | </div> |
| | | <div> |
| | | <b>æ¥æè¯¦æ
</b> |
| | | <br> |
| | | <a-form :form="form"> |
| | | <a-spin :spinning="spinning"> |
| | | <a-tabs default-active-key="1" @change="callback"> |
| | | <a-tab-pane key="1" tab="æ¥æåºæ¬ä¿¡æ¯"> |
| | | <a-form-model ref="form" :model="tableRowRecord"> |
| | | <a-row> |
| | | <a-col :span="span"> |
| | | <a-form-model-item label="æ¥æååå·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="outNum"> |
| | | <a-input :disabled="coldisabled" v-model="tableRowRecord.orderCode"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="span"> |
| | | <a-form-model-item label="æ¥æäºº" :labelCol="labelCol" :wrapperCol="wrapperCol" |
| | | prop="outStorehouseType"> |
| | | <j-dict-select-tag :disabled="coldisabled" |
| | | v-model="tableRowRecord.losser" dictCode="sys_user,realname,id" |
| | | placeholder="è¯·éæ©" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row> |
| | | <a-col :span="span"> |
| | | <a-form-model-item label="æ¥ææ¶é´" :labelCol="labelCol" :wrapperCol="wrapperCol" |
| | | prop="outboundTime"> |
| | | <j-date :disabled="coldisabled" v-model="tableRowRecord.lossTime" :show-time="true" |
| | | dateFormat="YYYY-MM-DD HH:mm" style="width: 100%" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="span"> |
| | | <a-form-model-item label="æ¥æåå " :labelCol="labelCol" :wrapperCol="wrapperCol" |
| | | prop="subjectMatter"> |
| | | <a-input :disabled="coldisabled" v-model="tableRowRecord.lossReason"></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="handler"> |
| | | <j-dict-select-tag :disabled="coldisabled" |
| | | v-model="tableRowRecord.handler" dictCode="sys_user,realname,id" |
| | | placeholder="è¯·éæ©" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="span"> |
| | | <a-form-model-item label="夿³¨" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark"> |
| | | <a-textarea :disabled="coldisabled" v-model="tableRowRecord.remark" rows="4" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form-model> |
| | | </a-tab-pane> |
| | | <a-tab-pane key="2" tab="æ¥ææç»ä¿¡æ¯"> |
| | | <a-table |
| | | ref="table" |
| | | size="middle" |
| | | bordered |
| | | rowKey="id" |
| | | :scroll="{x:'max-content'}" |
| | | :columns="columns" |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | :rowSelection="null"> |
| | | </a-table> |
| | | </a-tab-pane> |
| | | <a-tab-pane key="3" tab="æµç¨èç¹"> |
| | | <a-timeline> |
| | | <a-timeline-item v-for="(item,index) in hitaskDataSource" :key="index"> |
| | | <div> |
| | | <h3 style="font-weight: bold;">{{ item.taskName }}</h3> |
| | | <div>å¤ç人ï¼{{ item.assignee_dictText }}</div> |
| | | <div v-if="index !==0">å¤çæ¶é¿ï¼{{ item.duration }}</div> |
| | | <div v-if="item.name !== 'æäº¤ç³è¯·'">å¤çç±»åï¼{{ item.sequenceFlowName }}</div> |
| | | <div v-if="item.description">å¤çæè§ï¼{{ item.description }}</div> |
| | | </div> |
| | | </a-timeline-item> |
| | | </a-timeline> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-spin> |
| | | </a-form> |
| | | </div> |
| | | <div v-if="auditVisible"> |
| | | <hr class="shallow-hr"> |
| | | <br> |
| | | <b>审æ¹è¯¦æ
</b> |
| | | <br> |
| | | <a-form-model ref="form" :model="approveData" :rules="validatorRules" slot="detail"> |
| | | <a-row> |
| | | <a-col ::span="span"> |
| | | <a-form-model-item label="ç³è¯·äºº" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="handler_dictText"> |
| | | <a-input :disabled="coldisabled" v-model="tableRowRecord.handler_dictText"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col ::span="span"> |
| | | <a-form-model-item label="ç³è¯·æ¶é´" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="createTime"> |
| | | <a-input :disabled="coldisabled" v-model="tableRowRecord.createTime"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24" class="btxx"> |
| | | <a-form-item label="审æ¹ç¶æ" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <a-select v-model="assignFileStream.status" placeholder="è¯·éæ©å®¡æ¹ç»æ"> |
| | | <a-select-option value="3">éè¿</a-select-option> |
| | | <a-select-option value="4">驳å</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :span="24" class="btxx"> |
| | | <a-form-model-item label="å®¡æ¹æè§" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <a-textarea v-model="assignFileStream.approvalOpinion" rows="4" placeholder="请è¾å
¥å®¡æ¹æè§" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <div class="table-operator" style="text-align: right;"> |
| | | <a-button @click="handleQueXiaoTask" type="primary" icon="close">åæ¶</a-button> |
| | | <a-button @click="submitForm">æ 交</a-button> |
| | | </div> |
| | | </a-form-model> |
| | | </div> |
| | | </a-card> |
| | | |
| | | |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import '@assets/less/TableExpand.less' |
| | | import { mixinDevice } from '@/utils/mixin' |
| | | import { downFile, getAction, httpAction } from '@api/manage' |
| | | |
| | | export default { |
| | | name: 'lossBoundHandle', |
| | | mixins: [mixinDevice], |
| | | props: { |
| | | selectShenpiData: { |
| | | type: Object, |
| | | required: true |
| | | } |
| | | }, |
| | | |
| | | data() { |
| | | return { |
| | | form: this.$form.createForm(this), |
| | | span: 12, |
| | | span1: 8, |
| | | coldisabled: true, |
| | | spinning: false, |
| | | tableRowRecord: {}, |
| | | assignFileStream: {}, |
| | | tableDataSource: [], |
| | | usageDataSource: [], |
| | | hitaskDataSource: [], |
| | | dataSource: [], |
| | | bomForm: {}, |
| | | imageSrc: null, |
| | | drawerVisible: true, |
| | | auditVisible: true, |
| | | loading: false, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 30 }, |
| | | sm: { span: 16 } |
| | | }, |
| | | /* å页忰 */ |
| | | ipagination: { |
| | | current: 1, |
| | | pageSize: 5, |
| | | pageSizeOptions: ['5', '10', '50'], |
| | | showTotal: (total, range) => { |
| | | return range[0] + '-' + range[1] + ' å
±' + total + 'æ¡' |
| | | }, |
| | | showQuickJumper: true, |
| | | showSizeChanger: true, |
| | | total: 0 |
| | | }, |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key: 'rowIndex', |
| | | width: 60, |
| | | align: 'center', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | | } |
| | | }, |
| | | { |
| | | title: 'åå
·ç¼å·', |
| | | align: 'center', |
| | | dataIndex: 'toolCode' |
| | | }, |
| | | { |
| | | title: 'å·¥å
፱Ȍ', |
| | | align: 'center', |
| | | dataIndex: 'applicationType_dictText' |
| | | }, |
| | | { |
| | | title: 'æ¥æåå ', |
| | | align: 'center', |
| | | dataIndex: 'lossReason' |
| | | }, |
| | | { |
| | | title: 'æ¥ææ°é', |
| | | align: 'center', |
| | | dataIndex: 'lossNumber' |
| | | }, |
| | | { |
| | | title: '䏿åç§°', |
| | | align: 'center', |
| | | dataIndex: 'chineseName' |
| | | }, |
| | | { |
| | | title: 'åå·/å¾å·', |
| | | align: 'center', |
| | | dataIndex: 'toolModel' |
| | | }, |
| | | { |
| | | title: 'åå
·ææ', |
| | | align: 'center', |
| | | dataIndex: 'toolMaterial' |
| | | }, |
| | | { |
| | | title: 'é¶ä»¶ææ', |
| | | align: 'center', |
| | | dataIndex: 'partMaterial' |
| | | }, |
| | | { |
| | | title: 'åå®¶', |
| | | align: 'center', |
| | | dataIndex: 'supplierId' |
| | | }, |
| | | { |
| | | title: 'åå¨ä½ç½®(åºä½å·)', |
| | | align: 'center', |
| | | dataIndex: 'positionCode' |
| | | }, |
| | | |
| | | { |
| | | title: 'å建æ¶é´', |
| | | align: 'center', |
| | | dataIndex: 'createTime' |
| | | }, |
| | | { |
| | | title: '夿³¨', |
| | | align: 'center', |
| | | dataIndex: 'remark' |
| | | } |
| | | ], |
| | | validatorRules: { |
| | | status: { |
| | | rules: [ |
| | | { required: true, message: 'è¯·éæ©å®¡æ¹ç¶æ!' } |
| | | ] |
| | | } |
| | | }, |
| | | approveData: {}, |
| | | flowData: {}, |
| | | title: '审æ¹é¡µé¢', |
| | | width: 1200, |
| | | visible: false, |
| | | // 表头 |
| | | url: { |
| | | queryOutBoundOrder: '/tms/toolsLossBound/queryById', |
| | | queryOutBoundDetailList: '/tms/toolsLossBound/listlossboundDetailByMainId', |
| | | diagramView: '/assign/flow/diagramView', |
| | | queryHisTaskList: '/assign/flow/queryHisTaskList', |
| | | approve: '/tms/outboundOrder/approval' |
| | | }, |
| | | dictOptions: {}, |
| | | superFieldList: [], |
| | | workflowSource: [] |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | computed: {}, |
| | | methods: { |
| | | callback() { |
| | | }, |
| | | handCancel() { |
| | | this.visible = false |
| | | }, |
| | | clearTableSource() { |
| | | this.tableDataSource = [] |
| | | this.usageDataSource = [] |
| | | }, |
| | | fetchAndShowBmp() { |
| | | console.log('flowData----->', this.flowData) |
| | | try { |
| | | let parm = { |
| | | processDefinitionId: this.flowData.processDefinitionId, |
| | | processInstanceId: this.flowData.processInstanceId, |
| | | TaskDefinitionKey: this.flowData.processDefinitionKey |
| | | } |
| | | downFile(this.url.diagramView, parm, 'get').then((res => { |
| | | console.log('Pica------>', res) |
| | | const urlObject = window.URL.createObjectURL(new Blob([res])) |
| | | this.imageSrc = urlObject |
| | | })) |
| | | } catch (error) { |
| | | console.error('Error fetching image blob:', error) |
| | | alert('æ æ³å è½½å¾çï¼è¯·ç¨ååè¯ã') |
| | | } |
| | | }, |
| | | handleQueXiaoTask() { |
| | | this.visible = false |
| | | this.routeReload() |
| | | }, |
| | | submitForm() { |
| | | const that = this |
| | | if (!that.assignFileStream.status == null || that.assignFileStream.status === undefined) { |
| | | this.$message.warning('è¯·éæ©å®¡æ¹ç¶æï¼') |
| | | return false |
| | | } |
| | | if (!that.assignFileStream.approvalOpinion == null || that.assignFileStream.approvalOpinion === undefined) { |
| | | this.$message.warning('请è¾å
¥å®¡æ¹æè§ï¼') |
| | | return false |
| | | } |
| | | // 触å表åéªè¯ |
| | | this.form.validateFields((err, values) => { |
| | | if (!err) { |
| | | that.confirmLoading = true |
| | | let url = this.url.approve |
| | | let method = 'post' |
| | | let flowTaskVo = {} |
| | | flowTaskVo.status = that.assignFileStream.status |
| | | flowTaskVo.approvalOpinion = that.assignFileStream.approvalOpinion |
| | | flowTaskVo.comment = that.assignFileStream.approvalOpinion |
| | | flowTaskVo.dataId = this.selectShenpiData.dataId |
| | | flowTaskVo.taskId = this.selectShenpiData.id |
| | | flowTaskVo.userId = this.selectShenpiData.assignee |
| | | flowTaskVo.instanceId = this.selectShenpiData.procInstId |
| | | flowTaskVo.targetKey = this.selectShenpiData.taskDefKey |
| | | flowTaskVo.values = this.selectShenpiData.variables |
| | | flowTaskVo.assignee = this.selectShenpiData.assignee |
| | | console.log('表åæäº¤æ°æ®', flowTaskVo) |
| | | httpAction(url, flowTaskVo, method).then((res) => { |
| | | if (res.success) { |
| | | that.$message.success(res.message) |
| | | that.visible = false |
| | | //å·æ°è¡¨æ ¼ |
| | | that.$emit('searchReset') |
| | | } else { |
| | | that.$message.warning(res.message) |
| | | } |
| | | }).finally(() => { |
| | | that.confirmLoading = false |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | getAllApproveData(item) { |
| | | this.visible = true |
| | | this.loading = true |
| | | console.log('selectShenpiData----->', this.selectShenpiData) |
| | | this.flowData = item |
| | | getAction(this.url.queryHisTaskList, { procInstId: item.procInstId }).then(res => { |
| | | if (res.success) { |
| | | this.hitaskDataSource = res.result |
| | | } |
| | | }) |
| | | getAction(this.url.queryOutBoundOrder, { id: item.dataId }).then((res => { |
| | | if (res.success) { |
| | | this.tableRowRecord = res.result |
| | | } |
| | | })) |
| | | getAction(this.url.queryOutBoundDetailList, { lossBoundId: item.dataId }).then(res => { |
| | | if (res.success) { |
| | | this.dataSource = res.result.records |
| | | 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 |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-card :bordered="false" :class="'cust-erp-sub-tab'"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | |
| | | <!-- </div>--> |
| | | <!-- æ¥è¯¢åºå-END --> |
| | | |
| | | <!-- æä½æé®åºå --> |
| | | <div class="table-operator" v-if="mainId"> |
| | | |
| | | </div> |
| | | |
| | | <!-- tableåºå-begin --> |
| | | <div> |
| | | |
| | | |
| | | <a-table |
| | | ref="table" |
| | | size="middle" |
| | | bordered |
| | | rowKey="id" |
| | | :scroll="{x:true}" |
| | | :columns="columns" |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | :rowSelection="null" |
| | | @change="handleTableChange"> |
| | | |
| | | </a-table> |
| | | </div> |
| | | |
| | | <!-- <lossboundDetail-modal ref="modalForm" @ok="modalFormOk" :mainId="mainId"></lossboundDetail-modal>--> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import LossboundDetailModal from './modules/LossboundDetailModal' |
| | | |
| | | export default { |
| | | name: 'LossboundDetailList', |
| | | mixins: [JeecgListMixin], |
| | | components: { LossboundDetailModal }, |
| | | props: { |
| | | mainId: { |
| | | type: String, |
| | | default: '', |
| | | required: false |
| | | } |
| | | }, |
| | | watch: { |
| | | mainId: { |
| | | immediate: true, |
| | | handler(val) { |
| | | if (!this.mainId) { |
| | | this.clearList() |
| | | } else { |
| | | this.queryParam['lossBoundId'] = val |
| | | this.loadData(1) |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | description: 'æ¥æç®¡ç页é¢', |
| | | disableMixinCreated: true, |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key: 'rowIndex', |
| | | width: 60, |
| | | align: 'center', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | | } |
| | | }, |
| | | { |
| | | title: 'åå
·ç¼å·', |
| | | align: 'center', |
| | | dataIndex: 'toolCode' |
| | | }, |
| | | { |
| | | title: 'å·¥å
፱Ȍ', |
| | | align: 'center', |
| | | dataIndex: 'applicationType_dictText' |
| | | }, |
| | | { |
| | | title: 'æ¥æåå ', |
| | | align: 'center', |
| | | dataIndex: 'lossReason' |
| | | }, |
| | | { |
| | | title: 'æ¥ææ°é', |
| | | align: 'center', |
| | | dataIndex: 'lossNumber' |
| | | }, |
| | | { |
| | | title: '䏿åç§°', |
| | | align: 'center', |
| | | dataIndex: 'chineseName' |
| | | }, |
| | | { |
| | | title: 'åå·/å¾å·', |
| | | align: 'center', |
| | | dataIndex: 'toolModel' |
| | | }, |
| | | { |
| | | title: 'åå
·ææ', |
| | | align: 'center', |
| | | dataIndex: 'toolMaterial' |
| | | }, |
| | | { |
| | | title: 'é¶ä»¶ææ', |
| | | align: 'center', |
| | | dataIndex: 'partMaterial' |
| | | }, |
| | | { |
| | | title: 'åå®¶', |
| | | align: 'center', |
| | | dataIndex: 'supplierId' |
| | | }, |
| | | { |
| | | title: 'åå¨ä½ç½®(åºä½å·)', |
| | | align: 'center', |
| | | dataIndex: 'positionCode' |
| | | }, |
| | | |
| | | { |
| | | title: 'å建æ¶é´', |
| | | align: 'center', |
| | | dataIndex: 'createTime' |
| | | }, |
| | | { |
| | | title: '夿³¨', |
| | | align: 'center', |
| | | dataIndex: 'remark' |
| | | } |
| | | // { |
| | | // title: 'æä½', |
| | | // dataIndex: 'action', |
| | | // align:"center", |
| | | // fixed:"right", |
| | | // width:147, |
| | | // scopedSlots: { customRender: 'action' }, |
| | | // } |
| | | ], |
| | | url: { |
| | | list: '/tms/toolsLossBound/listlossboundDetailByMainId', |
| | | delete: '/tms/toolsLossBound/deleteLootboundDetail', |
| | | deleteBatch: '/tms/toolsLossBound/deleteBatchLossboundDetail', |
| | | exportXlsUrl: '/tms/toolsLossBound/exportLossboundDetail', |
| | | importUrl: '/tms/toolsLossBound/importLossboundDetail' |
| | | }, |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | computed: { |
| | | importExcelUrl() { |
| | | return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}` |
| | | } |
| | | }, |
| | | methods: { |
| | | clearList() { |
| | | this.dataSource = [] |
| | | this.selectedRowKeys = [] |
| | | this.ipagination.current = 1 |
| | | } |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | @import '~@assets/less/common.less'; |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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.orderCode"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="å®¡æ ¸ç¶æ"> |
| | | <j-dict-select-tag placeholder="è¯·éæ©å®¡æ ¸ç¶æ" v-model="queryParam.orderStatus" |
| | | dictCode="approval_status"/> |
| | | </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> |
| | | <a @click="handleToggleSearch" style="margin-left: 8px"> |
| | | {{ toggleSearchStatus ? 'æ¶èµ·' : 'å±å¼' }} |
| | | <a-icon :type="toggleSearchStatus ? 'up' : 'down'" /> |
| | | </a> |
| | | </span> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | <!-- æ¥è¯¢åºå-END --> |
| | | |
| | | <!-- æä½æé®åºå --> |
| | | <div class="table-operator"> |
| | | <a-button @click="handleAdd" type="primary" icon="plus">æ°å¢</a-button> |
| | | |
| | | </div> |
| | | |
| | | <!-- tableåºå-begin --> |
| | | <div> |
| | | |
| | | |
| | | <a-table |
| | | ref="table" |
| | | size="middle" |
| | | bordered |
| | | rowKey="id" |
| | | class="j-table-force-nowrap" |
| | | :scroll="{x:true}" |
| | | :columns="columns" |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type:'radio'}" |
| | | :customRow="clickThenSelect" |
| | | @change="handleTableChange"> |
| | | |
| | | <span slot="action" slot-scope="text, record"> |
| | | <a @click="handleDetail(record)">详æ
</a> |
| | | <span v-if="record.orderStatus === '1'"> |
| | | <a-divider type="vertical" /> |
| | | <a-popconfirm title="ç¡®å®æäº¤å?" @confirm="() => handleSubmit(record)"> |
| | | <a>æäº¤</a> |
| | | </a-popconfirm> |
| | | <a-divider type="vertical" /> |
| | | <a-dropdown> |
| | | <a class="ant-dropdown-link">æ´å¤<a-icon type="down" /></a> |
| | | <a-menu slot="overlay"> |
| | | <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> |
| | | </span> |
| | | |
| | | </a-table> |
| | | </div> |
| | | |
| | | <a-tabs defaultActiveKey="1"> |
| | | <a-tab-pane tab="æ¥æç³è¯·åæç»" key="1"> |
| | | <LossboundDetailList ref="lossboundDetailList" :mainId="lossboundDetailMainId" /> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | |
| | | <lossbound-modal ref="modalForm" @ok="modalFormOk"></lossbound-modal> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import LossboundModal from './modules/LossboundModal' |
| | | import { deleteAction, getAction } from '@/api/manage' |
| | | import LossboundDetailList from './LossboundDetailList.vue' |
| | | import '@/assets/less/TableExpand.less' |
| | | |
| | | export default { |
| | | name: 'LooboundList', |
| | | mixins: [JeecgListMixin], |
| | | components: { |
| | | LossboundDetailList, |
| | | LossboundModal |
| | | }, |
| | | data() { |
| | | return { |
| | | description: 'tms_outbound_order管ç页é¢', |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: 'æ¥æååå·', |
| | | align: 'center', |
| | | dataIndex: 'orderCode' |
| | | }, |
| | | { |
| | | title: 'å®¡æ ¸ç¶æ', |
| | | align: 'center', |
| | | dataIndex: 'orderStatus_dictText' |
| | | }, |
| | | { |
| | | title: 'ç»æäºº', |
| | | align: 'center', |
| | | dataIndex: 'handler_dictText' |
| | | }, |
| | | { |
| | | title: 'å®¡æ ¸äºº', |
| | | align: 'center', |
| | | dataIndex: 'reviewer_dictText' |
| | | }, |
| | | { |
| | | title: 'å®¡æ ¸æ¶é´', |
| | | align: 'center', |
| | | dataIndex: 'auditDate' |
| | | }, |
| | | { |
| | | title: 'å®¡æ ¸æè§', |
| | | align: 'center', |
| | | dataIndex: 'approvalOpinion' |
| | | }, |
| | | { |
| | | title: '夿³¨', |
| | | align: 'center', |
| | | dataIndex: 'remark' |
| | | }, |
| | | { |
| | | title: 'æä½', |
| | | dataIndex: 'action', |
| | | align: 'center', |
| | | fixed: 'right', |
| | | width: 147, |
| | | scopedSlots: { customRender: 'action' } |
| | | } |
| | | ], |
| | | url: { |
| | | list: '/tms/toolsLossBound/list', |
| | | delete: '/tms/toolsLossBound/delete', |
| | | submit: '/tms/toolsLossBound/submit', |
| | | deleteBatch: '/tms/toolsLossBound/deleteBatch', |
| | | exportXlsUrl: '/tms/toolsLossBound/exportXls', |
| | | importExcelUrl: 'tms/toolsLossBound/importExcel' |
| | | }, |
| | | /* å页忰 */ |
| | | ipagination: { |
| | | current: 1, |
| | | pageSize: 5, |
| | | pageSizeOptions: ['5', '10', '50'], |
| | | showTotal: (total, range) => { |
| | | return range[0] + '-' + range[1] + ' å
±' + total + 'æ¡' |
| | | }, |
| | | showQuickJumper: true, |
| | | showSizeChanger: true, |
| | | total: 0 |
| | | }, |
| | | selectedMainId: '', |
| | | superFieldList: [], |
| | | lossboundDetailMainId: '' |
| | | } |
| | | }, |
| | | created() { |
| | | this.getSuperFieldList() |
| | | }, |
| | | computed: { |
| | | importExcelUrl: function() { |
| | | return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` |
| | | } |
| | | }, |
| | | methods: { |
| | | modalFormOk() { |
| | | this.$refs.lossboundDetailList.clearList() |
| | | this.loadData() |
| | | }, |
| | | searchReset() { |
| | | this.queryParam = {} |
| | | this.onClearSelected() |
| | | this.$refs.lossboundDetailList.clearList() |
| | | this.loadData(1) |
| | | }, |
| | | initDictConfig() { |
| | | }, |
| | | clickThenSelect(record) { |
| | | return { |
| | | on: { |
| | | click: () => { |
| | | this.onSelectChange(record.id.split(','), [record]) |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | onClearSelected() { |
| | | this.selectedRowKeys = [] |
| | | this.selectionRows = [] |
| | | this.selectedMainId = '' |
| | | this.lossboundDetailMainId = '' |
| | | }, |
| | | onSelectChange(selectedRowKeys, selectionRows) { |
| | | this.selectedMainId = selectedRowKeys[0] |
| | | this.selectedRowKeys = selectedRowKeys |
| | | this.selectionRows = selectionRows |
| | | this.lossboundDetailMainId = selectionRows[0]['id'] |
| | | }, |
| | | handleSubmit(record) { |
| | | getAction(this.url.submit, { id: record.id }).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success(res.message) |
| | | this.loadData() |
| | | this.$refs.lossboundDetailList.clearList() |
| | | } else { |
| | | this.$message.warning(res.message) |
| | | } |
| | | }) |
| | | }, |
| | | 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.$notification.success({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | that.loadData() |
| | | this.$refs.lossboundDetailList.clearList() |
| | | } else { |
| | | // that.$message.warning(res.message); |
| | | that.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | loadData(arg) { |
| | | if (!this.url.list) { |
| | | this.$message.error('请设置url.list屿§!') |
| | | return |
| | | } |
| | | //å è½½æ°æ® è¥ä¼ å
¥åæ°1åå 载第ä¸é¡µçå
容 |
| | | if (arg === 1) { |
| | | this.ipagination.current = 1 |
| | | } |
| | | this.onClearSelected() |
| | | var params = this.getQueryParams()//æ¥è¯¢æ¡ä»¶ |
| | | this.loading = true |
| | | getAction(this.url.list, params).then((res) => { |
| | | if (res.success) { |
| | | this.dataSource = res.result.records |
| | | this.ipagination.total = res.result.total |
| | | } |
| | | if (res.code === 510) { |
| | | this.$message.warning(res.message) |
| | | } |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | getSuperFieldList() { |
| | | let fieldList = [] |
| | | fieldList.push({ type: 'string', value: 'orderCode', text: 'åºåºåç¼å·', dictCode: '' }) |
| | | |
| | | fieldList.push({ type: 'string', value: 'handler', text: 'ç»æäºº', dictCode: '' }) |
| | | fieldList.push({ type: 'sel_user', value: 'reviewer', text: 'å®¡æ ¸äºº' }) |
| | | fieldList.push({ type: 'string', value: 'orderStatus', text: 'å®¡æ ¸ç¶æ', dictCode: '' }) |
| | | fieldList.push({ type: 'date', value: 'auditDate', text: 'å®¡æ ¸æ¶é´' }) |
| | | fieldList.push({ type: 'string', value: 'approvalOpinion', text: 'å®¡æ ¸æè§', dictCode: '' }) |
| | | fieldList.push({ type: 'string', value: 'subjectMatter', text: 'é¢ç¨äºç±', dictCode: '' }) |
| | | fieldList.push({ type: 'date', value: 'outboundTime', text: 'åºåºæ¶é´' }) |
| | | fieldList.push({ type: 'string', value: 'remark', text: '夿³¨', dictCode: '' }) |
| | | fieldList.push({ type: 'string', value: 'createBy', text: 'æä½å', dictCode: '' }) |
| | | fieldList.push({ type: 'date', value: 'createTime', text: 'å建æ¶é´' }) |
| | | this.superFieldList = fieldList |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | @import '~@assets/less/common.less'; |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <!--æ¯æå
¨å±ç¼©æ¾--> |
| | | <j-modal |
| | | :visible="visible" |
| | | :width="1200" |
| | | :title="title" |
| | | switchFullscreen |
| | | @ok="handleSubmit" |
| | | @cancel="close" |
| | | style="top: 50px" |
| | | cancelText="å
³é" |
| | | > |
| | | <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.toolCode"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-button type="primary" @click="searchQuery" icon="search">æ¥è¯¢</a-button> |
| | | <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">éç½®</a-button> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | <!--åºåºåå表--> |
| | | <a-table |
| | | ref="table" |
| | | size="middle" |
| | | :columns="columns" |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :rowSelection="rowSelection" |
| | | :loading="loading" |
| | | @change="handleTableChange" |
| | | > |
| | | </a-table> |
| | | </a-card> |
| | | </j-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { filterObj } from '@/utils/util' |
| | | import { getAction } from '@api/manage' |
| | | |
| | | export default { |
| | | name: 'JSelectLossboundToolModal', |
| | | components: {}, |
| | | props: {}, |
| | | data() { |
| | | return { |
| | | title: 'éæ©åºåºå·¥å
·', |
| | | queryParam: {}, |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key: 'rowIndex', |
| | | width: 60, |
| | | align: 'center', |
| | | customRender: (_, __, index) => parseInt(index) + 1 |
| | | }, |
| | | { |
| | | title: 'å·¥å
·ç¼ç ', |
| | | align: 'center', |
| | | dataIndex: 'toolCode' |
| | | }, |
| | | { |
| | | title: '䏿åç§°', |
| | | align: 'center', |
| | | dataIndex: 'chineseName' |
| | | }, |
| | | { |
| | | title: 'åå·/å¾å·', |
| | | align: 'center', |
| | | dataIndex: 'toolModel' |
| | | } |
| | | ], |
| | | selectedRowKeys: [], |
| | | oldSelectRow: [], |
| | | scrollTrigger: { x: 1500, y: 500 }, |
| | | dataSource: [], |
| | | selectionRows: [], |
| | | ipagination: { |
| | | current: 1, |
| | | pageSize: 10, |
| | | pageSizeOptions: ['5', '10', '20'], |
| | | showTotal: (total, range) => { |
| | | return range[0] + '-' + range[1] + ' å
±' + total + 'æ¡' |
| | | }, |
| | | showQuickJumper: true, |
| | | showSizeChanger: true, |
| | | total: 0, |
| | | }, |
| | | isorter: { |
| | | column: 'toolCode', |
| | | order: 'asc', |
| | | }, |
| | | departTree: [], |
| | | visible: false, |
| | | loading: false, |
| | | prepareKnifeDetailList:[], |
| | | url: { |
| | | list: '/tms/baseTools/listWithLedgerAndConfig' |
| | | }, |
| | | } |
| | | }, |
| | | computed: { |
| | | rowSelection() { |
| | | return { |
| | | type: 'checkbox', |
| | | onChange: (selectedRowKeys, selectedRows) => { |
| | | this.selectedRowKeys = selectedRowKeys |
| | | this.onSelectChange(selectedRows) |
| | | }, |
| | | getCheckboxProps: (record) => ({ |
| | | props: { |
| | | disabled: record.disabled, |
| | | }, |
| | | }), |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | }, |
| | | created() { |
| | | }, |
| | | methods: { |
| | | async loadData(arg) { |
| | | if (arg === 1) { |
| | | this.ipagination.current = 1 |
| | | } |
| | | this.loading = true |
| | | let params = this.getQueryParams() //æ¥è¯¢æ¡ä»¶ |
| | | console.log(params) |
| | | await getAction(this.url.list, params).then((res) => { |
| | | if (res.success) { |
| | | this.dataSource = res.result.records |
| | | this.ipagination.total = res.result.total |
| | | } |
| | | if (res.code === 510) { |
| | | this.$message.warning(res.message) |
| | | } |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | showModal(oldSelectRow) { |
| | | this.oldSelectRow = oldSelectRow |
| | | this.visible = true |
| | | this.queryParam.status = '1' |
| | | this.queryParam.excludeIds = oldSelectRow |
| | | this.loadData(1) |
| | | }, |
| | | getQueryParams() { |
| | | let param = Object.assign({}, this.queryParam, this.isorter) |
| | | param.field = this.getQueryField() |
| | | param.pageNo = this.ipagination.current |
| | | param.pageSize = this.ipagination.pageSize |
| | | return filterObj(param) |
| | | }, |
| | | //æ¥è¯¢æ¡ä»¶å¤ç |
| | | getQueryField() { |
| | | let fields = ['id']; |
| | | for (let a = 0; a < this.columns.length; a++) { |
| | | fields.push(this.columns[a].dataIndex); |
| | | } |
| | | return fields.join(','); |
| | | }, |
| | | searchReset() { |
| | | this.queryParam = {} |
| | | this.loadData(1) |
| | | }, |
| | | close() { |
| | | this.queryParam = {} |
| | | // this.searchReset(0) |
| | | this.selectedRowKeys = [] |
| | | this.selectionRows = [] |
| | | this.visible = false |
| | | }, |
| | | handleTableChange(pagination, filters, sorter) { |
| | | if (Object.keys(sorter).length > 0) { |
| | | this.isorter.column = sorter.field |
| | | this.isorter.order = 'ascend' === sorter.order ? 'asc' : 'desc' |
| | | } |
| | | this.ipagination = pagination |
| | | this.loadData() |
| | | }, |
| | | handleSubmit() { |
| | | if (this.selectionRows.length > 0) { |
| | | this.$bus.$emit('selectionRows', this.selectionRows) |
| | | // this.searchReset(0) |
| | | this.close() |
| | | } else { |
| | | this.$message.warning('请è³å°éæ©ä¸æ¡æ°æ®') |
| | | } |
| | | }, |
| | | onSelectChange(selectionRows) { |
| | | this.selectionRows = selectionRows |
| | | }, |
| | | searchQuery() { |
| | | this.loadData(1) |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .ant-table-tbody .ant-table-row td { |
| | | padding-top: 10px; |
| | | padding-bottom: 10px; |
| | | } |
| | | |
| | | #components-layout-demo-custom-trigger .trigger { |
| | | font-size: 18px; |
| | | line-height: 64px; |
| | | padding: 0 24px; |
| | | cursor: pointer; |
| | | transition: color 0.3s; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <j-modal |
| | | :title="title" |
| | | :width="width" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | switchFullscreen |
| | | @ok="handleOk" |
| | | @cancel="handleCancel" |
| | | cancelText="å
³é"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules"> |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="åå
·ç¼ç " :labelCol="labelCol" :wrapperCol="wrapperCol" prop="toolCode"> |
| | | <a-input v-model="model.toolCode" placeholder="请è¾å
¥åå
·ç¼ç "></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="ç³è¯·åºåºæ°é" :labelCol="labelCol" :wrapperCol="wrapperCol" |
| | | prop="outboundQuantity"> |
| | | <a-input-number v-model="model.outboundQuantity" placeholder="请è¾å
¥ç³è¯·åºåºæ°é" style="width: 100%" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="ä»åº" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="storageLocation"> |
| | | <a-input v-model="model.storageLocation" placeholder="请è¾å
¥ä»åº"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="åºåºåºä½" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="outboundLocation"> |
| | | <a-input v-model="model.outboundLocation" placeholder="请è¾å
¥åºåºåºä½"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="åºåºç¶æ;1.æªåºåºï¼2.é¨ååºåºï¼3.åºåºå®æ" :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" prop="status"> |
| | | <a-input-number v-model="model.status" placeholder="请è¾å
¥åºåºç¶æ;1.æªåºåºï¼2.é¨ååºåºï¼3.åºåºå®æ" |
| | | style="width: 100%" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form-model> |
| | | </a-spin> |
| | | </j-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import { httpAction } from '@/api/manage' |
| | | |
| | | export default { |
| | | name: 'LossboundDetailModal', |
| | | components: {}, |
| | | props: { |
| | | mainId: { |
| | | type: String, |
| | | required: false, |
| | | default: '' |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | title: 'æä½', |
| | | width: 800, |
| | | visible: false, |
| | | model: {}, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 } |
| | | }, |
| | | |
| | | confirmLoading: false, |
| | | validatorRules: {}, |
| | | url: { |
| | | add: '/tms/toolsLossBound/add', |
| | | edit: '/tms/toolsLossBound/edit' |
| | | } |
| | | |
| | | } |
| | | }, |
| | | 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 |
| | | }, |
| | | close() { |
| | | this.$emit('close') |
| | | this.visible = false |
| | | this.$refs.form.clearValidate() |
| | | }, |
| | | handleOk() { |
| | | 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' |
| | | } |
| | | this.model['outStorehouseId'] = this.mainId |
| | | 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 |
| | | that.close() |
| | | }) |
| | | } else { |
| | | return false |
| | | } |
| | | }) |
| | | }, |
| | | handleCancel() { |
| | | this.close() |
| | | } |
| | | |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <j-modal |
| | | :title="title" |
| | | :width="width" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | switchFullscreen |
| | | @ok="handleOk" |
| | | @cancel="handleCancel" |
| | | cancelText="å
³é"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules"> |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="æ¥æååå·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderCode"> |
| | | <a-input v-model="model.orderCode" placeholder="ç³»ç»èªå¨çæ" :disabled="true"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="æ¥æäºº" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="losser"> |
| | | <j-dict-select-tag :disabled="disableSubmit" |
| | | v-model="model.losser" dictCode="sys_user,realname,id" |
| | | placeholder="è¯·éæ©" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="æ¥ææ¶é´" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="lossTime"> |
| | | |
| | | <j-date placeholder="è¯·éæ©æ¥ææ¶é´" date-format="YYYY-MM-DD HH:mm:ss" v-model="model.lossTime" |
| | | style="width: 100%" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="å®¡æ ¸äºº" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reviewer"> |
| | | <!-- <j-dict-select-tag :disabled="disableSubmit"--> |
| | | <!-- v-model="model.reviewer" dictCode="sys_user,realname,id"--> |
| | | <!-- placeholder="è¯·éæ©" />--> |
| | | <j-select-user-by-dep :disabled="disableSubmit" v-model="model.reviewer" :store="'username'" |
| | | :text="'realname'" :multi="false" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row> |
| | | |
| | | <a-col :span="12"> |
| | | <a-form-model-item v-if="addShow" label="ç»æäºº" :labelCol="labelCol" :wrapperCol="wrapperCol" |
| | | prop="handler"> |
| | | |
| | | <j-dict-select-tag :disabled="disableSubmit" |
| | | v-model="model.handler" dictCode="sys_user,realname,id" |
| | | placeholder="è¯·éæ©" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item v-if="addShow" label="å®¡æ ¸ç¶æ" :labelCol="labelCol" :wrapperCol="wrapperCol" |
| | | prop="orderStatus"> |
| | | <j-dict-select-tag type="list" v-model="model.orderStatus" dictCode="out_bill_status" |
| | | placeholder="è¯·éæ©å®¡æ ¸ç¶æ" disabled /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item v-if="addShow" label="å®¡æ ¸æ¶é´" :labelCol="labelCol" :wrapperCol="wrapperCol" |
| | | prop="approvalDate"> |
| | | |
| | | <j-date placeholder="è¯·éæ©å®¡æ ¸æ¶é´" date-format="YYYY-MM-DD HH:mm:ss" v-model="model.approvalDate" |
| | | style="width: 100%" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item v-if="addShow" label="å®¡æ ¸æè§" :labelCol="labelCol" :wrapperCol="wrapperCol" |
| | | prop="approvalOpinion"> |
| | | <a-input v-model="model.approvalOpinion" placeholder="请è¾å
¥å®¡æ ¸æè§" disabled></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="夿³¨" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark"> |
| | | <a-textarea :disabled="disableSubmit" v-model="model.remark" rows="4" placeholder="请è¾å
¥å¤æ³¨" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="æ¥æåå " :labelCol="labelCol" :wrapperCol="wrapperCol" prop="lossReason"> |
| | | <a-textarea :disabled="disableSubmit" v-model="model.lossReason" rows="4" placeholder="请è¾å
¥å¤æ³¨" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form-model> |
| | | </a-spin> |
| | | |
| | | <a-button type="primary" :style="{ marginBottom: '8px' }" @click="selectTools"> |
| | | 鿩工å
· |
| | | </a-button> |
| | | <a-table |
| | | ref="table" |
| | | size="middle" |
| | | bordered |
| | | rowKey="id" |
| | | :scroll="{x:true}" |
| | | :columns="columns" |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | :rowSelection="null" |
| | | @change="handleTableChange"> |
| | | |
| | | <template v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index"> |
| | | <a-input-number :disabled="disableSubmit" :value="text" v-if="col.dataIndex == 'lossNumber'" :min="0" |
| | | :max="99999" |
| | | @change="(e) => handleChange(e, record.key, col, index)" style="width: 100%;" /> |
| | | <a-textarea |
| | | v-if="col.dataIndex == 'lossReason'" |
| | | :disabled="disableSubmit" |
| | | style="margin: -5px 0" |
| | | :value="text" |
| | | @change="(e) => handleChange(e.target.value, record.key, col, index)" |
| | | /> |
| | | |
| | | </template> |
| | | <span slot="action" v-if="disableSubmit === false" slot-scope="text, record, index"> |
| | | <a-popconfirm title="ç¡®å®å é¤å?" @confirm="() => handleDelete(record, index)"> |
| | | <a>å é¤</a> |
| | | </a-popconfirm> |
| | | </span> |
| | | </a-table> |
| | | <template slot="footer" v-if="disableSubmit === false"> |
| | | <a-button :style="{ marginRight: '8px' }" @click="handleCancel">å
³é</a-button> |
| | | <a-button @click="handleOk" :disabled="isDisabled" type="primary">ç¡®å®</a-button> |
| | | </template> |
| | | |
| | | <j-select-lossbound-tool-modal ref="selectLossBoundToolModal"></j-select-lossbound-tool-modal> |
| | | </j-modal> |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import { httpAction } from '@/api/manage' |
| | | import LossboundDetailList from '../LossboundDetailList.vue' |
| | | import JSelectLossboundToolModal from './JSelectLossboundToolModal.vue' |
| | | import { getAction } from '../../../../api/manage' |
| | | |
| | | export default { |
| | | name: 'LossboundModal', |
| | | components: { |
| | | LossboundDetailList, |
| | | JSelectLossboundToolModal |
| | | }, |
| | | data() { |
| | | return { |
| | | title: '', |
| | | width: 1200, |
| | | visible: false, |
| | | disableSubmit: false, |
| | | isDisabled: false, |
| | | addShow: true, |
| | | selectBorrowTool: false, |
| | | model: {}, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 } |
| | | }, |
| | | //è¡¨æ ¼åæ° |
| | | ipagination: { |
| | | current: 1, |
| | | pageSize: 10, |
| | | total: 0 |
| | | }, |
| | | dataSource: [], |
| | | loading: false, |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key: 'rowIndex', |
| | | align: 'center', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | | }, |
| | | width: 50 |
| | | }, |
| | | { |
| | | title: 'åå
·ç¼å·', |
| | | dataIndex: 'toolCode', |
| | | align: 'center', |
| | | width: 150 |
| | | }, |
| | | |
| | | { |
| | | title: 'å·¥å
፱Ȍ', |
| | | dataIndex: 'applicationType', |
| | | align: 'center', |
| | | width: 150 |
| | | }, |
| | | |
| | | { |
| | | title: '䏿åç§°', |
| | | dataIndex: 'chineseName', |
| | | width: 150, |
| | | align: 'center' |
| | | }, |
| | | |
| | | { |
| | | title: 'åå·/å¾å·', |
| | | dataIndex: 'toolModel', |
| | | width: 150, |
| | | align: 'center' |
| | | }, |
| | | |
| | | { |
| | | title: 'åå
·ææ', |
| | | width: 150, |
| | | dataIndex: 'toolMaterial', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: 'é¶ä»¶ææ', |
| | | width: 150, |
| | | dataIndex: 'partMaterial', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: 'åå®¶', |
| | | width: 150, |
| | | dataIndex: 'supplierId', |
| | | align: 'center' |
| | | |
| | | }, |
| | | { |
| | | title: 'åå¨ä½ç½®', |
| | | width: 150, |
| | | dataIndex: 'goodsShelvesId', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: 'æ¥æåå ', |
| | | width: 150, |
| | | dataIndex: 'lossReason', |
| | | align: 'center', |
| | | scopedSlots: { customRender: 'lossReason' } |
| | | }, |
| | | |
| | | { |
| | | title: 'æ¥ææ°é', |
| | | dataIndex: 'lossNumber', |
| | | align: 'center', |
| | | width: 150, |
| | | scopedSlots: { customRender: 'lossNumber' } |
| | | }, |
| | | |
| | | { |
| | | title: '夿³¨', |
| | | width: 150, |
| | | dataIndex: 'remark', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: 'æä½', |
| | | width: 150, |
| | | dataIndex: 'action', |
| | | scopedSlots: { customRender: 'action' }, |
| | | align: 'center' |
| | | } |
| | | ], |
| | | confirmLoading: false, |
| | | validatorRules: { |
| | | lossReason: [ |
| | | { required: true, message: '请è¾å
¥æ¥æåå ' } |
| | | ], |
| | | lossTime: [ |
| | | { required: true, message: '请è¾å
¥æ¥ææ¶é´!' } |
| | | ], |
| | | losser: [ |
| | | { required: true, message: '请è¾å
¥æ¥æäºº!' } |
| | | ], |
| | | |
| | | }, |
| | | url: { |
| | | list: '/tms/toolsLossBound/listlossboundDetailByMainId', |
| | | add: '/tms/toolsLossBound/addTotal', |
| | | edit: '/tms/toolsLossBound/editTotal' |
| | | } |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | //å¤ä»½modelåå§å¼ |
| | | this.modelDefault = JSON.parse(JSON.stringify(this.model)) |
| | | }, |
| | | mounted() { |
| | | this.$bus.$on('selectionRows', (data) => { |
| | | for (let i = 0; i < data.length; i++) { |
| | | this.dataSource.push({ |
| | | toolId: data[i].id, |
| | | toolCode: data[i].toolCode, |
| | | classifyId: data[i].classifyId, |
| | | applicationType: data[i].applicationType_dictText, |
| | | chineseName: data[i].chineseName, |
| | | toolModel: data[i].toolModel, |
| | | material: data[i].material, |
| | | supplierId: data[i].supplierId, |
| | | goodsShelvesId: data[i].positionCode, |
| | | toolMaterial: data[i].toolMaterial, |
| | | partMaterial: data[i].partMaterial |
| | | |
| | | }) |
| | | } |
| | | this.ipagination.total = this.dataSource.length |
| | | }) |
| | | }, |
| | | methods: { |
| | | |
| | | handleDelete(record, index) { |
| | | this.dataSource.splice(index, 1) |
| | | }, |
| | | handleChange(value, key, column, index) { |
| | | console.log(value, key, column, index) |
| | | const temp = [...this.dataSource] |
| | | const target = temp.filter(item => key === item.key)[index] |
| | | if (target) { |
| | | target[column.dataIndex] = value |
| | | this.dataSource = temp |
| | | if (column.dataIndex === 'lossNumber') { |
| | | |
| | | target[column.dataIndex] = value |
| | | } |
| | | if (column.dataIndex === 'lossReason') { |
| | | target[column.dataIndex] = value |
| | | } |
| | | this.dataSource = temp |
| | | } |
| | | }, |
| | | |
| | | selectTools: function() { |
| | | let ids = [] |
| | | for (let i = 0; i < this.dataSource.length; i++) { |
| | | ids.push(this.dataSource[i].id) |
| | | } |
| | | this.$refs.selectLossBoundToolModal.showModal(ids) |
| | | this.$refs.selectLossBoundToolModal.title = '鿩工å
·ä¿¡æ¯' |
| | | this.$refs.selectLossBoundToolModal.disableSubmit = false |
| | | }, |
| | | add() { |
| | | this.addShow = false |
| | | this.edit() |
| | | this.dataSource = [] |
| | | }, |
| | | edit(record) { |
| | | console.log(record) |
| | | this.model = Object.assign({}, record) |
| | | this.visible = true |
| | | getAction(this.url.list, { |
| | | lossBoundId: record.id, |
| | | pageNo: 1, |
| | | pageSize: 99999 |
| | | }).then((res) => { |
| | | if (res.success) { |
| | | console.log(res.result.records) |
| | | this.dataSource = res.result.records |
| | | } else { |
| | | this.dataSource = null |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | close() { |
| | | this.$emit('close') |
| | | this.addShow = true |
| | | this.selectBorrowTool = false |
| | | this.visible = false |
| | | this.$refs.form.clearValidate() |
| | | }, |
| | | handleTableChange(pagination, filters, sorter) { |
| | | this.ipagination = pagination |
| | | }, |
| | | handleOk() { |
| | | const that = this |
| | | // 触å表åéªè¯ |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | this.model.toolsLossBoundDetailList = this.dataSource |
| | | 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 |
| | | that.close() |
| | | }) |
| | | } else { |
| | | return false |
| | | } |
| | | }) |
| | | }, |
| | | handleCancel() { |
| | | this.close() |
| | | } |
| | | |
| | | } |
| | | } |
| | | </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="4" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="åå
·åç§°"> |
| | | <a-input placeholder="请è¾å
¥åå
·åç§°" v-model="queryParam.toolName"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="4" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="åç£¨ç»æ"> |
| | | <a-input placeholder="请è¾å
¥åç£¨ç»æ" v-model="queryParam.grindingResult"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="å磨æ¶é´"> |
| | | <a-range-picker v-model="queryParam.inspectionDateRange" @change="onInspectionDateChange" format="YYYY-MM-DD" value-format="YYYY-MM-DD" /> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="4" :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="info" @click="searchReset" icon="reload" style="margin-left: 8px">éç½®</a-button> |
| | | </span> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | <!-- æ¥è¯¢åºå-END --> |
| | | |
| | | <!-- æä½æé®åºå --> |
| | | <div class="table-operator"> |
| | | <div class="table-operator"> |
| | | <a-button @click="handleAdd" type="primary" icon="plus">æ°å¢</a-button> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- tableåºå-begin --> |
| | | <div> |
| | | |
| | | |
| | | <a-table |
| | | ref="table" |
| | | size="middle" |
| | | :scroll="{x:true}" |
| | | bordered |
| | | rowKey="id" |
| | | :columns="columns" |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | :rowSelection="null" |
| | | class="j-table-force-nowrap" |
| | | @change="handleTableChange"> |
| | | |
| | | |
| | | |
| | | <span slot="action" slot-scope="text, record"> |
| | | <a @click="handleDetail(record)">详æ
</a> |
| | | |
| | | <a-divider type="vertical" /> |
| | | <a-dropdown> |
| | | <a class="ant-dropdown-link">æ´å¤ <a-icon type="down" /></a> |
| | | <a-menu slot="overlay"> |
| | | <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> |
| | | </div> |
| | | |
| | | <tools-sharpening-modal ref="modalForm" :treeSelected="treeSelected" @ok="modalFormOk"></tools-sharpening-modal> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import '@/assets/less/TableExpand.less' |
| | | import { mixinDevice } from '@/utils/mixin' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import ToolsSharpeningModal from './modules/ToolsSharpeningModal' |
| | | import { getAction, putAction, deleteAction } from '../../../api/manage' |
| | | |
| | | export default { |
| | | name: 'ToolSharpeningList ', |
| | | mixins:[JeecgListMixin, mixinDevice], |
| | | components: { |
| | | ToolsSharpeningModal |
| | | }, |
| | | data () { |
| | | return { |
| | | description: 'åå
·å磨', |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key:'rowIndex', |
| | | width:60, |
| | | align:"center", |
| | | customRender:function (t,r,index) { |
| | | return parseInt(index)+1; |
| | | } |
| | | }, |
| | | { |
| | | title:'åå
·åç±»', |
| | | align:"center", |
| | | dataIndex: 'warehouseId' |
| | | }, |
| | | { |
| | | title:'åå
·ç¼å·', |
| | | align:"center", |
| | | dataIndex: 'warehouseName' |
| | | }, |
| | | { |
| | | title:'åå
·åç§°', |
| | | align:"center", |
| | | dataIndex: 'warehouseName' |
| | | }, |
| | | { |
| | | title:'åå
·ææ', |
| | | align:"center", |
| | | dataIndex: 'parentWarehouseName', |
| | | }, |
| | | { |
| | | title:'åå®¶', |
| | | align:"center", |
| | | dataIndex: 'status', |
| | | }, |
| | | { |
| | | title:'é¶ä»¶ææ', |
| | | align:"center", |
| | | dataIndex: 'remark' |
| | | }, |
| | | |
| | | { |
| | | title:'å磨æ¶é´', |
| | | align:"center", |
| | | dataIndex: 'createBy' |
| | | }, |
| | | { |
| | | title:'åç£¨ç»æå建议', |
| | | align:"center", |
| | | dataIndex: 'createBy' |
| | | }, |
| | | { |
| | | title:'责任人', |
| | | align:"center", |
| | | dataIndex: 'createBy' |
| | | }, |
| | | |
| | | { |
| | | title:'å建人', |
| | | align:"center", |
| | | dataIndex: 'createBy' |
| | | }, |
| | | |
| | | { |
| | | title:'å建æ¶é´', |
| | | align:"center", |
| | | dataIndex: 'createTime' |
| | | }, |
| | | { |
| | | title: 'æä½', |
| | | dataIndex: 'action', |
| | | align:"center", |
| | | fixed:"right", |
| | | width:147, |
| | | scopedSlots: { customRender: 'action' } |
| | | } |
| | | ], |
| | | url: { |
| | | list: "/tms/toolSharpening/list", |
| | | delete: "/tms/toolSharpening/delete", |
| | | edit: "/tms/toolSharpening/edit", |
| | | deleteBatch: "/tms/toolSharpening/deleteBatch", |
| | | exportXlsUrl: "/tms/toolSharpening/exportXls", |
| | | importExcelUrl: "tms/toolSharpening/importExcel", |
| | | |
| | | }, |
| | | dictOptions:{}, |
| | | superFieldList:[], |
| | | treeSelected: {}, |
| | | } |
| | | }, |
| | | created() { |
| | | this.getSuperFieldList(); |
| | | }, |
| | | computed: { |
| | | importExcelUrl: function(){ |
| | | return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; |
| | | }, |
| | | addFlag: function(){ |
| | | return !(this.treeSelected.key && this.treeSelected.entity.leafFlag === '2'); |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.handleGetCurrSelected = (data) => { |
| | | this.treeSelected = data; |
| | | this.queryParam.parentId = data.key; |
| | | this.loadData(); |
| | | } |
| | | this.$bus.$on('getCurrSelected', this.handleGetCurrSelected); |
| | | }, |
| | | beforeDestroy() { |
| | | this.$bus.$off('getCurrSelected', this.handleGetCurrSelected); |
| | | }, |
| | | methods: { |
| | | handleStatus(record) { |
| | | getAction(this.url.list, { parentId: record.id }).then((res) => { |
| | | if (res.success) { |
| | | if (res.result.total > 0) { |
| | | this.$message.warning('该èç¹ä¸åå¨åèç¹ï¼ä¸è½åæ´ç¶æï¼') |
| | | } else { |
| | | const params = { |
| | | id: record.id, |
| | | status: record.status === '1' ? '2' : '1' |
| | | } |
| | | putAction(this.url.edit, params).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success(res.message) |
| | | this.loadData() |
| | | } else { |
| | | this.$message.warning(res.message) |
| | | } |
| | | }) |
| | | } |
| | | } else { |
| | | this.$message.warning(res.message); |
| | | } |
| | | }); |
| | | |
| | | }, |
| | | handleDelete(id) { |
| | | getAction(this.url.list, { parentId: id }).then((res) => { |
| | | if (res.success) { |
| | | if (res.result.total > 0) { |
| | | this.$message.warning('请å
å é¤åèç¹'); |
| | | } else { |
| | | deleteAction(this.url.delete, {id: id}).then((res) => { |
| | | if (res.success) { |
| | | //éæ°è®¡ç®å页é®é¢ |
| | | this.loadData() |
| | | this.$message.success(res.message); |
| | | this.$bus.$emit('queryTreeData') |
| | | } else { |
| | | this.$message.warning(res.message); |
| | | } |
| | | }); |
| | | } |
| | | } else { |
| | | this.$message.warning(res.message); |
| | | } |
| | | }) |
| | | }, |
| | | searchReset() { |
| | | this.queryParam = { |
| | | parentId: this.treeSelected.key |
| | | } |
| | | this.loadData(1) |
| | | }, |
| | | modalFormOk() { |
| | | this.loadData() |
| | | this.$bus.$emit('queryTreeData') |
| | | }, |
| | | initDictConfig(){ |
| | | }, |
| | | getSuperFieldList(){ |
| | | let fieldList=[]; |
| | | fieldList.push({type:'string',value:'toolId',text:'å·¥å
·ç¼å·',dictCode:''}) |
| | | fieldList.push({type:'string',value:'warehouseName',text:'ä»åºåç§°',dictCode:''}) |
| | | fieldList.push({type:'string',value:'parentId',text:'ç¶èç¹ç¼å·',dictCode:''}) |
| | | fieldList.push({type:'string',value:'seq',text:'å±ç¤ºåºå·',dictCode:''}) |
| | | fieldList.push({type:'string',value:'leafFlag',text:'æ¯å¦å¶åèç¹(1æ¯;2å¦)',dictCode:''}) |
| | | fieldList.push({type:'string',value:'status',text:'ç¶æï¼1å¯ç¨;2åç¨ï¼',dictCode:''}) |
| | | fieldList.push({type:'string',value:'remark',text:'夿³¨',dictCode:''}) |
| | | fieldList.push({type:'string',value:'createBy',text:'å建人',dictCode:''}) |
| | | fieldList.push({type:'date',value:'createTime',text:'å建æ¶é´'}) |
| | | this.superFieldList = fieldList |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | @import '~@assets/less/common.less'; |
| | | .enable { |
| | | color: green; |
| | | } |
| | | .disable { |
| | | color: red; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <j-modal |
| | | :title="title" |
| | | :width="1200" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | switchFullscreen |
| | | centered |
| | | :mask-closable="false" |
| | | @ok="handleOk" |
| | | @cancel="handleCancel" |
| | | cancelText="å
³é"> |
| | | |
| | | <a-spin :spinning="spinning"> |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <a-row :gutter="24"> |
| | | <a-col :span="8"> |
| | | <a-form-model-item prop="standardCode" label="å·¥å
·ç¼å·"> |
| | | <a-input-search v-model="model.toolsId" placeholder="è¯·éæ©å·¥å
·ç¼å·" :disabled="disableSubmit" @search="onSearchPart" enter-button |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="10"> |
| | | <a-form-model-item prop="equipmentId" label="å·¥å
·åç±»åç§°"> |
| | | <a-input placeholder="请è¾å
¥å·¥å
·åç±»åç§°" v-model="model.typeName" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | |
| | | </a-row> |
| | | <a-row :gutter="24"> |
| | | <a-col :span="8"> |
| | | <a-form-model-item prop="standardCode" label="å·¥å
·åæ°æ è¯"> |
| | | <a-input placeholder="éæ©è®¾å¤åèªå¨å¸¦åº" readOnly v-model="model.paraTypeFlagName" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="å·¥å
፱Ȍ"> |
| | | <a-input placeholder="éæ©è®¾å¤åèªå¨å¸¦åº" v-model="model.applicationType" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row :gutter="24"> |
| | | <a-col :span="8"> |
| | | <a-form-model-item prop="operator" label="责任人"> |
| | | <j-dict-select-tag type="list" v-model="model.reportPerson" dictCode="sys_user,realname,id" placeholder="è¯·éæ©æ¥å·¥äººå" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item prop="standardName" label="å·¥å
·åç±»ç¼ç "> |
| | | <a-input placeholder="éæ©è®¾å¤åèªå¨å¸¦åº" readOnly v-model="model.classifyId" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row :gutter="24"> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="ç»æå建议" prop="inspectionDate"> |
| | | <a-input placeholder="鿩填ååç£¨ç»æå建议" v-model="model.sharpeningResult" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="6"> |
| | | <a-form-model-item label="åå·/å¾å·"> |
| | | <j-date placeholder="鿩填ååå·/å¾å·" v-model="model.toolModel" disabled style="width: 100%"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row :gutter="24"> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="ä»åºåå¸" prop="inspectionDate"> |
| | | <a-input placeholder="鿩填åä»åºç份åå¸" v-model="model.provinceCity" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="åºåº/åºå·"> |
| | | <j-date placeholder="鿩填ååºåº/åºå·" v-model="model.warehouseId" disabled style="width: 100%"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row :gutter="24"> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="åå¨ä½ç½®" prop="inspectionDate"> |
| | | <a-input placeholder="鿩填ååå¨ä½ç½®" v-model="model.storageLocation" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="计é主åä½"> |
| | | <j-date placeholder="请填å计é主åä½" v-model="model.mainUnit" disabled style="width: 100%"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row :gutter="24"> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="å磨æ¶é´" prop="inspectionDate"> |
| | | <j-date placeholder="è¯·éæ©æå°æ¶é´" v-model="model.sharpeningTime" style="width: 100%" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | |
| | | </a-row> |
| | | <a-row :gutter="24"> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="夿³¨" :labelCol="{span:2}" :wrapperCol="{span:21}" prop="remark"> |
| | | <a-textarea v-model="model.remark" rows="3" placeholder="请è¾å
¥å¤æ³¨"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form-model> |
| | | </a-spin> |
| | | </j-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getAction, httpAction } from '@/api/manage' |
| | | import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js' |
| | | import { JVXETypes } from '@/components/jeecg/JVxeTable' |
| | | import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect' |
| | | import moment from 'dayjs' |
| | | |
| | | export default { |
| | | name: 'ToolsSharpeningModal', |
| | | mixins: [JVxeTableModelMixin], |
| | | components: { |
| | | MaintenanceEquipmentSelect |
| | | }, |
| | | data() { |
| | | return { |
| | | title: 'æä½', |
| | | visible: false, |
| | | model: {}, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 6 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 15 } |
| | | }, |
| | | confirmLoading: false, |
| | | spinning: false, |
| | | disabled: false, |
| | | validatorRules: { |
| | | // standardName: [ |
| | | // { required: true, message: '请è¾å
¥æ ååç§°!' } |
| | | // ], |
| | | inspectionDate: [ |
| | | { required: true, message: 'è¯·éæ©ç¹æ£æ¥æ!' } |
| | | ], |
| | | // maintenancePeriod: [ |
| | | // { required: true, message: '请è¾å
¥ä¿å
»å¨æï¼åä½ï¼å¤©!' } |
| | | // ], |
| | | equipmentId: [ |
| | | { required: true, message: 'è¯·éæ©è®¾å¤!' } |
| | | ] |
| | | }, |
| | | url: { |
| | | add: '/eam/eamInspectionOrder/add', |
| | | edit: '/eam/eamInspectionOrder/edit', |
| | | detail: '/eam/eamMaintenanceStandardDetail/queryList', |
| | | detailOrder: '/eam/eamInspectionOrderDetail/queryList', |
| | | userSelect: '/eam/user_select/list' |
| | | }, |
| | | maintenanceCategory: 'POINT_INSPECTION', |
| | | maintenanceOperatorOptions: [], |
| | | standardId: '', |
| | | standardType: false, |
| | | detail: { |
| | | loading: false, |
| | | dataSource: [], |
| | | columns: [ |
| | | { |
| | | title: 'åºå·', |
| | | key: 'itemCode', |
| | | type: JVXETypes.inputNumber, |
| | | width: '10%', |
| | | align: 'center', |
| | | validateRules: [ |
| | | { required: true, unique: true, message: 'åºå·ä¸è½éå¤' } |
| | | ] |
| | | }, |
| | | { |
| | | title: 'ä¿å
»é¡¹', |
| | | key: 'itemName', |
| | | type: JVXETypes.textarea, |
| | | width: '20%', |
| | | align: 'center', |
| | | validateRules: [ |
| | | { required: true, message: 'ä¿å
»é¡¹ä¸è½ä¸ºç©ºï¼' } |
| | | ] |
| | | }, |
| | | { |
| | | title: 'ä¿å
»è¦æ±', |
| | | key: 'itemDemand', |
| | | type: JVXETypes.textarea, |
| | | width: '30%', |
| | | align: 'center', |
| | | validateRules: [ |
| | | { required: true, message: 'ä¿å
»è¦æ±ä¸è½ä¸ºç©ºï¼' } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | methods: { |
| | | add() { |
| | | this.model = {} |
| | | this.detail.dataSource = [] |
| | | this.visible = true |
| | | this.disabled = false |
| | | this.standardType = false |
| | | }, |
| | | |
| | | edit(record) { |
| | | this.model = Object.assign({}, record) |
| | | this.standardId = record.standardId |
| | | this.disabled = true |
| | | this.standardType = true |
| | | this.visible = true |
| | | this.detail.dataSource = [] |
| | | if (record && record.referenceFile) { |
| | | let obj = JSON.parse(record.referenceFile) |
| | | this.model.fileList = [obj] |
| | | } else { |
| | | this.model.fieldList = [] |
| | | } |
| | | this.loadDetailOrder(record.id) |
| | | }, |
| | | |
| | | async handleOk() { |
| | | const that = this |
| | | let errMap = await that.$refs.editableDetailTable.validateTable() |
| | | if (errMap) { |
| | | this.$message.warning('æ°æ®æ ¡éªå¤±è´¥ï¼') |
| | | return |
| | | } |
| | | // 触å表åéªè¯ |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | let tableData = that.$refs.editableDetailTable.getTableData() |
| | | let removeData = that.$refs.editableDetailTable.getDeleteData() |
| | | that.model.tableDetailList = [...tableData] |
| | | that.model.removeDetailList = [...removeData] |
| | | |
| | | that.confirmLoading = that.spinning = true |
| | | let httpurl = '' |
| | | let method = '' |
| | | if (!this.model.id) { |
| | | httpurl += this.url.add |
| | | method = 'post' |
| | | } else { |
| | | httpurl += this.url.edit |
| | | method = 'put' |
| | | } |
| | | this.model.standardId = this.standardId |
| | | httpAction(httpurl, this.model, method).then((res) => { |
| | | if (res.success) { |
| | | that.$message.success(res.message) |
| | | that.$emit('ok') |
| | | that.close() |
| | | } else { |
| | | that.$message.warning(res.message) |
| | | } |
| | | }).finally(() => { |
| | | that.confirmLoading = that.spinning = false |
| | | }) |
| | | } else { |
| | | return false |
| | | } |
| | | }) |
| | | }, |
| | | onSearchPart() { |
| | | this.$refs.PartPopUp.showModals([this.model.enterpriseId]) |
| | | }, |
| | | |
| | | autocompleteForm(selectObj) { |
| | | this.model.standardName = selectObj.standardName |
| | | this.model.maintenancePeriod = selectObj.maintenancePeriod |
| | | this.model.standardCode = selectObj.standardCode |
| | | // è¥åæ¶è®¾å¤éæ©åä¿å
»å¨æä¸ºç©ºå鿏
ç©ºç¹æ£æ¥æåç¹æ£è¿ææ¶é´ |
| | | if (!this.model.equipmentId) { |
| | | delete this.model.inspectionDate |
| | | delete this.model.expirationTime |
| | | } else { |
| | | // å¦æç¹æ£æ¥æåå¨ï¼åå¨éæ°éæ©è®¾å¤åå³ä¿å
»å¨æå¯è½åçæ¹ååéæ°è®¡ç®è¿ææ¶é´ |
| | | if (this.model.inspectionDate) this.expirationTimeFrom(this.model.inspectionDate) |
| | | } |
| | | if (!this.standardType) { |
| | | console.log('this.standardType', this.standardType) |
| | | this.standardId = selectObj.id |
| | | this.loadDetail(selectObj.id) |
| | | } |
| | | this.$nextTick(() => this.loadMaintenanceOperatorList(this.model.equipmentId)) |
| | | }, |
| | | |
| | | expirationTimeFrom(date) { |
| | | //è¿ææ¶é´æ¯åå§æ¶é´+ä¿å
»å¨æ |
| | | if (date && this.model.maintenancePeriod) { |
| | | // 转æ¢ä¸ºæ¶é´æ³åç¬¦ä¸²ï¼ææå®æ ¼å¼ï¼ |
| | | this.model.expirationTime = moment(date) |
| | | .add(this.model.maintenancePeriod, 'days') |
| | | .format('YYYY-MM-DD') |
| | | } else { |
| | | this.model.expirationTime = null // æ¸
ç©ºæ æå¼ |
| | | } |
| | | }, |
| | | |
| | | //å 载详æ
æ°æ® |
| | | loadDetail(standardId) { |
| | | this.detail.dataSource = [] |
| | | if (standardId) { |
| | | console.log('standardId', standardId) |
| | | this.spinning = true |
| | | getAction(this.url.detail, { standardId: standardId }) |
| | | .then(res => { |
| | | if (res.success) { |
| | | this.detail.dataSource = [...res.result] |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.spinning = false |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | loadDetailOrder(orderId) { |
| | | if (orderId) { |
| | | this.spinning = true |
| | | getAction(this.url.detailOrder, { orderId: orderId }) |
| | | .then(res => { |
| | | if (res.success) { |
| | | this.detail.dataSource = [...res.result] |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.spinning = false |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | loadMaintenanceOperatorList(equipmentId) { |
| | | this.maintenanceOperatorOptions = [] |
| | | let params = { positionCode: 'PCR0001' } |
| | | if (equipmentId) { |
| | | params.equipmentId = equipmentId |
| | | } else { |
| | | delete this.model.operator |
| | | return |
| | | } |
| | | const that = this |
| | | getAction(this.url.userSelect, params) |
| | | .then(res => { |
| | | if (res.success) { |
| | | that.maintenanceOperatorOptions = res.result.map(item => ({ |
| | | key: item.id, |
| | | value: item.username, |
| | | text: item.realname |
| | | })) |
| | | if (!that.maintenanceOperatorOptions.find(item => item.value === that.model.operator)) delete that.model.operator |
| | | } else { |
| | | if (that.model.operator) delete that.model.operator |
| | | } |
| | | }) |
| | | .catch(err => { |
| | | if (that.model.operator) delete that.model.operator |
| | | }) |
| | | }, |
| | | |
| | | handleCancel() { |
| | | this.close() |
| | | }, |
| | | |
| | | close() { |
| | | this.$emit('close') |
| | | this.visible = false |
| | | this.$refs.form.clearValidate() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-card :bordered="false"> |
| | | <div> |
| | | <a-table ref="table" size="middle" bordered rowKey="id" :scroll="{ x: true }" :columns="columns" |
| | | :dataSource="dataSource" :pagination="ipagination" :loading="loading" @change="handleTableChange"> |
| | | <span slot="num" slot-scope="text, record" class="fontweight"> |
| | | {{ record.num }} |
| | | </span> |
| | | |
| | | </a-table> |
| | | <template v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index"> |
| | | </template> |
| | | </div> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import { getAction } from '@/api/manage' |
| | | import Tooltip from 'ant-design-vue/es/tooltip' |
| | | export default { |
| | | name: "ToolsStocktaKingBoundDetail", |
| | | components: { |
| | | Tooltip, |
| | | }, |
| | | mixins: [JeecgListMixin], |
| | | props: { |
| | | mainId: { |
| | | type: String, |
| | | default: '', |
| | | required: false |
| | | } |
| | | }, |
| | | watch: { |
| | | mainId: { |
| | | immediate: true, |
| | | handler(val) { |
| | | if (!this.mainId) { |
| | | this.clearList() |
| | | } else { |
| | | alert(val) |
| | | this.queryParam['stocktakingBoundId'] = val; |
| | | this.queryParam['delFlag'] = 0; |
| | | this.loadData(1); |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key: 'rowIndex', |
| | | align: 'center', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | | }, |
| | | width: 50 |
| | | }, |
| | | |
| | | |
| | | { |
| | | title: 'åå
·ç¼å·', |
| | | dataIndex: 'toolCode', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: 'å·¥å
፱Ȍ', |
| | | dataIndex: 'applicationType_dictText', |
| | | align: 'center', |
| | | |
| | | }, |
| | | |
| | | { |
| | | title: '䏿åç§°', |
| | | dataIndex: 'chineseName', |
| | | align: 'center' |
| | | }, |
| | | |
| | | { |
| | | title: 'åå·/å¾å·', |
| | | dataIndex: 'toolModel', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: 'åå
·ææ', |
| | | dataIndex: 'toolMaterial', |
| | | align: 'center' |
| | | |
| | | }, |
| | | { |
| | | title: 'é¶ä»¶ææ', |
| | | dataIndex: 'partMaterial', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: 'åå®¶', |
| | | dataIndex: 'supplierId', |
| | | align: 'center' |
| | | |
| | | }, |
| | | { |
| | | title: 'åå¨ä½ç½®(åºä½å·)', |
| | | dataIndex: 'goodsShelvesId', |
| | | align: 'center' |
| | | }, |
| | | |
| | | { |
| | | title: 'è´¦é¢æ°é', |
| | | dataIndex: 'bookQuantity', |
| | | align: 'center' |
| | | |
| | | }, |
| | | { |
| | | title: 'å¯ç¨æ°é', |
| | | dataIndex: 'availableQuantity', |
| | | align: 'center' |
| | | |
| | | }, |
| | | { |
| | | title: 'å®çæ°é', |
| | | dataIndex: 'practicalQuantity', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: 'å·®å¼å¼', |
| | | dataIndex: 'differenceValue', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: 'çäºçç', |
| | | dataIndex: 'surplusDeficit_dictText', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: 'çåºæ¶é´', |
| | | dataIndex: 'stocktakingDate', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: '夿³¨', |
| | | dataIndex: 'remark', |
| | | align: 'center' |
| | | } |
| | | ], |
| | | url: { |
| | | list: "/tms/toolsStocktakingBound/listToolsStocktakingBoundControllerDetailsByMainId", |
| | | }, |
| | | /* å页忰 */ |
| | | ipagination: { |
| | | current: 1, |
| | | pageSize: 20, |
| | | pageSizeOptions: ['5', '10', '20', '50'], |
| | | showTotal: (total, range) => { |
| | | return range[0] + '-' + range[1] + ' å
±' + total + 'æ¡' |
| | | }, |
| | | showQuickJumper: true, |
| | | showSizeChanger: true, |
| | | total: 0 |
| | | }, |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | computed: { |
| | | }, |
| | | methods: { |
| | | clearList() { |
| | | this.dataSource = [] |
| | | this.selectedRowKeys = [] |
| | | this.ipagination.current = 1 |
| | | }, |
| | | loadData(arg) { |
| | | if (!this.url.list) { |
| | | this.$message.error("请设置url.list屿§!") |
| | | return |
| | | } |
| | | //å è½½æ°æ® è¥ä¼ å
¥åæ°1åå 载第ä¸é¡µçå
容 |
| | | if (arg === 1) { |
| | | this.ipagination.current = 1; |
| | | } |
| | | var params = this.getQueryParams();//æ¥è¯¢æ¡ä»¶ |
| | | 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; |
| | | } |
| | | //update-end---author:zhangyafei Date:20201118 forï¼éé
ä¸åé¡µçæ°æ®å表------------ |
| | | } else { |
| | | this.$message.warning(res.message) |
| | | } |
| | | }).finally(() => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less" scoped> |
| | | @import '~@assets/less/common.less'; |
| | | |
| | | .fontweight { |
| | | font-weight: bold; |
| | | } |
| | | |
| | | /deep/ .frozenRowClass { |
| | | color: #c9c9c9; |
| | | } |
| | | |
| | | .success { |
| | | color: green; |
| | | } |
| | | |
| | | .error { |
| | | color: red; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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.orderCode"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="ç»æäºº"> |
| | | <j-dict-select-tag dictCode="sys_user,realname,id" placeholder="è¯·éæ©ç»æäºº" v-model="queryParam.handler" |
| | | /> |
| | | </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> |
| | | <a @click="handleToggleSearch" style="margin-left: 8px"> |
| | | {{ toggleSearchStatus ? 'æ¶èµ·' : 'å±å¼' }} |
| | | <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> |
| | | </a> |
| | | </span> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | <!-- æ¥è¯¢åºå-END --> |
| | | |
| | | <!-- æä½æé®åºå --> |
| | | <div class="table-operator"> |
| | | <a-button @click="handleAdd" type="primary" icon="plus">æ°å¢</a-button> |
| | | |
| | | |
| | | <!-- <a-dropdown v-if="selectedRowKeys.length > 0">--> |
| | | <!-- <a-menu slot="overlay">--> |
| | | <!-- <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>å é¤</a-menu-item>--> |
| | | <!-- </a-menu>--> |
| | | <!-- <a-button style="margin-left: 8px"> æ¹éæä½ <a-icon type="down" /></a-button>--> |
| | | <!-- </a-dropdown>--> |
| | | </div> |
| | | |
| | | <!-- tableåºå-begin --> |
| | | <div> |
| | | <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> |
| | | <i class="anticon anticon-info-circle ant-alert-icon"></i> 已鿩 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 |
| | | <a style="margin-left: 24px" @click="onClearSelected">æ¸
空</a> |
| | | </div> |
| | | |
| | | <a-table |
| | | ref="table" |
| | | size="middle" |
| | | bordered |
| | | rowKey="id" |
| | | class="j-table-force-nowrap" |
| | | :scroll="{x:true}" |
| | | :columns="columns" |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | :rowSelection='{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }' :customRow='clickThenSelect' |
| | | @change="handleTabChange"> |
| | | |
| | | |
| | | |
| | | <span slot="action" slot-scope="text, record"> |
| | | <a @click="handleDetail(record)">详æ
</a> |
| | | <span v-if="record.approvalStatus === '1'"> |
| | | <a-divider type="vertical" /> |
| | | <a-popconfirm title="ç¡®å®æäº¤å?" @confirm="() => handleSubmit(record)"> |
| | | <a>æäº¤</a> |
| | | </a-popconfirm> |
| | | <a-divider type="vertical" /> |
| | | <a-dropdown> |
| | | <a class="ant-dropdown-link">æ´å¤<a-icon type="down" /></a> |
| | | <a-menu slot="overlay"> |
| | | <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> |
| | | </span> |
| | | </a-table> |
| | | <a-tabs defaultActiveKey="1"> |
| | | <!-- type="card" --> |
| | | <a-tab-pane tab='çç¹åæç»' key="1"> |
| | | <div class="table-operator" style="margin:-16px"> |
| | | <tools-stockta-king-bound-detail ref="toolStockingBoundDetail" :mainId='mainId' /> |
| | | </div> |
| | | </a-tab-pane> |
| | | |
| | | </a-tabs> |
| | | </div> |
| | | |
| | | |
| | | <tools-stocktaking-bound-modal |
| | | ref="modalForm" |
| | | @ok="modalFormOk" |
| | | ></tools-stocktaking-bound-modal> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import ToolsStocktaKingBoundDetail from './ToolsStocktaKingBoundDetail.vue' |
| | | import ToolsStocktakingBoundModal from './modules/ToolsStocktakingBoundModal' |
| | | import '@/assets/less/TableExpand.less' |
| | | import { deleteAction, getAction } from '@api/manage' |
| | | |
| | | export default { |
| | | name: "ToolsStocktakingBoundList", |
| | | mixins:[JeecgListMixin], |
| | | components: { |
| | | ToolsStocktakingBoundModal, |
| | | ToolsStocktaKingBoundDetail |
| | | }, |
| | | data () { |
| | | return { |
| | | description: 'çç¹å表管ç页é¢', |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key:'rowIndex', |
| | | width:60, |
| | | align:"center", |
| | | customRender:function (t,r,index) { |
| | | return parseInt(index)+1; |
| | | } |
| | | }, |
| | | { |
| | | title:'çç¹åå·', |
| | | align:"center", |
| | | dataIndex: 'orderCode' |
| | | }, |
| | | { |
| | | title:'ç»æäºº', |
| | | align:"center", |
| | | dataIndex: 'handler_dictText' |
| | | }, |
| | | { |
| | | title:'å®¡æ ¸äºº', |
| | | align:"center", |
| | | dataIndex: 'reviewer_dictText' |
| | | }, |
| | | { |
| | | title:'çç¹åç§°', |
| | | align:"center", |
| | | dataIndex: 'stocktakingName' |
| | | }, |
| | | { |
| | | title:'夿³¨', |
| | | align:"center", |
| | | dataIndex: 'remark' |
| | | }, |
| | | { |
| | | title:'å®¡æ ¸ç¶æ', |
| | | align:"center", |
| | | dataIndex: 'approvalStatus_dictText' |
| | | |
| | | }, |
| | | { |
| | | title:'å®¡æ ¸æè§', |
| | | align:"center", |
| | | dataIndex: 'approvalOpinion' |
| | | }, |
| | | { |
| | | title:'çç¹æ¶é´', |
| | | align:"center", |
| | | dataIndex: 'inventoryTime' |
| | | }, |
| | | { |
| | | title: 'æä½', |
| | | dataIndex: 'action', |
| | | align:"center", |
| | | fixed:"right", |
| | | width:147, |
| | | scopedSlots: { customRender: 'action' }, |
| | | } |
| | | ], |
| | | url: { |
| | | list: "/tms/toolsStocktakingBound/list", |
| | | submit:"/tms/toolsStocktakingBound/submit", |
| | | delete: "/tms/toolsStocktakingBound/delete", |
| | | deleteBatch: "/tms/toolsStocktakingBound/deleteBatch", |
| | | exportXlsUrl: "/tms/toolsStocktakingBound/exportXls", |
| | | importExcelUrl: "tms/toolsStocktakingBound/importExcel", |
| | | |
| | | }, |
| | | dictOptions:{}, |
| | | mainId: '', |
| | | superFieldList:[], |
| | | selectedMainId: '', |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | computed: { |
| | | importExcelUrl: function(){ |
| | | return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; |
| | | } |
| | | }, |
| | | methods: { |
| | | clickThenSelect(record) { |
| | | return { |
| | | on: { |
| | | click: () => { |
| | | this.onSelectChange(record.id.split(','), [record]) |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | onClearSelected() { |
| | | this.selectedRowKeys = [] |
| | | this.selectionRows = [] |
| | | |
| | | this.selectedMainId = '' |
| | | }, |
| | | onSelectChange(selectedRowKeys, selectionRows) { |
| | | if (selectedRowKeys.length == 1) { |
| | | this.mainId = selectionRows[0]['id'] |
| | | } else { |
| | | this.mainId = '' |
| | | } |
| | | this.selectedRowKeys = selectedRowKeys |
| | | this.selectionRows = selectionRows |
| | | }, |
| | | handleTabChange(pagination, filters, sorter) { |
| | | this.selectedRowKeys = [] |
| | | this.$refs.toolStockingBoundDetail.dataSource = [] |
| | | this.handleTableChange(pagination, filters, sorter) |
| | | }, |
| | | handleDelete: function (id) { |
| | | if (!this.url.delete) { |
| | | this.$message.error('请设置url.delete屿§!') |
| | | return |
| | | } |
| | | deleteAction(this.url.delete, { id: id }).then((res) => { |
| | | if (res.success) { |
| | | //éæ°è®¡ç®å页é®é¢ |
| | | this.reCalculatePage(1) |
| | | this.$message.success(res.message) |
| | | this.$refs.toolStockingBoundDetail.dataSource = [] |
| | | this.loadData() |
| | | } else { |
| | | this.$message.warning(res.message) |
| | | } |
| | | }) |
| | | }, |
| | | handleSubmit(record) { |
| | | getAction(this.url.submit,{ id: record.id }).then((res)=>{ |
| | | if (res.success) { |
| | | this.$message.success(res.message); |
| | | this.loadData(); |
| | | this.$refs.toolStockingBoundDetail.clearList() |
| | | } else { |
| | | this.$message.warning(res.message); |
| | | } |
| | | }) |
| | | }, |
| | | searchQuery() { |
| | | this.selectedRowKeys = []; |
| | | this.$refs.toolStockingBoundDetail.loadData(); |
| | | this.$refs.toolStockingBoundDetail.selectedRowKeys = []; |
| | | this.loadData(); |
| | | }, |
| | | searchReset() { |
| | | this.queryParam = {} |
| | | this.selectedRowKeys = [] |
| | | this.$refs.toolStockingBoundDetail.dataSource = [] |
| | | this.loadData(); |
| | | }, |
| | | modalFormOk() { |
| | | this.queryParam = {} |
| | | this.selectedRowKeys = [] |
| | | this.$refs.toolStockingBoundDetail.dataSource = [] |
| | | this.loadData(); |
| | | }, |
| | | |
| | | handleEdit: function (record) { |
| | | |
| | | console.log('record:', record) |
| | | this.$refs.modalForm.title = 'ç¼è¾' |
| | | this.$refs.modalForm.disableSubmit = false |
| | | this.$refs.modalForm.edit(record) |
| | | |
| | | }, |
| | | handleDetail:function(record){ |
| | | |
| | | this.$refs.modalForm.title="详æ
"; |
| | | this.$refs.modalForm.disableSubmit = true; |
| | | this.$refs.modalForm.edit(record); |
| | | }, |
| | | handleAdd: function () { |
| | | this.$refs.modalForm.disableSubmit = false |
| | | this.$refs.modalForm.title = "æ°å¢å·¥å
·ç³è¯·å"; |
| | | this.$refs.modalForm.add(); |
| | | |
| | | console.log(this.$refs.modalForm.title); |
| | | |
| | | }, |
| | | |
| | | |
| | | initDictConfig(){ |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | @import '~@assets/less/common.less'; |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <!--æ¯æå
¨å±ç¼©æ¾--> |
| | | <a-modal :visible='visible' :title='title' switchFullscreen @ok='handleSubmit' @cancel='close' style='top:50px' |
| | | cancelText='å
³é' :width='1500'> |
| | | <a-card :bordered='false'> |
| | | <div class='table-page-search-wrapper'> |
| | | <a-form layout='inline' @keyup.enter.native='searchQuery'> |
| | | <a-row :gutter='24'> |
| | | <a-col :md='8' :sm='6'> |
| | | <a-form-item label='å·¥å
·ç¼ç '> |
| | | <j-input placeholder='请è¾å
¥å·¥å
·ç¼ç ' v-model='queryParam.toolCode' /> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md='3'> |
| | | <span style='float: left;overflow: hidden;' class='table-page-search-submitButtons'> |
| | | <a-button type='primary' @click='searchQuery' icon='search'>æ¥è¯¢</a-button> |
| | | <a-button @click='searchReset' icon='reload' style='margin-left: 10px'>éç½®</a-button> |
| | | </span> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | <a-table ref='table' :scroll='scrollTrigger' size='middle' rowKey='id' bordered :columns='columns' |
| | | :dataSource='dataSource' :pagination='ipagination' :rowSelection='rowSelection' :loading='loading' |
| | | @change='handleTableChange'> |
| | | |
| | | </a-table> |
| | | </a-card> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { filterObj } from '@/utils/util' |
| | | import { getAction } from '@/api/manage' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | |
| | | export default { |
| | | name: 'ToolSelectorModal', |
| | | mixins: [JeecgListMixin], |
| | | components: {}, |
| | | props: {}, |
| | | data() { |
| | | return { |
| | | queryParam: {}, |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key: 'rowIndex', |
| | | width: 60, |
| | | align: 'center', |
| | | customRender: (_, __, index) => parseInt(index) + 1 |
| | | }, |
| | | { |
| | | title: 'å·¥å
·ç¼ç ', |
| | | align: 'center', |
| | | dataIndex: 'toolCode' |
| | | }, |
| | | { |
| | | title: '䏿åç§°', |
| | | align: 'center', |
| | | dataIndex: 'chineseName' |
| | | }, |
| | | { |
| | | title: 'åå·/å¾å·', |
| | | align: 'center', |
| | | dataIndex: 'toolModel' |
| | | } |
| | | ], |
| | | selectedRowKeys: [], |
| | | oldSelectRows: [], |
| | | scrollTrigger: {}, |
| | | dataSource: [], |
| | | selectionRows: [], |
| | | title: 'æ ¹æ®æ¥è¯¢ç»æéæ©å·¥å
·', |
| | | ipagination: { |
| | | current: 1, |
| | | pageSize: 10, |
| | | pageSizeOptions: ['5', '10', '30', '50', '100'], |
| | | showTotal: (total, range) => { |
| | | return range[0] + '-' + range[1] + ' å
±' + total + 'æ¡' |
| | | }, |
| | | showQuickJumper: true, |
| | | showSizeChanger: true, |
| | | total: 0 |
| | | }, |
| | | isorter: { |
| | | column: 'createTime', |
| | | order: 'desc' |
| | | }, |
| | | visible: false, |
| | | loading: false, |
| | | url: { |
| | | list: '/tms/baseTools/listWithLedgerAndConfig' |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | rowSelection() { |
| | | return { |
| | | type: 'checkbox', |
| | | onChange: (selectedRowKeys, selectedRows) => { |
| | | this.selectedRowKeys = selectedRowKeys |
| | | this.onSelectChange(selectedRows) |
| | | }, |
| | | getCheckboxProps: record => ({ |
| | | props: { |
| | | disabled: record.distable |
| | | } |
| | | }), |
| | | selectedRowKeys: this.selectedRowKeys |
| | | } |
| | | } |
| | | }, |
| | | |
| | | methods: { |
| | | |
| | | async loadData(arg) { |
| | | if (arg === 1) { |
| | | this.ipagination.current = 1 |
| | | } |
| | | let that = this |
| | | this.loading = true |
| | | let params = this.getQueryParams()//æ¥è¯¢æ¡ä»¶ |
| | | await getAction(this.url.list, params).then((res) => { |
| | | if (res.success) { |
| | | for (let i = 0; i < res.result.records.length; i++) { |
| | | if (that.oldSelectRows.indexOf(res.result.records[i].id) > -1) { |
| | | res.result.records[i].distable = true |
| | | } else { |
| | | res.result.records[i].distable = false |
| | | } |
| | | } |
| | | this.dataSource = res.result.records |
| | | this.ipagination.total = res.result.total |
| | | } |
| | | if (res.code === 510) { |
| | | this.$message.warning(res.message) |
| | | } |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | |
| | | showModals(oldSelectRows) { |
| | | this.selectionRows = [] |
| | | this.oldSelectRows = oldSelectRows |
| | | this.visible = true |
| | | this.loadData(1) |
| | | }, |
| | | getQueryParams() { |
| | | let param = Object.assign({}, this.queryParam, this.isorter) |
| | | param.field = this.getQueryField() |
| | | param.pageNo = this.ipagination.current |
| | | param.pageSize = this.ipagination.pageSize |
| | | return filterObj(param) |
| | | }, |
| | | //æ¥è¯¢æ¡ä»¶å¤ç |
| | | getQueryField() { |
| | | let str = 'id,' |
| | | for (let a = 0; a < this.columns.length; a++) { |
| | | str += ',' + this.columns[a].dataIndex |
| | | } |
| | | return str |
| | | }, |
| | | searchReset(num) { |
| | | let that = this |
| | | this.queryParam = [] |
| | | if (num !== 0) { |
| | | that.loadData(1) |
| | | } |
| | | that.selectborrowIds = [] |
| | | }, |
| | | close() { |
| | | this.searchReset(0) |
| | | this.selectedRowKeys = [] |
| | | this.visible = false |
| | | }, |
| | | handleTableChange(pagination, filters, sorter) { |
| | | //TODO çé |
| | | |
| | | if (Object.keys(sorter).length > 0) { |
| | | this.isorter.column = sorter.field |
| | | this.isorter.order = 'ascend' === sorter.order ? 'asc' : 'desc' |
| | | } |
| | | this.ipagination = pagination |
| | | this.loadData() |
| | | }, |
| | | handleSubmit() { |
| | | this.$bus.$emit('selectionRows', this.selectionRows) |
| | | // this.searchReset(0) |
| | | this.close() |
| | | }, |
| | | onSelectChange(selectionRows) { |
| | | this.selectionRows = selectionRows |
| | | }, |
| | | searchQuery() { |
| | | this.loadData(1) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .ant-table-tbody .ant-table-row td { |
| | | padding-top: 10px; |
| | | padding-bottom: 10px; |
| | | } |
| | | |
| | | #components-layout-demo-custom-trigger .trigger { |
| | | font-size: 18px; |
| | | line-height: 64px; |
| | | padding: 0 24px; |
| | | cursor: pointer; |
| | | transition: color 0.3s; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal :title="title" :width="1500" :height="1500" :visible="visible" :maskClosable="false" @ok="handleOk" |
| | | cancelText="å
³é" |
| | | @cancel="handleCancel" :confirmLoading="confirmLoading"> |
| | | |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="çç¹åå·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderCode"> |
| | | <a-input :disabled="true" v-model="model.orderCode" placeholder="ç³»ç»èªå¨çæ"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="çç¹ç±»å" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approvalStatus"> |
| | | <j-dict-select-tag dictCode="stocktakingType" placeholder="è¯·éæ©çç¹ç±»å" v-model="model.stocktakingType" |
| | | :disabled="disableSubmit"></j-dict-select-tag> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item v-show="addShow" label="ç»æäºº" :labelCol="labelCol" :wrapperCol="wrapperCol" |
| | | prop="handler"> |
| | | <j-dict-select-tag dictCode="sys_user,realname,id" placeholder="è¯·éæ©ç»æäºº" v-model="model.handler" |
| | | :disabled="disableSubmit" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="å®¡æ ¸äºº" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reviewer"> |
| | | <j-select-user-by-dep :disabled="disableSubmit" v-model="model.reviewer" :store="'username'" |
| | | :text="'realname'" :multi="false" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="çç¹åç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="stocktakingName"> |
| | | <a-input v-model="model.stocktakingName" placeholder="请è¾å
¥çç¹åç§°"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | |
| | | <a-col :span="12"> |
| | | <a-form-model-item v-show="addShow" label="å®¡æ ¸ç¶æ" :labelCol="labelCol" :wrapperCol="wrapperCol" |
| | | prop="approvalStatus"> |
| | | <j-dict-select-tag dictCode="approval_status" placeholder="è¯·éæ©å®¡æ ¸ç¶æ" v-model="model.approvalStatus" |
| | | :disabled="true"></j-dict-select-tag> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item v-show="addShow" label="å®¡æ ¸æè§" :labelCol="labelCol" :wrapperCol="wrapperCol" |
| | | prop="approvalOpinion"> |
| | | <a-input v-model="model.approvalOpinion" placeholder="请è¾å
¥å®¡æ ¸æè§" type="textarea" |
| | | :disabled="model.approvalStatus==1"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="çç¹æ¶é´" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inventoryTime"> |
| | | <j-date placeholder="è¯·éæ©çç¹æ¶é´" date-format="YYYY-MM-DD HH:mm:ss" v-model="model.inventoryTime" |
| | | style="width: 100%" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="夿³¨" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark"> |
| | | <a-input v-model="model.remark" placeholder="请è¾å
¥å¤æ³¨" type="textarea"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </a-spin> |
| | | <a-button type="primary" :style="{ marginRight: '8px', marginBottom: '8px' }" :loading="confirmLoading" |
| | | :disabled="disableSubmit" @click="selectTools()">å·¥å
·æç» |
| | | </a-button> |
| | | <a-table ref="table" bordered size="middle" rowKey="id" :columns="columns" :dataSource="dataSource" |
| | | :scroll="{x:true}"> |
| | | <template v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index"> |
| | | <a-input-number :disabled="disableSubmit" :value="text" v-if="col.dataIndex == 'practicalQuantity'" :min="0" |
| | | :max="99999" |
| | | @change="(e) => handleChange(e, record.key, col, index)" style="width: 100%;" /> |
| | | <a-input-number :value="text" v-if="col.dataIndex == 'differenceValue'" :min="0" :max="99999" |
| | | :disabled="true" @change="(e) => handleChange(e, record.key, col, index)" |
| | | style="width: 100%;" /> |
| | | <j-dict-select-tag :value="text" v-if="col.dataIndex == 'surplusDeficit'" |
| | | dictCode="surplusDeficit" |
| | | :disabled="true" |
| | | style="width: 100%;" |
| | | @change="(e) => handleChange(e, record.key, col, index)" /> |
| | | <!-- <j-dict-select-tag :value="text" v-if="col.dataIndex == 'classifyId'"--> |
| | | <!-- dictCode="tms_tools_classify,type_name,id"--> |
| | | <!-- style="width: 100%;"--> |
| | | <!-- :disabled="true"--> |
| | | <!-- @change="(e) => handleChange(e, record.key, col, index)" />--> |
| | | <j-date |
| | | :value="text" |
| | | v-if="col.dataIndex == 'stocktakingDate'" |
| | | placeholder="éæ©çåºæ¶é´" |
| | | @change="(e) => handleChange(e, record.key, col, index)" |
| | | style="width: 100%;" |
| | | /> |
| | | |
| | | <a-textarea |
| | | v-if="col.dataIndex == 'remark'" |
| | | :disabled="disableSubmit" |
| | | style="margin: -5px 0" |
| | | :value="text" |
| | | @change="(e) => handleChange(e.target.value, record.key, col, index)" |
| | | /> |
| | | |
| | | </template> |
| | | |
| | | <span slot="action" slot-scope="text, record, index"> |
| | | <a-popconfirm title="ç¡®å®å é¤å?" @confirm="() => handleDelete(text, record, index)"> |
| | | <a :disabled="disableSubmit">å é¤</a> |
| | | </a-popconfirm> |
| | | </span> |
| | | </a-table> |
| | | <template slot="footer"> |
| | | <a-button :style="{ marginRight: '8px' }" @click="handleCancel()"> |
| | | å
³é |
| | | </a-button> |
| | | |
| | | <a-button @click="handleOk()" :disabled="disableSubmit" type="primary" :loading="confirmLoading">ç¡®å®</a-button> |
| | | </template> |
| | | <tool-selector-modal ref="toolsModalForm"></tool-selector-modal> |
| | | </a-modal> |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getAction, postAction, requestPut } from '@/api/manage' |
| | | import JMultiSelectTag from '@/components/dict/JMultiSelectTag' |
| | | import Tooltip from 'ant-design-vue/es/tooltip' |
| | | import ToolSelectorModal from '@views/tms/stocktakingBound/modules/ToolSelectorModal.vue' |
| | | |
| | | export default { |
| | | name: 'ToolsStocktakingBoundModal', |
| | | components: { |
| | | ToolSelectorModal, |
| | | JMultiSelectTag, |
| | | Tooltip |
| | | }, |
| | | data() { |
| | | |
| | | return { |
| | | addShow: true, |
| | | model: {}, |
| | | formDisabled: false, |
| | | pagination: { |
| | | current: 1, |
| | | pageSize: 10, |
| | | total: 0 |
| | | }, |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key: 'rowIndex', |
| | | align: 'center', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | | }, |
| | | width: 50 |
| | | }, |
| | | { |
| | | title: 'åå
·ç¼å·', |
| | | dataIndex: 'toolCode', |
| | | align: 'center', |
| | | width: 150 |
| | | }, |
| | | |
| | | { |
| | | title: 'å·¥å
፱Ȍ', |
| | | dataIndex: 'applicationType', |
| | | align: 'center', |
| | | width: 150 |
| | | }, |
| | | |
| | | { |
| | | title: '䏿åç§°', |
| | | dataIndex: 'chineseName', |
| | | width: 150, |
| | | align: 'center' |
| | | }, |
| | | |
| | | { |
| | | title: 'åå·/å¾å·', |
| | | dataIndex: 'toolModel', |
| | | width: 150, |
| | | align: 'center' |
| | | }, |
| | | |
| | | { |
| | | title: 'åå
·ææ', |
| | | width: 150, |
| | | dataIndex: 'toolMaterial', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: 'é¶ä»¶ææ', |
| | | width: 150, |
| | | dataIndex: 'partMaterial', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: 'åå®¶', |
| | | width: 150, |
| | | dataIndex: 'supplierId', |
| | | align: 'center' |
| | | |
| | | }, |
| | | { |
| | | title: 'åå¨ä½ç½®', |
| | | width: 150, |
| | | dataIndex: 'goodsShelvesId', |
| | | align: 'center' |
| | | |
| | | }, |
| | | { |
| | | title: 'è´¦é¢åºå', |
| | | width: 150, |
| | | dataIndex: 'bookQuantity', |
| | | align: 'center' |
| | | |
| | | }, |
| | | { |
| | | title: 'å¯ç¨æ°é', |
| | | width: 150, |
| | | dataIndex: 'availableQuantity', |
| | | align: 'center' |
| | | |
| | | }, |
| | | { |
| | | title: 'å®çæ°é', |
| | | dataIndex: 'practicalQuantity', |
| | | align: 'center', |
| | | width: 150, |
| | | scopedSlots: { customRender: 'practicalQuantity' } |
| | | }, |
| | | { |
| | | title: 'å·®å¼å¼', |
| | | dataIndex: 'differenceValue', |
| | | align: 'center', |
| | | width: 150, |
| | | scopedSlots: { customRender: 'differenceValue' } |
| | | }, |
| | | |
| | | { |
| | | title: 'çäºçç', |
| | | width: 150, |
| | | dataIndex: 'surplusDeficit', |
| | | align: 'center', |
| | | scopedSlots: { customRender: 'surplusDeficit' } |
| | | }, |
| | | |
| | | { |
| | | title: 'çåºæ¶é´', |
| | | width: 150, |
| | | dataIndex: 'stocktakingDate', |
| | | align: 'center', |
| | | scopedSlots: { customRender: 'stocktakingDate' } |
| | | }, |
| | | { |
| | | title: '夿³¨', |
| | | width: 150, |
| | | dataIndex: 'remark', |
| | | align: 'center', |
| | | scopedSlots: { customRender: 'remark' } |
| | | }, |
| | | { |
| | | title: 'æä½', |
| | | width: 150, |
| | | dataIndex: 'action', |
| | | scopedSlots: { customRender: 'action' }, |
| | | align: 'center' |
| | | } |
| | | ], |
| | | title: 'æä½', |
| | | visible: false, |
| | | disableSubmit: false, |
| | | codeDisable: true, |
| | | |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 6 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 18 } |
| | | }, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this), |
| | | validatorRules: { |
| | | orderCode: [ |
| | | { required: true, message: '请è¾å
¥çç¹åå·!' } |
| | | ], |
| | | handler: [ |
| | | { required: true, message: '请è¾å
¥ç»æäºº!' } |
| | | ], |
| | | stocktakingName: [ |
| | | { required: true, message: '请è¾å
¥çç¹åç§°!' } |
| | | ], |
| | | approvalStatus: [ |
| | | { required: true, message: '请è¾å
¥å®¡æ ¸ç¶æ!' } |
| | | ], |
| | | inventoryTime: [ |
| | | { required: true, message: '请è¾å
¥çç¹æ¶é´!' } |
| | | ] |
| | | }, |
| | | url: { |
| | | add: '/tms/toolsStocktakingBound/add', |
| | | edit: '/tms/toolsStocktakingBound/edit', |
| | | queryDetailList: '/tms/toolsStocktakingBound/listToolsStocktakingBoundControllerDetailsByMainId' |
| | | |
| | | }, |
| | | dataSource: [] |
| | | } |
| | | }, |
| | | |
| | | mounted() { |
| | | this.$bus.$on('selectionRows', (data) => { |
| | | for (let i = 0; i < data.length; i++) { |
| | | this.dataSource.push({ |
| | | toolId: data[i].id, |
| | | toolCode: data[i].toolCode, |
| | | classifyId: data[i].classifyId, |
| | | applicationType: data[i].applicationType_dictText, |
| | | chineseName: data[i].chineseName, |
| | | toolModel: data[i].toolModel, |
| | | material: data[i].material, |
| | | toolMaterial: data[i].toolMaterial, |
| | | partMaterial: data[i].partMaterial, |
| | | bookQuantity: data[i].totalCount, |
| | | supplierId: data[i].supplierId, |
| | | goodsShelvesId: data[i].positionCode |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | methods: { |
| | | selectTools: function() { |
| | | let ids = [] |
| | | for (let i = 0; i < this.dataSource.length; i++) { |
| | | ids.push(this.dataSource[i].partId) |
| | | } |
| | | this.$refs.toolsModalForm.showModals(ids) |
| | | this.$refs.toolsModalForm.title = '鿩工å
·ä¿¡æ¯' |
| | | this.$refs.toolsModalForm.disableSubmit = false |
| | | }, |
| | | add() { |
| | | this.addShow = false |
| | | this.edit() |
| | | }, |
| | | |
| | | edit(record) { |
| | | console.log(record) |
| | | console.log(this.auditFlag) |
| | | this.form.resetFields() |
| | | this.model = Object.assign({}, record) |
| | | this.visible = true |
| | | getAction(this.url.queryDetailList, { |
| | | stocktakingBoundId: record.id, |
| | | pageNo: 1, |
| | | pageSize: 99999 |
| | | }).then((res) => { |
| | | if (res.success) { |
| | | console.log(res.result.records) |
| | | this.dataSource = res.result.records |
| | | } else { |
| | | this.dataSource = null |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | |
| | | |
| | | close() { |
| | | this.$emit('close') |
| | | this.visible = false |
| | | }, |
| | | |
| | | handleCancel() { |
| | | this.model = {} |
| | | this.dataSource = [] |
| | | this.close() |
| | | }, |
| | | |
| | | handleOk() { |
| | | const that = this |
| | | let data = that.dataSource |
| | | for (let i = 0; i < data.length; i++) { |
| | | if (data[i].practicalQuantity == undefined || data[i].practicalQuantity == null || data[i].practicalQuantity == '') { |
| | | that.$message.warning('请è¾å
¥ç¬¬' + (i + 1) + 'è¡çå®çæ°éæ°æ®ï¼') |
| | | return false |
| | | } |
| | | } |
| | | this.form.validateFields((err, values) => { |
| | | if (!err) { |
| | | that.confirmLoading = true |
| | | let formData = Object.assign(this.model, values) |
| | | if (that.dataSource.length === 0) { |
| | | that.$message.warning('è¯·éæ©å·¥å
·ï¼') |
| | | that.confirmLoading = false |
| | | return |
| | | } |
| | | formData.toolsStocktakingBoundDetailList = that.dataSource |
| | | // formData.status = '0'; |
| | | let obj |
| | | if (!this.model.id) { |
| | | obj = postAction(this.url.add, formData) |
| | | } else { |
| | | obj = requestPut(this.url.edit, formData, { id: this.model.id }) |
| | | } |
| | | obj.then((res) => { |
| | | if (res.success) { |
| | | that.$message.success(res.message) |
| | | that.$emit('ok') |
| | | that.close() |
| | | } else { |
| | | that.$message.warning(res.message) |
| | | } |
| | | }).finally(() => { |
| | | that.confirmLoading = false |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | handleDelete(text, record, index) { |
| | | this.dataSource.splice(index, 1) |
| | | }, |
| | | |
| | | handleChange(value, key, column, index) { |
| | | let that = this |
| | | const temp = [...that.dataSource] |
| | | const target = temp.filter(item => key === item.key)[index] |
| | | if (target) { |
| | | // if (column.dataIndex == 'practicalQuantity') { |
| | | // target[column.dataIndex] = value |
| | | // } |
| | | if (column.dataIndex === 'practicalQuantity') { |
| | | target[column.dataIndex] = value |
| | | |
| | | // 计ç®å·®å¼å¼ |
| | | target.differenceValue = value - target.availableQuantity |
| | | |
| | | // æ ¹æ®å·®å¼å¼å¤æçäºçç |
| | | if (target.differenceValue > 0) { |
| | | target.surplusDeficit = 1 |
| | | } else if (target.differenceValue < 0) { |
| | | target.surplusDeficit = 2 |
| | | } else { |
| | | target.surplusDeficit = 0 |
| | | } |
| | | } |
| | | if (column.dataIndex == 'differenceValue') { |
| | | target[column.dataIndex] = value |
| | | } |
| | | if (column.dataIndex == 'classifyId') { |
| | | target[column.dataIndex] = value |
| | | } |
| | | if (column.dataIndex == 'surplusDeficit') { |
| | | target[column.dataIndex] = value // å设 value æ¯åç¬¦ä¸²æ ¼å¼çæ¥æ |
| | | } |
| | | if (column.dataIndex == 'stocktakingDate') { |
| | | target[column.dataIndex] = value // å设 value æ¯åç¬¦ä¸²æ ¼å¼çæ¥æ |
| | | } |
| | | if (column.dataIndex === 'remark') { |
| | | // 注æè¿é使ç¨çæ¯ e.target.value |
| | | target[column.dataIndex] = value |
| | | } |
| | | |
| | | that.dataSource = temp |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .frozenRowClass { |
| | | color: #c9c9c9; |
| | | } |
| | | |
| | | .fontweight { |
| | | font-weight: bold; |
| | | } |
| | | |
| | | .ant-btn { |
| | | padding: 0 10px; |
| | | margin-left: 3px; |
| | | } |
| | | |
| | | .ant-form-item-control { |
| | | line-height: 0px; |
| | | } |
| | | |
| | | /** 主表åè¡é´è· */ |
| | | .ant-form .ant-form-item { |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | /** Tab页é¢è¡é´è· */ |
| | | .ant-tabs-content .ant-form-item { |
| | | margin-bottom: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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 |
| | | :md="6" |
| | | :sm="8" |
| | | > |
| | | <a-form-item |
| | | label="å·¥å
·ç¼å·" |
| | | :labelCol="{span: 5}" |
| | | :wrapperCol="{span: 18, offset: 1}" |
| | | > |
| | | <a-input |
| | | placeholder="请è¾å
¥å·¥å
·ç¼ç æ£ç´¢" |
| | | v-model="queryParam.toolCode" |
| | | ></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col |
| | | :md="6" |
| | | :sm="8" |
| | | > |
| | | <a-form-item |
| | | label="åå®¶" |
| | | :labelCol="{span: 5}" |
| | | :wrapperCol="{span: 18, offset: 1}" |
| | | > |
| | | <a-input |
| | | placeholder="请è¾å
¥åå®¶æ£ç´¢" |
| | | v-model="queryParam.supplierId" |
| | | ></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col |
| | | :md="6" |
| | | :sm="8" |
| | | > |
| | | <a-form-item |
| | | label="æè´¨" |
| | | :labelCol="{span: 5}" |
| | | :wrapperCol="{span: 18, offset: 1}" |
| | | > |
| | | <a-input |
| | | placeholder="请è¾å
¥æè´¨æ£ç´¢" |
| | | v-model="queryParam.toolMaterial" |
| | | ></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col |
| | | :md="6" |
| | | :sm="8" |
| | | > |
| | | <a-form-item |
| | | label="åå
·è§æ ¼" |
| | | :labelCol="{span: 5}" |
| | | :wrapperCol="{span: 18, offset: 1}" |
| | | > |
| | | <a-input |
| | | placeholder="请è¾å
¥åå
·è§æ ¼æ£ç´¢" |
| | | v-model="queryParam.toolModel" |
| | | ></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="6" :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 --> |
| | | |
| | | <!-- æä½æé®åºå --> |
| | | <div class="table-operator"> |
| | | <!-- <a-button @click="handleAdd" type="primary" icon="plus">æ°å¢</a-button>--> |
| | | <!-- <a-button type="primary" icon="download" @click="handleExportXls('tms_store_early warning')">导åº</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-menu slot="overlay"> |
| | | <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>å é¤</a-menu-item> |
| | | </a-menu> |
| | | <a-button style="margin-left: 8px"> æ¹éæä½ <a-icon type="down" /></a-button> |
| | | </a-dropdown> |
| | | </div> |
| | | |
| | | <!-- tableåºå-begin --> |
| | | <div> |
| | | <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> |
| | | <i class="anticon anticon-info-circle ant-alert-icon"></i> 已鿩 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 |
| | | <a style="margin-left: 24px" @click="onClearSelected">æ¸
空</a> |
| | | </div> |
| | | |
| | | <a-table |
| | | ref="table" |
| | | size="middle" |
| | | :scroll="{x:true}" |
| | | bordered |
| | | rowKey="id" |
| | | :columns="columns" |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" |
| | | 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-dropdown> |
| | | <a class="ant-dropdown-link">æ´å¤ <a-icon type="down" /></a> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item> |
| | | <a @click="handleDetail(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> |
| | | </div> |
| | | |
| | | <tools-store-early-warning-modal ref="modalForm" @ok="modalFormOk"></tools-store-early-warning-modal> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import '@/assets/less/TableExpand.less' |
| | | import { mixinDevice } from '@/utils/mixin' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import ToolsStoreEarlyWarningModal from './modules/ToolsStoreEarlyWarningModal.vue' |
| | | |
| | | export default { |
| | | name: 'TmsStoreEarlyWarningList', |
| | | mixins:[JeecgListMixin, mixinDevice], |
| | | components: { |
| | | ToolsStoreEarlyWarningModal |
| | | }, |
| | | data () { |
| | | return { |
| | | description: 'tms_store_early warning管ç页é¢', |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key:'rowIndex', |
| | | width:60, |
| | | align:"center", |
| | | customRender:function (t,r,index) { |
| | | return parseInt(index)+1; |
| | | } |
| | | }, |
| | | { |
| | | title:'ç¼ç ', |
| | | align:"center", |
| | | dataIndex: 'classifyId' |
| | | }, |
| | | { |
| | | title:'åç§°', |
| | | align:"center", |
| | | dataIndex: 'toolName' |
| | | }, |
| | | { |
| | | title:'å·¥å
፱Ȍ', |
| | | align:"center", |
| | | dataIndex: 'toolType' |
| | | }, |
| | | { |
| | | title:'è§æ ¼', |
| | | align:"center", |
| | | dataIndex: 'toolModel' |
| | | }, |
| | | { |
| | | title:'æè´¨', |
| | | align:"center", |
| | | dataIndex: 'supplierId' |
| | | }, |
| | | { |
| | | title:'åå¨ä½ç½®', |
| | | align:"center", |
| | | dataIndex: 'goodsShelvesId' |
| | | }, |
| | | { |
| | | title:'åå®¶', |
| | | align:"center", |
| | | dataIndex: 'supplierId' |
| | | }, |
| | | { |
| | | title:'åºåä¸é', |
| | | align:"center", |
| | | dataIndex: 'highestInventory' |
| | | }, |
| | | { |
| | | title:'åºåä¸é', |
| | | align:"center", |
| | | dataIndex: 'lowerInventory' |
| | | }, |
| | | { |
| | | title:'æ»åºåæ°é', |
| | | align:"center", |
| | | dataIndex: 'totalCount' |
| | | }, |
| | | { |
| | | title:'å¯ç¨åºåæ°é', |
| | | align:"center", |
| | | dataIndex: 'availableQuantity' |
| | | }, |
| | | { |
| | | title:'ç¶æ;', |
| | | align:"center", |
| | | dataIndex: 'status' |
| | | }, |
| | | { |
| | | title:'夿³¨', |
| | | align:"center", |
| | | dataIndex: 'remark' |
| | | }, |
| | | ], |
| | | url: { |
| | | list: "tms/toolsStoreEarlyWarning/list", |
| | | delete: "tms/toolsStoreEarlyWarning/delete", |
| | | deleteBatch: "tools/tmsStoreEarlyWarning/deleteBatch", |
| | | exportXlsUrl: "tools/tmsStoreEarlyWarning/exportXls", |
| | | importExcelUrl: "toolsStoreEarlyWarning/importExcel", |
| | | |
| | | }, |
| | | dictOptions:{}, |
| | | superFieldList:[], |
| | | } |
| | | }, |
| | | created() { |
| | | this.getSuperFieldList(); |
| | | }, |
| | | computed: { |
| | | importExcelUrl: function(){ |
| | | return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; |
| | | }, |
| | | }, |
| | | methods: { |
| | | initDictConfig(){ |
| | | }, |
| | | getSuperFieldList(){ |
| | | let fieldList=[]; |
| | | fieldList.push({type:'string',value:'toolCode',text:'ç¼ç ',dictCode:''}) |
| | | fieldList.push({type:'string',value:'toolName',text:'åç§°',dictCode:''}) |
| | | fieldList.push({type:'string',value:'toolType',text:'å·¥å
፱Ȍ',dictCode:''}) |
| | | fieldList.push({type:'string',value:'toolModel',text:'è§æ ¼',dictCode:''}) |
| | | fieldList.push({type:'string',value:'supplierId',text:'æè´¨',dictCode:''}) |
| | | fieldList.push({type:'string',value:'goodsShelvesId',text:'åå¨ä½ç½®',dictCode:''}) |
| | | fieldList.push({type:'string',value:'toolModel',text:'åå·/å¾å·',dictCode:''}) |
| | | fieldList.push({type:'string',value:'supplierId',text:'åå®¶',dictCode:''}) |
| | | fieldList.push({type:'string',value:'toolMaterial',text:'æè´¨',dictCode:''}) |
| | | fieldList.push({type:'string',value:'totalCount',text:'æ»åºåæ°é',dictCode:''}) |
| | | fieldList.push({type:'string',value:'availableQuantity',text:'å¯ç¨åºåæ°é',dictCode:''}) |
| | | fieldList.push({type:'BigDecimal',value:'lowerInventory',text:'åºåä¸é',dictCode:''}) |
| | | fieldList.push({type:'string',value:'highestInventory',text:'åºåä¸é',dictCode:''}) |
| | | fieldList.push({type:'string',value:'status',text:'ç¶æ;',dictCode:''}) |
| | | fieldList.push({type:'string',value:'remark',text:'夿³¨',dictCode:''}) |
| | | fieldList.push({type:'string',value:'tenantId',text:'ç§æ·å·',dictCode:''}) |
| | | this.superFieldList = fieldList |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | @import '~@assets/less/common.less'; |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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="8"> |
| | | <a-form-model-item label="åç±»ç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="classifyId"> |
| | | <a-input v-model="model.classifyId" placeholder="请è¾å
¥åç±»ç¼å·" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="䏿åç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="chineseName"> |
| | | <a-input v-model="model.chineseName" placeholder="请è¾å
¥ä¸æåç§°" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="è±æåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="foreignLanguageName"> |
| | | <a-input v-model="model.foreignLanguageName" placeholder="请è¾å
¥è±æåç§°" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="å·¥å
·ç±»å;1.éç¨ |
| | | 2.ä¸ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applicationType"> |
| | | <a-input v-model="model.applicationType" placeholder="请è¾å
¥å·¥å
·ç±»å;1.éç¨ |
| | | 2.ä¸ç¨" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="æ å级å«" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="standardLevel"> |
| | | <a-input v-model="model.standardLevel" placeholder="请è¾å
¥æ å级å«" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="æ åå·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="standardCode"> |
| | | <a-input v-model="model.standardCode" placeholder="请è¾å
¥æ åå·" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="åå·/å¾å·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="toolModel"> |
| | | <a-input v-model="model.toolModel" placeholder="请è¾å
¥åå·/å¾å·" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="åå®¶" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="supplierId"> |
| | | <a-input v-model="model.supplierId" placeholder="请è¾å
¥åå®¶" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="ä»åºç份åå¸" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="provinceCity"> |
| | | <a-input v-model="model.provinceCity" placeholder="请è¾å
¥ä»åºç份åå¸" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="åºåº/åºå·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="warehouseId"> |
| | | <a-input v-model="model.warehouseId" placeholder="请è¾å
¥åºåº/åºå·" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="åºä½å·;ç±åºåº+å±+æ+åç»æï¼å¯ä»¥æ¯å¤ä¸ªåºä½å·ä»¥è±æç¹å·åå²çå符串ã" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="positionCode"> |
| | | <a-input v-model="model.positionCode" placeholder="请è¾å
¥åºä½å·;ç±åºåº+å±+æ+åç»æï¼å¯ä»¥æ¯å¤ä¸ªåºä½å·ä»¥è±æç¹å·åå²çå符串ã" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="åå¨ä½ç½®ï¼åé£ä¸ªååºçåºï¼" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="storageLocation"> |
| | | <a-input v-model="model.storageLocation" placeholder="请è¾å
¥åå¨ä½ç½®ï¼åé£ä¸ªååºçåºï¼" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="计é主åä½" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="mainUnit"> |
| | | <a-input v-model="model.mainUnit" placeholder="请è¾å
¥è®¡é主åä½" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="计éè¾
åä½" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="auxiliaryUnit"> |
| | | <a-input v-model="model.auxiliaryUnit" placeholder="请è¾å
¥è®¡éè¾
åä½" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="计é主å使°é" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="mainCount"> |
| | | <a-input v-model="model.mainCount" placeholder="请è¾å
¥è®¡é主å使°é" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="计éè¾
å使°é" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="auxiliaryCount"> |
| | | <a-input v-model="model.auxiliaryCount" placeholder="请è¾å
¥è®¡éè¾
å使°é" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="æ¯å¦æè®¡éè¾
åä½;1,æè¾
å©åä½2.æ è¾
å©åä½" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="auxiliaryUnitFlag"> |
| | | <a-input v-model="model.auxiliaryUnitFlag" placeholder="请è¾å
¥æ¯å¦æè®¡éè¾
åä½;1,æè¾
å©åä½2.æ è¾
å©åä½" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="åä»·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="price"> |
| | | <a-input-number v-model="model.price" placeholder="请è¾å
¥åä»·" style="width: 100%" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="æä½åºå" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="lowerInventory"> |
| | | <a-input-number v-model="model.lowerInventory" placeholder="请è¾å
¥æä½åºå" style="width: 100%" /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="æé«åºå" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="highestInventory"> |
| | | <a-input v-model="model.highestInventory" placeholder="请è¾å
¥æé«åºå" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="ç¶æ;1.å¯ç¨ |
| | | 2.æªå¯ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="status"> |
| | | <a-input v-model="model.status" placeholder="请è¾å
¥ç¶æ;1.å¯ç¨ |
| | | 2.æªå¯ç¨" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="夿³¨" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark"> |
| | | <a-input v-model="model.remark" placeholder="请è¾å
¥å¤æ³¨" ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="ç§æ·å·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="tenantId"> |
| | | <a-input v-model="model.tenantId" placeholder="请è¾å
¥ç§æ·å·" ></a-input> |
| | | </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: 'TmsStoreEarlyWarningForm', |
| | | 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: { |
| | | classifyId: [ |
| | | { required: true, message: '请è¾å
¥åç±»ç¼å·!'}, |
| | | ], |
| | | }, |
| | | url: { |
| | | add: "/org.jeecg.modules.tms/tmsStoreEarlyWarning/add", |
| | | edit: "/org.jeecg.modules.tms/tmsStoreEarlyWarning/edit", |
| | | queryById: "/org.jeecg.modules.tms/tmsStoreEarlyWarning/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> |
| | | <j-modal |
| | | :title="title" |
| | | :width="width" |
| | | :visible="visible" |
| | | switchFullscreen |
| | | @ok="handleOk" |
| | | :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" |
| | | @cancel="handleCancel" |
| | | cancelText="å
³é"> |
| | | <tms-store-early-warning-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></tms-store-early-warning-form> |
| | | </j-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import TmsStoreEarlyWarningForm from './ToolsStoreEarlyWarningForm.vue' |
| | | export default { |
| | | name: 'TmsStoreEarlyWarningModal', |
| | | components: { |
| | | TmsStoreEarlyWarningForm |
| | | }, |
| | | data () { |
| | | return { |
| | | title:'', |
| | | width:1024, |
| | | 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> |