From bd7884c3ec972c367bbb360d4e02460b5997706a Mon Sep 17 00:00:00 2001 From: liuying <1427574514@qq.com> Date: 周二, 23 4月 2024 16:45:27 +0800 Subject: [PATCH] 物料 --- iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/index.vue | 11 iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue | 154 +++++++ iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsFactory/index.vue | 897 +++++++++++++++++++++++--------------------- iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addForm.vue | 136 ++++++ 4 files changed, 767 insertions(+), 431 deletions(-) diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsFactory/index.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsFactory/index.vue index db1ae51..e7dc390 100644 --- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsFactory/index.vue +++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsFactory/index.vue @@ -1,463 +1,500 @@ 锘�<template> <div ref="boxOutWrap" class="boxOutWrap"> - <div ref="boxForm" class="boxForm"> - <a-card :bordered="false" :bodyStyle="tstyle"> - - <div class="table-page-search-wrapper" v-if="hasPerm('WmsFactory:page')"> - <a-form layout="inline"> - <a-row :gutter="48"> - <a-col :md="8" :sm="24"> - <a-form-item label="缂栧彿"> - <a-input v-model="queryParam.factoryCode" allow-clear placeholder="璇疯緭鍏ョ紪鍙�"/> - </a-form-item> - </a-col> - <a-col :md="8" :sm="24"> - <a-form-item label="鍚嶇О"> - <a-input v-model="queryParam.factoryName" allow-clear placeholder="璇疯緭鍏ュ悕绉�"/> - </a-form-item> - </a-col><template v-if="advanced"> + <div ref="boxForm" class="boxForm"> + <a-card :bordered="false" :bodyStyle="tstyle"> + <div class="table-page-search-wrapper" v-if="hasPerm('WmsFactory:page')"> + <a-form layout="inline"> + <a-row :gutter="48"> <a-col :md="8" :sm="24"> - <a-form-item label="鍦板潃"> - <a-input v-model="queryParam.factoryAddress" allow-clear placeholder="璇疯緭鍏ュ湴鍧�"/> - </a-form-item> - </a-col> - <a-col :md="8" :sm="24"> - <a-form-item label="鏄惁绂佺敤"> - <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isDisabled" placeholder="璇烽�夋嫨鏄惁绂佺敤"> - <a-select-option v-for="(item,index) in isDisabledData" :key="index" :value="item.code">{{ item.name }}</a-select-option> - </a-select> - </a-form-item> - </a-col> - <!--骞存湀鏃ユ椂鍒嗙--> - <!--鏃堕棿鑼冨洿--> - - <a-col :md="8" :sm="24"> - <a-form-item label="鍒涘缓鏃堕棿"> - <a-range-picker style="width: 100%" :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" :show-time="{ -format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.createdTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangecreatedTime"/> - - </a-form-item> - </a-col> - <!--骞存湀鏃ユ椂鍒嗙--> - <!--鏃堕棿鑼冨洿--> - - <a-col :md="8" :sm="24"> - <a-form-item label="鏇存柊鏃堕棿"> - <a-range-picker style="width: 100%" :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" :show-time="{ -format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.updatedTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangeupdatedTime"/> - - </a-form-item> - </a-col> - - <a-col :md="8" :sm="24"> - <a-form-item label="鍒涘缓鑰呭悕绉�"> - <a-input v-model="queryParam.createdUserName" allow-clear placeholder="璇疯緭鍏ュ垱寤鸿�呭悕绉�"/> + <a-form-item label="缂栧彿"> + <a-input v-model="queryParam.factoryCode" allow-clear placeholder="璇疯緭鍏ョ紪鍙�" /> </a-form-item> </a-col> <a-col :md="8" :sm="24"> - <a-form-item label="淇敼鑰呭悕绉�"> - <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="璇疯緭鍏ヤ慨鏀硅�呭悕绉�"/> - </a-form-item> - </a-col> </template> + <a-form-item label="鍚嶇О"> + <a-input v-model="queryParam.factoryName" allow-clear placeholder="璇疯緭鍏ュ悕绉�" /> + </a-form-item> </a-col + ><template v-if="advanced"> + <a-col :md="8" :sm="24"> + <a-form-item label="鍦板潃"> + <a-input v-model="queryParam.factoryAddress" allow-clear placeholder="璇疯緭鍏ュ湴鍧�" /> + </a-form-item> + </a-col> + <a-col :md="8" :sm="24"> + <a-form-item label="鏄惁绂佺敤"> + <a-select + :allowClear="true" + style="width: 100%" + v-model="queryParam.isDisabled" + placeholder="璇烽�夋嫨鏄惁绂佺敤" + > + <a-select-option v-for="(item, index) in isDisabledData" :key="index" :value="item.code">{{ + item.name + }}</a-select-option> + </a-select> + </a-form-item> + </a-col> + <!--骞存湀鏃ユ椂鍒嗙--> + <!--鏃堕棿鑼冨洿--> - <a-col :md="8" :sm="24" > - <span class="table-page-search-submitButtons"> - <a-button type="primary" @click="$refs.table.refresh(true)" >鏌ヨ</a-button> - <a-button style="margin-left: 8px" @click="() => queryParam = {}">閲嶇疆</a-button> - <a @click="toggleAdvanced" style="margin-left: 8px"> {{ advanced ? '鏀惰捣' : '灞曞紑' }} - <a-icon :type="advanced ? 'up' : 'down'"/> - </a> - </span> - </a-col> + <a-col :md="8" :sm="24"> + <a-form-item label="鍒涘缓鏃堕棿"> + <a-range-picker + style="width: 100%" + :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" + :show-time="{ + format: 'HH:mm:ss', + defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')] + }" + v-model="queryParam.createdTime" + value-format="YYYY-MM-DD HH:mm:ss" + format="YYYY-MM-DD HH:mm:ss" + @change="onChangecreatedTime" + /> + </a-form-item> + </a-col> + <!--骞存湀鏃ユ椂鍒嗙--> + <!--鏃堕棿鑼冨洿--> - </a-row> - </a-form> - </div> - </a-card> - </div> + <a-col :md="8" :sm="24"> + <a-form-item label="鏇存柊鏃堕棿"> + <a-range-picker + style="width: 100%" + :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" + :show-time="{ + format: 'HH:mm:ss', + defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')] + }" + v-model="queryParam.updatedTime" + value-format="YYYY-MM-DD HH:mm:ss" + format="YYYY-MM-DD HH:mm:ss" + @change="onChangeupdatedTime" + /> + </a-form-item> + </a-col> + + <a-col :md="8" :sm="24"> + <a-form-item label="鍒涘缓鑰呭悕绉�"> + <a-input v-model="queryParam.createdUserName" allow-clear placeholder="璇疯緭鍏ュ垱寤鸿�呭悕绉�" /> + </a-form-item> + </a-col> + <a-col :md="8" :sm="24"> + <a-form-item label="淇敼鑰呭悕绉�"> + <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="璇疯緭鍏ヤ慨鏀硅�呭悕绉�" /> + </a-form-item> + </a-col> + </template> + + <a-col :md="8" :sm="24"> + <span class="table-page-search-submitButtons"> + <a-button type="primary" @click="$refs.table.refresh(true)">鏌ヨ</a-button> + <a-button style="margin-left: 8px" @click="() => (queryParam = {})">閲嶇疆</a-button> + <a @click="toggleAdvanced" style="margin-left: 8px"> + {{ advanced ? '鏀惰捣' : '灞曞紑' }} + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </span> + </a-col> + </a-row> + </a-form> + </div> + </a-card> + </div> <a-card :bordered="false"> <s-table ref="table" :columns="columns" :data="loadData" :alert="true" - @changeTablePage="pageInfo = $event" - :scroll="{x: true,y:tableHeight}" - :rowKey="(record) => record.id" - :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"> - <template class="table-operator" slot="operator" v-if="hasPerm('WmsFactory:add')" > - <div ref="actionBar" class="actionBar"> - <a-button type="info" v-if="hasPerm('sysExcelTemplate:importExcel')" icon="upload" @click="$refs.excelForm.index()"> - 瀵煎叆 - </a-button> - <a-button type="info" v-if="hasPerm('WmsFactory:exportExcel')" icon="download" @click="WmsFactoryToExcel()"> - 瀵煎嚭 - </a-button> - <a-button type="primary" v-if="hasPerm('WmsFactory:add')" icon="plus" @click="$refs.addForm.add()">鏂板宸ュ巶淇℃伅琛�</a-button> - </div> - </template> - <span slot="isDisabledscopedSlots" slot-scope="text"> - <div v-if="text===true "> - <a-tag color="green">鏄�</a-tag> - </div> - <div v-else-if="text==false"> - <a-tag color="volcano">鍚�</a-tag> - </div> - <div v-else=""></div> - </span> - <span slot="action" slot-scope="text, record"> - - <a v-if="hasPerm('WmsFactory:edit')" @click="$refs.editForm.edit(record)">缂栬緫</a> - <a-divider type="vertical" v-if="hasPerm('WmsFactory:edit') & hasPerm('WmsFactory:delete')"/> - <a-popconfirm v-if="hasPerm('WmsFactory:delete')" placement="topRight" title="纭鍒犻櫎锛�" @confirm="() => WmsFactoryDelete(record)"> + @changeTablePage="pageInfo = $event" + :scroll="{ x: true, y: tableHeight }" + :rowKey="record => record.id" + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" + > + <template class="table-operator" slot="operator" v-if="hasPerm('WmsFactory:add')"> + <div ref="actionBar" class="actionBar"> + <a-button + type="info" + v-if="hasPerm('sysExcelTemplate:importExcel')" + icon="upload" + @click="$refs.excelForm.index()" + > + 瀵煎叆 + </a-button> + <a-button type="info" v-if="hasPerm('WmsFactory:exportExcel')" icon="download" @click="WmsFactoryToExcel()"> + 瀵煎嚭 + </a-button> + <a-button type="primary" v-if="hasPerm('WmsFactory:add')" icon="plus" @click="$refs.addForm.add()" + >鏂板宸ュ巶淇℃伅琛�</a-button + > + </div> + </template> + <span slot="isDisabledscopedSlots" slot-scope="text"> + <div v-if="text === true"> + <a-tag color="green">鏄�</a-tag> + </div> + <div v-else-if="text == false"> + <a-tag color="volcano">鍚�</a-tag> + </div> + <div v-else=""></div> + </span> + <span slot="action" slot-scope="text, record"> + <a v-if="hasPerm('WmsFactory:edit')" @click="$refs.editForm.edit(record)">缂栬緫</a> + <a-divider type="vertical" v-if="hasPerm('WmsFactory:edit') & hasPerm('WmsFactory:delete')" /> + <a-popconfirm + v-if="hasPerm('WmsFactory:delete')" + placement="topRight" + title="纭鍒犻櫎锛�" + @confirm="() => WmsFactoryDelete(record)" + > <a>鍒犻櫎</a> </a-popconfirm> </span> </s-table> <add-form ref="addForm" @ok="handleOk" /> <edit-form ref="editForm" @ok="handleOk" /> - <excel-form ref="excelForm" @ok="handleOk" /> + <excel-form ref="excelForm" @ok="handleOk" /> </a-card> </div> </template> <script> - import { STable } from '@/components' - import moment from 'moment' - import { WmsFactoryPage, WmsFactoryDelete, WmsFactoryToExcel } from '@/api/modular/main/WmsBase/WmsFactoryManage' - //鑷畾涔塼able楂樺害 - import setTableHtMixin from '@/mixins/handleTableHt.js' - import addForm from './addForm.vue' - import { exportExcel } from '@/utils/exportToExcel' - import { downloadFile } from '@/utils/util' - import editForm from './editForm.vue' - import excelForm from './excelForm.vue' - export default { - mixins: [setTableHtMixin], - components: { - STable, - addForm, - editForm, - excelForm - }, - data () { - return { - advanced: false, // 楂樼骇鎼滅储 灞曞紑/鍏抽棴 - queryParam: {}, - pageInfo: { +import { STable } from '@/components' +import moment from 'moment' +import { WmsFactoryPage, WmsFactoryDelete, WmsFactoryToExcel } from '@/api/modular/main/WmsBase/WmsFactoryManage' +//鑷畾涔塼able楂樺害 +import setTableHtMixin from '@/mixins/handleTableHt.js' +import addForm from './addForm.vue' +import { exportExcel } from '@/utils/exportToExcel' +import { downloadFile } from '@/utils/util' +import editForm from './editForm.vue' +import excelForm from './excelForm.vue' +export default { + mixins: [setTableHtMixin], + components: { + STable, + addForm, + editForm, + excelForm + }, + data() { + return { + advanced: false, // 楂樼骇鎼滅储 灞曞紑/鍏抽棴 + queryParam: {}, + pageInfo: { current: 1, pageSize: 10 }, - columns: [ - { - title:'搴忓彿', - width: '60px', - align: 'center', - customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}` - }, - { - title: '缂栧彿', - align: 'center', - customHeaderCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - customCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - sorter: true, - dataIndex: 'factoryCode' - }, - { - title: '鍚嶇О', - align: 'center', - customHeaderCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - customCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - sorter: true, - dataIndex: 'factoryName' - }, - { - title: '鍦板潃', - align: 'center', - customHeaderCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - customCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - sorter: true, - dataIndex: 'factoryAddress' - }, - { - title: '鏄惁绂佺敤', - align: 'center', - customHeaderCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - customCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - sorter: true, - dataIndex: 'isDisabled', - scopedSlots: { customRender: 'isDisabledscopedSlots' } - }, - { - title: '鍒涘缓鏃堕棿', - align: 'center', - customHeaderCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - customCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - sorter: true, - dataIndex: 'createdTime' - }, - { - title: '鏇存柊鏃堕棿', - align: 'center', - customHeaderCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - customCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - sorter: true, - dataIndex: 'updatedTime' - }, - { - title: '鍒涘缓鑰呭悕绉�', - align: 'center', - customHeaderCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - customCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - sorter: true, - dataIndex: 'createdUserName' - }, - { - title: '淇敼鑰呭悕绉�', - align: 'center', - customHeaderCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - customCell: () => { - return { - style: { - 'min-width': '120px'//鏈�灏忓垪瀹借缃� - } - } - }, - sorter: true, - dataIndex: 'updatedUserName' - } - ], - tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' }, - // 鍔犺浇鏁版嵁鏂规硶 蹇呴』涓� Promise 瀵硅薄 - loadData: parameter => { - return WmsFactoryPage(Object.assign(parameter, this.switchingDate())).then((res) => { - return res.data - }) - }, - selectedRowKeys: [], - selectedRows: [] - } - }, - created () { - if (this.hasPerm('WmsFactory:edit') || this.hasPerm('WmsFactory:delete')) { - this.columns.push({ - title: '鎿嶄綔', - width: '150px', - dataIndex: 'action', - scopedSlots: { customRender: 'action' } - }) - } - const path = this.$route.path - const columnStr = window.localStorage.getItem(path) - if(columnStr) { - var _columns = JSON.parse(columnStr) - this.columns.forEach(element => { - var fObj = _columns.find((item, index) => { - return item.dataIndex === element.dataIndex; - }) - if(fObj!=undefined && fObj!=null){ - element.checked=fObj.checked; - } - }); - } - const isDisabledOption = this.$options - this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false') + columns: [ + { + title: '搴忓彿', + width: '60px', + align: 'center', + customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}` + }, + { + title: '缂栧彿', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'factoryCode' + }, + { + title: '鍚嶇О', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'factoryName' + }, + { + title: '鍦板潃', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'factoryAddress' + }, + { + title: '鏄惁绂佺敤', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'isDisabled', + scopedSlots: { customRender: 'isDisabledscopedSlots' } + }, + { + title: '鍒涘缓鏃堕棿', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'createdTime' + }, + { + title: '鏇存柊鏃堕棿', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'updatedTime' + }, + { + title: '鍒涘缓鑰呭悕绉�', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'createdUserName' + }, + { + title: '淇敼鑰呭悕绉�', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px' //鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'updatedUserName' + } + ], + tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' }, + // 鍔犺浇鏁版嵁鏂规硶 蹇呴』涓� Promise 瀵硅薄 + loadData: parameter => { + return WmsFactoryPage(Object.assign(parameter, this.switchingDate())).then(res => { + return res.data + }) + }, + selectedRowKeys: [], + selectedRows: [] + } + }, + created() { + if (this.hasPerm('WmsFactory:edit') || this.hasPerm('WmsFactory:delete')) { + this.columns.push({ + title: '鎿嶄綔', + width: '150px', + dataIndex: 'action', + scopedSlots: { customRender: 'action' } + }) + } + const path = this.$route.path + const columnStr = window.localStorage.getItem(path) + if (columnStr) { + var _columns = JSON.parse(columnStr) + this.columns.forEach(element => { + var fObj = _columns.find((item, index) => { + return item.dataIndex === element.dataIndex + }) + if (fObj != undefined && fObj != null) { + element.checked = fObj.checked + } + }) + } + const isDisabledOption = this.$options + this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false') - this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害 - window.addEventListener( - 'resize', - () => { - this.handleTableHt() // 鐩戝惉灞忓箷澶у皬鏀瑰彉琛ㄦ牸楂樺害 - }, - false - ) - - }, - methods: { - moment, - /** - * 鏌ヨ鍙傛暟缁勮 - */ - switchingDate () { - const obj = JSON.parse(JSON.stringify(this.queryParam)) - return obj - }, - WmsFactoryDelete (record) { - WmsFactoryDelete(record).then((res) => { - if (res.success) { - this.$message.success('鍒犻櫎鎴愬姛') - this.$refs.table.refresh() - } else { - this.$message.error('鍒犻櫎澶辫触') // + res.message - } - }) - }, + this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害 + window.addEventListener( + 'resize', + () => { + this.handleTableHt() // 鐩戝惉灞忓箷澶у皬鏀瑰彉琛ㄦ牸楂樺害 + }, + false + ) + }, + methods: { + moment, + /** + * 鏌ヨ鍙傛暟缁勮 + */ + switchingDate() { + const obj = JSON.parse(JSON.stringify(this.queryParam)) + return obj + }, + WmsFactoryDelete(record) { + WmsFactoryDelete(record).then(res => { + if (res.success) { + this.$message.success('鍒犻櫎鎴愬姛') + this.$refs.table.refresh() + } else { + this.$message.error('鍒犻櫎澶辫触') // + res.message + } + }) + }, + WmsFactoryToExcel() { + this.loading = true + let entozh = {} + const path = this.$route.path + if (window.localStorage.getItem(path)) { + JSON.parse(window.localStorage.getItem(path)).forEach(item => { + if (item.dataIndex != 'action' && item.checked) { + entozh[item.dataIndex] = item.title + } + }) + } else { + //鐩存帴鐐瑰鍑� + this.columns.forEach(item => { + if (item.dataIndex != 'action') { + entozh[item.dataIndex] = item.title + } + }) + } + WmsFactoryPage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)) + .then(res => { + this.loading = false + //闇�瑕佹埅鍙栨棩鏈熺殑瀛楁 + var arrDataCutout = this.columns.filter(v => v.customCutout == true) + res.data.rows.forEach(item => { + var arrKeys = Object.keys(item) + arrKeys.forEach(key => { + var strFieldDic = key + 'Data' + //鏋氫妇杞�� + if (this[strFieldDic] && this[strFieldDic].length > 0) { + let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key])) + if (arrFieldDic.length > 0) { + item[key] = arrFieldDic[0]?.name || '娌℃湁鏋氫妇鍊�' + } + } + // 鏃ユ湡鎴彇 + if (arrDataCutout.length > 0) { + arrDataCutout.forEach(itemIn => { + if (key == itemIn.dataIndex && item[key]) { + item[key] = item[key].split(' ')[0] + } + }) + } + }) + }) + exportExcel(res.data.rows, entozh, 'xlsx', `${this.$route.meta.title}`) + }) + .catch(err => { + this.loading = false + this.$message.error('涓嬭浇閿欒锛氳幏鍙栨枃浠舵祦閿欒' + err) + }) + }, - WmsFactoryToExcel() { - this.loading = true - let entozh = {}; - const path = this.$route.path; - if (window.localStorage.getItem(path)) { - JSON.parse(window.localStorage.getItem(path)).forEach(item => { - if (item.dataIndex != 'action' && item.checked) { - entozh[item.dataIndex] = item.title - } - }) - } else { //鐩存帴鐐瑰鍑� - this.columns.forEach(item => { - if (item.dataIndex != 'action') { - entozh[item.dataIndex] = item.title - } - }) - } - WmsFactoryPage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)).then((res) => { - this.loading = false; - //闇�瑕佹埅鍙栨棩鏈熺殑瀛楁 - var arrDataCutout = this.columns.filter(v => v.customCutout == true); - res.data.rows.forEach(item => { - var arrKeys = Object.keys(item); - arrKeys.forEach(key => { - var strFieldDic = key + 'Data'; - //鏋氫妇杞�� - if (this[strFieldDic] && this[strFieldDic].length > 0) { - let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key])); - if (arrFieldDic.length > 0) { - item[key] = arrFieldDic[0]?.name || '娌℃湁鏋氫妇鍊�'; - } - } - // 鏃ユ湡鎴彇 - if (arrDataCutout.length > 0) { - arrDataCutout.forEach(itemIn => { - if (key == itemIn.dataIndex && item[key]) { - item[key] = item[key].split(" ")[0] - } - }) - } - }); - }) - exportExcel(res.data.rows, entozh, "xlsx", `${this.$route.meta.title}`) - }).catch((err) => { - this.loading = false - this.$message.error('涓嬭浇閿欒锛氳幏鍙栨枃浠舵祦閿欒' + err) - }) - }, - - - toggleAdvanced () { - this.advanced = !this.advanced - this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害 - }, - onChangecreatedTime(date, dateString) { - this.queryParam.createdTime = dateString - }, - onChangeupdatedTime(date, dateString) { - this.queryParam.updatedTime = dateString - }, - handleOk () { - this.$refs.table.refresh() - }, - onSelectChange (selectedRowKeys, selectedRows) { - this.selectedRowKeys = selectedRowKeys - this.selectedRows = selectedRows - } - } - } + toggleAdvanced() { + this.advanced = !this.advanced + this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害 + }, + onChangecreatedTime(date, dateString) { + this.queryParam.createdTime = dateString + }, + onChangeupdatedTime(date, dateString) { + this.queryParam.updatedTime = dateString + }, + handleOk() { + this.$refs.table.refresh() + }, + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys + this.selectedRows = selectedRows + } + } +} </script> <style lang="less"> - .table-operator { - margin-bottom: 18px; - } - button { - margin-right: 8px; - } +.table-operator { + margin-bottom: 18px; +} +button { + margin-right: 8px; +} </style> diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/index.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/index.vue index 3744a08..9666405 100644 --- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/index.vue +++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/index.vue @@ -177,6 +177,8 @@ 瀵煎嚭 </a-button> <a-button type="primary" v-if="hasPerm('WmsMaterial:add')" icon="plus" @click="$refs.addForm.add()">鏂板鐗╂枡淇℃伅琛�</a-button> + <!-- 鑷畾涔� --> + <a-button type="primary" v-if="hasPerm('WmsMaterial:add')" icon="plus" @click="$refs.tabForm.add()">鏂板tab</a-button> </div> </template> <span slot="isDisabledscopedSlots" slot-scope="text"> @@ -200,6 +202,9 @@ <add-form ref="addForm" @ok="handleOk" /> <edit-form ref="editForm" @ok="handleOk" /> <excel-form ref="excelForm" @ok="handleOk" /> + <!-- 鑷畾涔� --> + <tab-form ref="tabForm" @ok="handleOk" /> + </a-card> </div> </template> @@ -210,6 +215,9 @@ //鑷畾涔塼able楂樺害 import setTableHtMixin from '@/mixins/handleTableHt.js' import addForm from './addForm.vue' +//鑷畾涔� + import tabForm from './tabForm.vue' + import { exportExcel } from '@/utils/exportToExcel' import { downloadFile } from '@/utils/util' import editForm from './editForm.vue' @@ -220,7 +228,8 @@ STable, addForm, editForm, - excelForm + excelForm, + tabForm //鑷畾涔� }, data () { return { diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue new file mode 100644 index 0000000..19b9116 --- /dev/null +++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue @@ -0,0 +1,154 @@ +<template> + <a-modal + title="鏂板鐗╂枡淇℃伅" + :width="900" + :visible="visible" + :confirmLoading="confirmLoading" + @ok="handleSubmit" + @cancel="handleCancel" + > + <a-spin :spinning="confirmLoading"> + <!-- tab --> + <a-tabs default-active-key="1" @change="callback"> + <a-tab-pane key="1" tab="鍩烘湰淇℃伅"> + <add-form ref="addForm" @ok="handleOk" /> + </a-tab-pane> + <a-tab-pane key="2" tab="鎺у埗灞炴��" force-render> + Content of Tab Pane 2 + </a-tab-pane> + <a-tab-pane key="3" tab="鎵规灞炴��"> + Content of Tab Pane 3 + </a-tab-pane> + <a-tab-pane key="4" tab="鏇夸唬鍝佺鐞�"> + Content of Tab Pane 4 + </a-tab-pane> + <a-tab-pane key="5" tab="瀹㈡埛"> + Content of Tab Pane 5 + </a-tab-pane> + <a-tab-pane key="7" tab="鍖呰鍏崇郴"> + Content of Tab Pane 6 + </a-tab-pane> + </a-tabs> + + </a-spin> + </a-modal> +</template> + +<script> +import { WmsMaterialAdd, GetAreas, GetStations } from '@/api/modular/main/WmsMaterialManage' +import addForm from './tabItem/addForm.vue' + +export default { + components: { + // STable, + addForm, + // editForm, + // excelForm + }, + data() { + return { + labelCol: { + // xs: { span: 24 }, + // sm: { span: 5 } + span: 8 + }, + wrapperCol: { + // xs: { span: 24 }, + // sm: { span: 15 } + span: 13 + }, + inspectionMethodData: [], + materialTypeData: [], + areaNameParameterData: [], + stationNameParameterData: [], + visible: false, + confirmLoading: false, + form: this.$form.createForm(this) + } + }, + methods: { + // 鍒濆鍖栨柟娉� + add(record) { + this.visible = true + this.$nextTick(() => { + this.getSelects() + }) + const materialTypeOption = this.$options + this.materialTypeData = materialTypeOption.filters['dictData']('material_type') + const inspectionMethodOption = this.$options + this.inspectionMethodData = inspectionMethodOption.filters['dictData']('material_inspection') + }, + getSelects() { + if (this.areaNameParameterData.length <= 0 || this.stationNameParameterData.length <= 0) { + this.confirmLoading = true + Promise.all([GetAreas(), GetStations()]) + .then(response => { + this.areaNameParameterData = response[0].data || [] + this.stationNameParameterData = response[1].data || [] + this.confirmLoading = false + }) + .catch(() => { + this.confirmLoading = false + }) + } + }, + /** + * 鎻愪氦琛ㄥ崟 + */ + handleSubmit() { + const { + form: { validateFields } + } = this + this.confirmLoading = true + validateFields((errors, values) => { + if (!errors) { + if (this.$getObjectType(values.areas) === 'array') { + values.areaIds = values.areas.join(',') + values.areaNameParameterArr = values.areas.map(val => { + return this.parseSelectName(val, 'areaId', 'areaName', 'areaNameParameterData') + }) + values.areaNameParameter = values.areaNameParameterArr.join(',') + } + if (this.$getObjectType(values.stations) === 'array') { + values.stationIds = values.stations.join(',') + values.stationNameParameterArr = values.stations.map(val => { + return this.parseSelectName(val, 'stationId', 'stationName', 'stationNameParameterData') + }) + values.stationNameParameter = values.stationNameParameterArr.join(',') + } + WmsMaterialAdd(values) + .then(res => { + if (res.success) { + this.$message.success('鏂板鎴愬姛') + this.confirmLoading = false + this.$emit('ok', values) + this.handleCancel() + } else { + this.$message.error('鏂板澶辫触锛�' + JSON.stringify(res.message)) + } + }) + .finally(res => { + this.confirmLoading = false + }) + } else { + this.confirmLoading = false + } + }) + }, + parseSelectName(val, field, nfield, pfield) { + let res = val + for (let i = 0; i < this[pfield].length; i++) { + if (val === this[pfield][i][field]) { + res = this[pfield][i][nfield] + break + } + } + return res + }, + handleCancel() { + this.form.resetFields() + this.visible = false + } + } +} +</script> diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addForm.vue new file mode 100644 index 0000000..faa2ec8 --- /dev/null +++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addForm.vue @@ -0,0 +1,136 @@ +锘�<template> + <!-- 鍩烘湰淇℃伅 --> + <a-form :form="form"> + <a-form-item label="鐗╂枡鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" v-decorator="['materialName', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欏悕绉帮紒'}]}]" /> + </a-form-item> + <a-form-item label="鐗╂枡缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�" v-decorator="['materialCode', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑紪鍙凤紒'}]}]" /> + </a-form-item> + <a-form-item label="ERP缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏RP缂栧彿" v-decorator="['erpCode']" /> + </a-form-item> + <a-form-item label="鐗╂枡绫诲瀷鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬪悕绉�" v-decorator="['materialTypeName']" /> + </a-form-item> + <a-form-item label="鐗╂枡绫诲瀷鎻忚堪" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬫弿杩�" v-decorator="['materialTypeDescr']" /> + </a-form-item> + <a-form-item label="鐗╂枡绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input-number placeholder="璇疯緭鍏ョ墿鏂欑被鍨�" style="width: 100%" v-decorator="['materialType']" /> + </a-form-item> + <a-form-item label="鐗╂枡缁�" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ョ墿鏂欑粍" v-decorator="['materialGroup']" /> + </a-form-item> + <a-form-item label="ABC鍒嗙被鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏BC鍒嗙被鍚嶇О" v-decorator="['aBCClassName']" /> + </a-form-item> + <a-form-item label="ABC鍒嗙被" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input-number placeholder="璇疯緭鍏BC鍒嗙被" style="width: 100%" v-decorator="['aBCClass']" /> + </a-form-item> + <a-form-item label="鐗╂枡瑙勬牸" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ョ墿鏂欒鏍�" v-decorator="['materialSpec']" /> + </a-form-item> + <a-form-item label="榛樿鍏ュ簱搴撲綅" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ラ粯璁ゅ叆搴撳簱浣�" v-decorator="['inPlaceCode']" /> + </a-form-item> + <a-form-item label="搴撳瓨鍗曚綅" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ュ簱瀛樺崟浣�" v-decorator="['materialUnit']" /> + </a-form-item> + <a-form-item label="閲囪喘鍗曚綅" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ラ噰璐崟浣�" v-decorator="['pOUnit']" /> + </a-form-item> + <a-form-item label="棰滆壊" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ラ鑹�" v-decorator="['color']" /> + </a-form-item> + <a-form-item label="閲嶉噺" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ラ噸閲�" v-decorator="['weight']" /> + </a-form-item> + <a-form-item label="鏍囧寘鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ユ爣鍖呮暟閲�" v-decorator="['sNP']" /> + </a-form-item> + <a-form-item label="鎹㈢畻鐜�" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ユ崲绠楃巼" v-decorator="['translateRate']" /> + </a-form-item> + <a-form-item label="鎵规灞炴�ц鍒�" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ユ壒娆″睘鎬ц鍒�" v-decorator="['batchRuleId']" /> + </a-form-item> + <a-form-item label="鎺у埗灞炴�ц鍒�" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ユ帶鍒跺睘鎬ц鍒�" v-decorator="['controlRuleId']" /> + </a-form-item> + <a-form-item label="鏄惁绂佺敤" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" /> + </a-form-item> + <a-form-item label="鎻忚堪" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ユ弿杩�" v-decorator="['materialDesc']" /> + </a-form-item> + </a-form> +</template> + +<script> + import moment from 'moment' + import { + WmsMaterialAdd + } from '@/api/modular/main/WmsBase/WmsMaterialManage' + export default { + data () { + return { + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 15 } + }, + visible: false, + confirmLoading: false, + form: this.$form.createForm(this) + } + }, + methods: { + moment, + // 鍒濆鍖栨柟娉� + add (record) { + this.visible = true + this.$nextTick(() => { + + }); + }, + /** + * 鎻愪氦琛ㄥ崟 + */ + handleSubmit () { + const { form: { validateFields } } = this + this.confirmLoading = true + validateFields((errors, values) => { + if (!errors) { + for (const key in values) { + if (typeof (values[key]) === 'object') { + values[key] = JSON.stringify(values[key]) + } + } + WmsMaterialAdd(values).then((res) => { + if (res.success) { + this.$message.success('鏂板鎴愬姛') + this.confirmLoading = false + this.$emit('ok', values) + this.handleCancel() + } else { + this.$message.error('鏂板澶辫触锛�' + JSON.stringify(res.message)) + } + }).finally((res) => { + this.confirmLoading = false + }) + } else { + this.confirmLoading = false + } + }) + }, + handleCancel () { + this.form.resetFields() + this.visible = false + } + } + } +</script> -- Gitblit v1.9.3