| | |
| | | <el-row style="margin-top: 15px"> |
| | | <el-col> |
| | | <!--列表--> |
| | | <my-table-v2 ref="myTable" :filter="filterFrom" :table="table" /> |
| | | <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> |
| | | </el-col> |
| | | </el-row> |
| | | </el-card> |
| | | </el-container> |
| | | </el-container> |
| | | |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import MyTableV2 from '@/components/myTable/myTableV2'; |
| | | import MyButton from '@/components/myButton/myButton'; |
| | | import SettingIplatform from '@/utils/settingIplatform'; |
| | | import * as finsystenant from '@/api/baseSetting/finsystenant'; |
| | | import { getBaseUrl } from '@/utils/base'; |
| | | import { selectTenantWarehouse, getCategorySelectTree, treeList } from '@/api/baseSetting/finsystenant'; |
| | | import { getDicts } from '@/api/system/dict/data'; |
| | | import { doExport } from '@/api/stock/ledger'; |
| | | import {doExport} from '@/api/stock/ledger'; |
| | | |
| | | export default { |
| | | name: 'index', |
| | | components: { MyButton, MyTableV2 }, |
| | | components: {MyButton, MyTableV2}, |
| | | data() { |
| | | return { |
| | | // 搜索框 |
| | |
| | | dataIndex: 'agencyId', |
| | | label: '机构', |
| | | placeholder: '请选择', |
| | | optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null }, |
| | | defaultValue: '', |
| | | options: [], |
| | | cascader: [{key: 'warehouseId', queryKey: 'agencyId'}, {key: 'goodsTemplateId', queryKey: 'agencyId'}], |
| | | optionsConfig: {url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null}, |
| | | }, |
| | | { |
| | | type: 'select', |
| | |
| | | placeholder: '请选择', |
| | | defaultValue: '', |
| | | options: [], |
| | | optionsConfig: { |
| | | label: 'warehouseName', |
| | | value: 'id', |
| | | url: SettingIplatform.apiBaseURL + '/pc/base/warehouse/select/tenant_warehouse' |
| | | }, |
| | | }, |
| | | { |
| | | type: 'text', |
| | | dataIndex: 'goodsTemplateName', |
| | | label: '物品名称', |
| | | placeholder: '请输入', |
| | | defaultValue: '', |
| | | }, |
| | | { |
| | | type: 'select', |
| | | type: 'cascader', |
| | | dataIndex: 'categoryId', |
| | | label: '分类', |
| | | placeholder: '请选择', |
| | | defaultValue: '', |
| | | options: [], |
| | | optionsConfig: { |
| | | label: 'label', |
| | | value: 'id', |
| | | url: SettingIplatform.apiBaseURL + '/pc/base/category/select/tree', |
| | | props: {checkStrictly: false, emitPath: false, value: 'id'} |
| | | }, |
| | | cascader: [{key:'goodsTemplateId',queryKey: 'categoryId'}], |
| | | }, |
| | | { |
| | | type: 'select', |
| | | dataIndex: 'goodsTemplateId', |
| | | label: '物品名称', |
| | | placeholder: '请输入', |
| | | defaultValue: '', |
| | | options: [], |
| | | cascader: [{key: 'categoryId', queryKey: 'goodsTemplatesId'}], |
| | | optionsConfig: { |
| | | label: 'goodsName', |
| | | value: 'id', |
| | | url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate', |
| | | }, |
| | | }, |
| | | { |
| | | type: 'select', |
| | |
| | | label: '类别', |
| | | placeholder: '请选择', |
| | | defaultValue: '', |
| | | options: [], |
| | | options: [{ |
| | | label: 'A', |
| | | value: '1' |
| | | }, { |
| | | label: 'B', |
| | | value: '2' |
| | | }, { |
| | | label: 'C', |
| | | value: '3' |
| | | }], |
| | | }, |
| | | ], |
| | | // 树数据 |
| | | treeDataList: [], |
| | | // 搜索条件 |
| | | filterFrom: { |
| | | tenantId: null, |
| | | userName: null, |
| | | userPhone: null, |
| | | status: 1, |
| | | warehouseType: 0 |
| | | }, |
| | | // 表格数据 |
| | | table: { |
| | |
| | | }, |
| | | // 列信息 |
| | | columns: [ |
| | | { title: '机构', field: 'agencyName', align: 'center' }, |
| | | { title: '仓库', field: 'warehouseName', align: 'center' }, |
| | | { title: '分类', field: 'categoryName', align: 'center' }, |
| | | { title: '所属类别', field: 'costType', align: 'center' }, |
| | | { title: '物品名称', field: 'goodsTemplateName', align: 'left' }, |
| | | { title: '规格型号', field: 'baseGoodsModelsName', align: 'left' }, |
| | | { title: '单位', field: 'unit', align: 'left' }, |
| | | { title: '当前库存', field: 'kucun', align: 'left' }, |
| | | {title: '机构', field: 'agencyName', align: 'left', minWidth: 130}, |
| | | {title: '仓库', field: 'warehouseName', align: 'left', minWidth: 130}, |
| | | {title: '分类', field: 'categoryName', align: 'left', minWidth: 130}, |
| | | {title: '所属类别', field: 'costType', align: 'center', width: 80}, |
| | | {title: '物品名称', field: 'goodsTemplateName', align: 'left', minWidth: 140}, |
| | | {title: '规格型号', field: 'baseGoodsModelsName', align: 'left', minWidth: 130}, |
| | | {title: '单位', field: 'unit', align: 'center', width: 80}, |
| | | {title: '当前库存', field: 'kucun', align: 'center'}, |
| | | ], |
| | | paging: { |
| | | show: true, // 显示分页 |
| | |
| | | }; |
| | | }, |
| | | created() { |
| | | this.initQuery(); |
| | | }, |
| | | methods: { |
| | | initQuery() { |
| | | selectTenantWarehouse().then((res) => { |
| | | this.items.forEach((v) => { |
| | | if (v.label == '仓库') { |
| | | v.options = res.map((item) => { |
| | | item.label = item.warehouseName; |
| | | item.value = item.id; |
| | | return item; |
| | | }); |
| | | } |
| | | }); |
| | | console.log('this.items', this.items); |
| | | }); |
| | | getDicts('GOODS_PRICE').then((res) => { |
| | | // 价值类型1A 2B 3C |
| | | this.items.forEach((v) => { |
| | | if (v.label == '类别') { |
| | | v.options = res.map((v) => { |
| | | v.label = v.dict_label; |
| | | if (v.dict_value == 'A') { |
| | | v.value = 1; |
| | | } else if (v.dict_value == 'B') { |
| | | v.value = 2; |
| | | } else { |
| | | v.value = 3; |
| | | } |
| | | return v; |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | treeList().then((res) => { |
| | | this.items.forEach((v) => { |
| | | if (v.label == '分类') { |
| | | v.options = res.map((item) => { |
| | | item.label = item.categoryName; |
| | | item.value = item.id; |
| | | return item; |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | // 导出 |
| | | handleExport() { |
| | | let loading = this.$loading({ |
| | |
| | | background: 'rgba(0, 0, 0, 0.7)', |
| | | }); |
| | | // 判断总条数是否大于最大支持条数 |
| | | doExport({ ...this.filterFrom }) |
| | | .then((res) => { |
| | | const blob = new Blob([res], { type: 'application/vnd.ms-excel' }); |
| | | const fileName = `库存查询.xls`; |
| | | if ('download' in document.createElement('a')) { |
| | | // 非IE下载 |
| | | const elink = document.createElement('a'); |
| | | elink.download = fileName; |
| | | elink.style.display = 'none'; |
| | | elink.href = URL.createObjectURL(blob); |
| | | document.body.appendChild(elink); |
| | | elink.click(); |
| | | URL.revokeObjectURL(elink.href); |
| | | document.body.removeChild(elink); |
| | | } else { |
| | | // IE10+下载 |
| | | navigator.msSaveBlob(blob, fileName); |
| | | } |
| | | this.$message.success('导出成功!'); |
| | | loading.close(); |
| | | }) |
| | | .catch(() => { |
| | | loading.close(); |
| | | }); |
| | | doExport({...this.filterFrom}) |
| | | .then((res) => { |
| | | const blob = new Blob([res], {type: 'application/vnd.ms-excel'}); |
| | | const fileName = `库存查询.xls`; |
| | | if ('download' in document.createElement('a')) { |
| | | // 非IE下载 |
| | | const elink = document.createElement('a'); |
| | | elink.download = fileName; |
| | | elink.style.display = 'none'; |
| | | elink.href = URL.createObjectURL(blob); |
| | | document.body.appendChild(elink); |
| | | elink.click(); |
| | | URL.revokeObjectURL(elink.href); |
| | | document.body.removeChild(elink); |
| | | } else { |
| | | // IE10+下载 |
| | | navigator.msSaveBlob(blob, fileName); |
| | | } |
| | | this.$message.success('导出成功!'); |
| | | loading.close(); |
| | | }) |
| | | .catch(() => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | |
| | | // 查询table列表 |
| | | search(pageNum) { |
| | | if (pageNum != undefined) { |
| | | this.$refs.myTable.search(pageNum); |
| | | this.$refs.myTable.search({pageNum}); |
| | | } else { |
| | | this.$refs.myTable.search(); |
| | | } |
| | | }, |
| | | fifterForm(params) { |
| | | this.filterFrom = Object.assign(this.filterFrom, params); |
| | | if (params.agencyId && params.agencyId.length) { |
| | | this.filterFrom.agencyId = params.agencyId[params.agencyId.length - 1]; |
| | | } |
| | | this.search(1); |
| | | }, |
| | | }, |