石广澎
2023-11-29 20913c80c3f5fc8e533cb92b90e6f20bcd68e032
admin-web/src/views/stock/accessStock/outboundDetails/index.vue
@@ -10,11 +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>
          <!--添加/编辑弹窗-->
          <detail v-if="detailSetting.show" :setting="detailSetting" @close="detailSetting.show = false" />
          <!--          <detail/>-->
          <component v-if="detailSetting.show" :setting="detailSetting" @close="detailSetting.show = false"
                     :is="activeDetail"></component>
        </el-card>
      </el-container>
    </el-container>
@@ -25,42 +27,57 @@
import MyTableV2 from '@/components/myTable/myTableV2';
import MyButton from '@/components/myButton/myButton';
import SettingIplatform from '@/utils/settingIplatform';
import detail from '../outbound/detail';
import * as finsystenant from '@/api/baseSetting/finsystenant';
import myImport from '@/views/components/myImport';
import { goodsTemplate, goodsModel } from '@/api/baseSetting/finsystenant';
import { outputDtailList } from '@/api/stock/accessStock';
import * as DateFormatter from '@/utils/DateFormatter';
import stockType from '@/utils/stockType';
import detail from '../outbound/detail';
import purchaseDetail from '@/views/stock/procure/purchaseOrder/detail.vue'; // 采购单详情
import transferDetail from '@/views/stock/transfer/transferissue/detail.vue'; // 调拨单详情
import inventoryDetail from '@/views/stock/inventorycount/inventorytask/detail.vue'; // 盘点单详情
import scrapDetail from '@/views/stock/scrap/itemScrapping/detail.vue'; // 报废单详情
import distributionDetail from '@/views/departmentitem/itemdis/distribution/detail.vue'; // 分发单详情
import itemscrDetail from '@/views/departmentitem/itemscr/scrapping/detail.vue'; // 部门报废单详情
import returnNoteDetail from '@/views/departmentitem/itemret/returnNote/detail.vue'; // 部门退还单详情
export default {
  name: 'index',
  components: { MyButton, MyTableV2, detail, myImport },
  components: {
    MyButton,
    MyTableV2,
    detail,
    myImport,
    purchaseDetail,
    transferDetail,
    inventoryDetail,
    scrapDetail,
    distributionDetail,
    itemscrDetail,
    returnNoteDetail
  },
  data() {
    return {
      activeDetail: '',
      // 搜索框
      items: [
        {
          type: 'text',
          dataIndex: 'businessFormId',
          dataIndex: 'businessFormCode',
          label: '单号',
          placeholder: '请输入',
          defaultValue: '',
        },
        {
          type: 'select',
          dataIndex: 'thisType',
          dataIndex: 'flowType',
          label: '类型',
          placeholder: '请选择',
          defaultValue: '',
          options: [
            {
              label: '采购入库',
              value: 1,
            },
            {
              label: '退还入库',
              value: 2,
            },
          ],
          options: [],
          optionsConfig: {
            label: 'dict_label',
            value: 'dict_value',
            url: SettingIplatform.apiBaseURL + '/permit/dict/data/type/FLOW_TYPE',
          },
        },
        {
          type: 'select',
@@ -69,6 +86,12 @@
          placeholder: '请选择',
          defaultValue: '',
          options: [],
          cascader: [{key: 'baseGoodsModelsId', queryKey: 'goodsTemplatesId'}],
          optionsConfig: {
            label: 'goodsName',
            value: 'id',
            url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
          },
        },
        {
          type: 'select',
@@ -77,32 +100,37 @@
          placeholder: '请选择',
          defaultValue: '',
          options: [],
          optionsConfig: {
            label: 'modelName',
            value: 'id',
            url: SettingIplatform.apiBaseURL + '/pc/base/goods/models/query/goodsModel',
          },
        },
        {
          type: 'cascader',
          dataIndex: 'agencyId',
          label: '机构',
          placeholder: '请选择',
          optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null },
          optionsConfig: {url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null},
          defaultValue: '',
          options: [],
        },
        {
          type: 'text',
          dataIndex: 'createdName',
          dataIndex: 'createName',
          label: '创建人',
          placeholder: '请输入',
          defaultValue: '',
        },
        {
          type: 'date-picker',
          dataIndex: 'dealTimeStart',
          dataIndex: 'startTime',
          label: '时间',
          defaultValue: '',
        },
        {
          type: 'date-picker',
          dataIndex: 'dealTimeEnd',
          dataIndex: 'endTime',
          label: '至',
          defaultValue: '',
        },
@@ -147,28 +175,34 @@
        },
        // 列信息
        columns: [
          { title: '类型', field: 'thisType', align: 'left' },
          { title: '单号', field: 'businessFormId', align: 'center' },
          { title: '物品名称', field: 'goodsTemplateName', align: 'center' },
          { title: '规格型号', field: 'baseGoodsModelsName', align: 'center' },
          { title: '出入库数量', field: 'thisCount', align: 'left' },
          { title: '金额', field: 'totalPrice', align: 'left' },
          { title: '所属机构', field: 'agencyName', align: 'left' },
          { title: '创建人', field: 'createdName', align: 'left' },
          {
            title: '类型', field: 'thisType', align: 'left',
            formatter: (row) => {
              let result = stockType(row)
              return {value: result};
            },
          },
          {title: '单号', field: 'businessFormCode', align: 'center', width: 130},
          {title: '物品名称', field: 'goodsTemplateName', align: 'left', minWidth: 130},
          {title: '规格型号', field: 'baseGoodsModelsName', align: 'left', minWidth: 130},
          {title: '出入库数量', field: 'thisCount', align: 'center', width: 100},
          {title: '金额', field: 'totalPrice', align: 'center', width: 100},
          {title: '所属机构', field: 'agencyName', align: 'left', minWidth: 130},
          {title: '创建人', field: 'operatorName', align: 'left', width: 100},
          {
            title: '操作时间',
            field: 'dealTime',
            align: 'center',
            width: 160,
            formatter: (row) => {
              return { value: DateFormatter.LongToDateTime(row.createTime) };
              return {value: DateFormatter.LongToDateTime(row.dealTime)};
            },
          },
        ],
        // 操作信息
        operation: {
          show: true, // 显示操作列
          width: '150', // 列宽
          width: 100, // 列宽
          attr: [
            {
              title: '详情',
@@ -189,34 +223,24 @@
          },
        },
      },
      components: {
        '1': 'purchaseDetail',
        '2': 'returnNoteDetail',
        '3': 'transferDetail',
        '4': 'inventoryDetail',
        '5': 'itemscrDetail',
        '6': 'transferDetail',
        '7': 'inventoryDetail',
        '8': 'scrapDetail',
        '9': 'detail',
      }
    };
  },
  created() {
    this.initSearch();
  },
  methods: {
    initSearch() {
      this.items.map(async (item) => {
        if (item.label == '物品名称') {
          let res = await goodsTemplate();
          item.options = res.map((v) => {
            v.label = v.goodsName;
            v.value = v.id;
            return v;
          });
        }
        if (item.label == '规格型号') {
          let res = await goodsModel();
          item.options = res.map((v) => {
            v.label = v.modelName;
            v.value = v.id;
            return v;
          });
        }
        return item;
      });
    },
    showDetail(row) {
      this.activeDetail = this.components[row.mixType]
      this.detailSetting.id = row.id;
      this.detailSetting.info = JSON.stringify(row);
      this.detailSetting.title = '详情';
@@ -225,7 +249,7 @@
    // 查询table列表
    search(pageNum) {
      if (pageNum != undefined) {
        this.$refs.myTable.search(pageNum);
        this.$refs.myTable.search({pageNum});
      } else {
        this.$refs.myTable.search();
      }