石广澎
2023-11-29 20913c80c3f5fc8e533cb92b90e6f20bcd68e032
admin-web/src/views/stock/ledger/inventoryQuery/index.vue
@@ -10,13 +10,13 @@
          <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>
@@ -24,15 +24,11 @@
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 {
      // 搜索框
@@ -42,9 +38,10 @@
          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',
@@ -53,21 +50,39 @@
          placeholder: '请选择',
          defaultValue: '',
          options: [],
        },
        {
          type: 'text',
          dataIndex: 'goodsTemplateName',
          label: '物品名称',
          placeholder: '请输入',
          defaultValue: '',
          optionsConfig: {
            label: 'warehouseName',
            value: 'id',
            url: SettingIplatform.apiBaseURL + '/pc/base/warehouse/select/tenant_warehouse'
          },
        },
        {
          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: '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'}
          },
        },
        {
          type: 'select',
@@ -75,17 +90,23 @@
          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: {
@@ -115,14 +136,14 @@
        },
        // 列信息
        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, // 显示分页
@@ -138,53 +159,8 @@
    };
  },
  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({
@@ -194,30 +170,30 @@
        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列表
@@ -230,9 +206,6 @@
    },
    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);
    },
  },