MrShi
2025-01-17 78d03fa48defaf77c2b533dc4616a210088ab49c
admin/src/views/stock/out.vue
@@ -6,13 +6,17 @@
      <el-button @click="handleEx()" v-permissions="['business:ywpatrolline:create']">导出</el-button>
    </div>
    <el-table v-loading="loading" :data="list" stripe>
      <el-table-column prop="platformName" label="出库单号" min-width="120" show-overflow-tooltip />
      <el-table-column prop="platformGroupName" label="出库仓库" min-width="100" show-overflow-tooltip />
      <el-table-column prop="carCodeFront" label="出库类型" min-width="100" show-overflow-tooltip />
      <el-table-column prop="carCodeBack" label="出库日期" min-width="110" show-overflow-tooltip />
      <el-table-column prop="param1" label="出库数量" min-width="120" show-overflow-tooltip />
      <el-table-column prop="param2" label="操作人" min-width="90" show-overflow-tooltip />
      <el-table-column prop="workTime" label="操作时间" min-width="140" show-overflow-tooltip />
      <el-table-column prop="code" label="出库单号" min-width="120" show-overflow-tooltip />
      <el-table-column prop="warehouseName" label="出库仓库" min-width="100" show-overflow-tooltip />
      <el-table-column prop="typeName" label="出库类型" min-width="100" show-overflow-tooltip />
      <el-table-column prop="doneDate" label="出库日期" min-width="110" show-overflow-tooltip />
      <el-table-column label="出库数量" min-width="140">
        <template v-slot="{ row }">
          <div v-for="item in row.recordList">{{ item.materialName }}[{{ item.materialCode }}]*{{ item.stock }}{{ item.materialUnitName }}</div>
        </template>
      </el-table-column>
      <el-table-column prop="createUserName" label="领用人" min-width="90" show-overflow-tooltip />
      <el-table-column prop="createDate" label="操作时间" min-width="140" show-overflow-tooltip />
      <el-table-column prop="workTime" label="操作" min-width="80" show-overflow-tooltip>
        <template v-slot="{ row }">
          <span @click="handleDetail(row)" class="primaryColor pointer">查看详情</span>
@@ -24,19 +28,21 @@
    </div>
    <!--  -->
    <OutEdit v-if="isShowEdit" @close="isShowEdit = false" @success="getList" ref="OutEditRef" />
    <OutDetail v-if="isShowDetail" ref="OutDetailRef" />
    <OutDetail v-if="isShowDetail" ref="InDetailRef" />
  </div>
</template>
<script>
import Pagination from '@/components/common/Pagination'
import QueryForm from '@/components/common/QueryForm'
import OutEdit from './components/OutEdit'
import OutDetail from './components/OutDetail'
import OutEdit from './components/OutEdit.vue'
import OutDetail from './components/OutDetail.vue'
import dayjs from 'dayjs'
import duration from 'dayjs/plugin/duration'
dayjs.extend(duration)
import { platformLogPage, getPlatformGroupList } from '@/api'
import { ywOutinboundPage } from '@/api'
import { fetchList as getStoreList } from '@/api/ywWarehouse'
import { StoreTypeOps, rules } from './components/config'
export default {
  components: {
    Pagination,
@@ -54,26 +60,34 @@
        page: 1,
        total: 0
      },
      filters: {},
      list: [{}],
      filters: {
        inOut: 1
      },
      StoreTypeOps,
      list: [],
      total: 0,
      queryFormConfig: {
        formItems: [
          {
            filed: 'carCodeFront',
            filed: 'code',
            type: 'input',
            label: '出库单号',
          },
          {
            filed: 'platformGroupId',
            filed: 'warehouseId',
            type: 'select',
            label: '所在仓库',
            labelCode: 'name',
            valueCode: 'id',
            options: []
          },
          {
            filed: 'carCodeFront',
            type: 'input',
            filed: 'type',
            type: 'select',
            label: '出库类型',
            labelCode: 'name',
            valueCode: 'id',
            options: StoreTypeOps.filter(i => i.type == 0)
          },
        ],
        online: true
@@ -81,8 +95,8 @@
    }
  },
  created() {
    // this.getList()
    // this.getGroupList()
    this.getList()
    this.initData()
  },
  methods: {
    handleSub() {
@@ -98,45 +112,55 @@
        this.$refs.OutEditRef.isShowModal = true
      })
    },
    handleDetail() {
    handleDetail(row) {
      this.isShowDetail = true
      this.$nextTick(() => {
        this.$refs.OutDetailRef.visible = true
        this.$refs.InDetailRef.visible = true
        this.$refs.InDetailRef.getDetail(row.id)
      })
    },
    handleEx() { },
    getGroupList() {
      getPlatformGroupList({ queryData: 0, queryType: 0 }).then(res => {
        this.queryFormConfig.formItems[1].options = res.map(i => {
          return {
            value: i.id,
            label: i.name
          }
    handleEx() {
      this.$dialog.exportConfirm('确认导出吗?')
        .then(() => {
          this.loading = true
          ywOutinboundEx({
            page: this.pagination.page,
            capacity: 1000000,
            model: this.filters
        })
        // this.queryFormConfig.formItems[1].options.unshift({ value: '', label: '全部月台组' })
            .then(response => {
              this.download(response)
            })
            .catch(e => {
              this.$tip.apiFailed(e)
            })
            .finally(() => {
              this.loading = false
            })
        })
        .catch(() => { })
    },
    initData() {
      getStoreList({ capacity: 9999, page: 1, model: {} }).then(res => {
        this.queryFormConfig.formItems[1].options = res.records || []
      })
    },
    getList(page) {
      const { pagination, filters } = this
      this.loading = true
      if(page){pagination.page = page}
      platformLogPage({
      ywOutinboundPage({
        model: {
          ...filters,
          queryStatus: '6,7,8',
          beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
          beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
          ...filters
        },
        sorts: [{ direction: 'DESC', property: 'param1' }],
        // sorts: [{ direction: 'DESC', property: 'param1' }],
        capacity: pagination.pageSize,
        page: page,
      }).then(res => {
        this.loading = false
        this.list = res.records || []
        this.list.forEach(item => {
          item.inTypeTemp = item.inType == 0 ? '整托盘' : '件烟'
          item.taskOrigin = 'WMS获取'
          item.workTime = dayjs.duration(item.param3, 'seconds').format('H时m分s秒')
          item.typeName = this.StoreTypeOps[item.type].name
        })
        this.pagination.total = res.total || 0
      }, () => {
@@ -144,7 +168,9 @@
      })
    },
    clear() {
      this.filters = {}
      this.filters = {
        inOut: 1
      }
      this.pagination.pageSize = 10
      this.pagination.page = 1
      this.getList()