123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- <template>
- <a-card size="small" :bordered="false" class="exportSalesList-wrap">
- <a-spin :spinning="spinning" tip="Loading...">
- <!-- 搜索条件 -->
- <div ref="tableSearch">
- <a-form-model
- id="exportSalesList-form"
- ref="ruleForm"
- class="form-model-con"
- :model="queryParam"
- :rules="rules"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- @keyup.enter.native="handleSearch" >
- <a-row :gutter="15" v-show="isShowWarehouse">
- <a-col :md="12" :sm="24">
- <a-form-model-item label="选择仓库" prop="warehouseSn">
- <warehouse
- v-model="queryParam.warehouseSn"
- isPermission
- @load="loadWareHouse"
- id="exportSalesList-warehouseSn"
- placeholder="请选择仓库"
- @change="getList"
- />
- </a-form-model-item>
- </a-col>
- </a-row>
- <a-row :gutter="15">
- <a-col :md="12" :sm="24">
- <a-form-model-item label="选择时间范围" prop="dateArr">
- <a-select id="exportSalesList-dateArr" v-model="queryParam.dateArr" placeholder="请选择时间范围" allowClear>
- <a-select-option v-for="item in checkList" :value="item" :key="item">
- <span>{{ item }}</span>
- </a-select-option>
- </a-select>
- </a-form-model-item>
- </a-col>
- </a-row>
- <a-form-model-item :wrapper-col="{ span: 12, offset: 6 }">
- <a-button
- type="primary"
- class="button-warning"
- @click="handleExport"
- :disabled="disabled"
- :loading="exportLoading"
- id="exportSalesList-export">导出</a-button>
- <a-button @click="pageInit" style="margin-left: 15px" id="exportSalesList-reset">重置</a-button>
- </a-form-model-item>
- </a-form-model>
- </div>
- </a-spin>
- </a-card>
- </template>
- <script>
- import { commonMixin } from '@/utils/mixin'
- import { hdExportExcel } from '@/libs/exportExcel'
- // 组件
- import { STable, VSelect } from '@/components'
- import warehouse from '@/views/common/chooseWarehouse.js'
- // 接口
- import { checkWarehouseExcelList } from '@/api/checkWarehouse'
- import { exportSalesOutProduct } from '@/api/stockOut.js'
- export default {
- name: 'ExportSalesList',
- mixins: [commonMixin],
- components: { STable, VSelect, warehouse },
- data () {
- return {
- spinning: false,
- labelCol: { span: 8 }, // form表单label横向距离
- wrapperCol: { span: 16 }, // form表单行缩进距离
- disabled: false, // 查询、重置按钮是否可操作
- exportLoading: false, // 导出按钮加载状态
- // 查询条件
- queryParam: {
- dateArr: undefined, // 时间范围
- warehouseSn: undefined// 仓库
- },
- rules: {
- dateArr: [{ required: true, message: '请选择时间范围', trigger: 'change' }],
- warehouseSn: [{ required: true, message: '请选择仓库', trigger: 'change' }]
- },
- checkList: []// 时间范围数据
- }
- },
- methods: {
- // 获取时间范围数据
- getList (v) {
- this.queryParam.dateArr = undefined
- this.checkList = []
- if (v) {
- checkWarehouseExcelList({ warehouseSn: this.queryParam.warehouseSn }).then(res => {
- if (res.status == 200) {
- const arr = res.data.reverse()
- for (let i = arr.length - 1; i > 0; i--) {
- this.checkList.push([arr[i - 1].financeAuditTime, arr[i].financeAuditTime].join(' 至 '))
- }
- } else {
- this.checkList = []
- }
- })
- }
- },
- // 导出
- handleExport () {
- const _this = this
- this.$refs.ruleForm.validate(valid => {
- if (valid) {
- const params = _this.queryParam.dateArr.split(' 至 ')
- _this.exportLoading = true
- _this.spinning = true
- hdExportExcel(exportSalesOutProduct, { 'beginDate': params[0], 'endDate': params[1] }, '导出销售', function () {
- _this.exportLoading = false
- _this.spinning = false
- })
- } else {
- console.log('error submit!!')
- return false
- }
- })
- },
- // 选择仓库 change
- loadWareHouse () {
- const defWareHouse = this.$store.state.app.defWarehouse
- this.queryParam.dateArr = undefined
- this.queryParam.warehouseSn = this.isShowWarehouse ? undefined : (defWareHouse ? defWareHouse.warehouseSn : undefined)
- if (!this.isShowWarehouse) {
- this.getList(true)
- }
- },
- // 初始化数据
- pageInit () {
- this.$refs.ruleForm.resetFields()
- }
- },
- mounted () {
- if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
- this.pageInit()
- }
- },
- activated () {
- // 如果是新页签打开,则重置当前页面
- if (this.$store.state.app.isNewTab) {
- this.pageInit()
- }
- // 仅刷新列表,不重置页面
- if (this.$store.state.app.updateList) {
- this.pageInit()
- }
- },
- beforeRouteEnter (to, from, next) {
- next(vm => {})
- }
- }
- </script>
- <style lang="less">
- .exportSalesList-wrap{
- height: 99%;
- .form-model-con{
- margin-top: 50px;
- }
- }
- </style>
|