123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- <template>
- <div id="card-1">
- <el-row>
- <!-- 自营订单待付款列表 -->
- <el-col :span="24" class="main" v-loading="loadings" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading">
- <el-col :span="24" class="one">
- <search-1 :form="searchForm" @onSubmit="toSearch" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
- </el-col>
- <data-table ref="dataTable" :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales">
- </data-table>
- </el-col>
- </el-row>
- </div>
- </template>
- <script>
- const _ = require('lodash');
- import { mapState, createNamespacedHelpers } from 'vuex';
- const { mapActions } = createNamespacedHelpers('order');
- const { mapActions: shop } = createNamespacedHelpers('shop');
- export default {
- name: 'card-1',
- props: { statusList: { type: Array } },
- components: { search1: () => import('./search-2.vue') },
- data: function () {
- return {
- searchForm: {},
- list: [],
- total: 0,
- opera: [
- { label: '详情', method: 'detail' },
- { label: '售后', method: 'sales', type: 'danger' },
- ],
- fields: [
- { label: '订单号', model: 'no', showTip: false },
- { label: '下单时间', model: 'buy_time' },
- { label: '顾客', model: 'customer.name' },
- { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
- { label: '店铺名称', model: 'goods', format: (i) => this.getShopName(i) },
- { label: '需支付金额', model: 'real_pay' },
- { label: '商品数量', model: 'buy_num_total' },
- ],
- shopList: [],
- skip: 0,
- loadings: true,
- // 查询条件
- searchQuery: {},
- };
- },
- async created() {
- await this.search();
- },
- methods: {
- ...shop({ shopQuery: 'query' }),
- ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
- toSearch() {
- this.$refs.dataTable.resetPage();
- let res = this.$refs.dataTable.getPageConfig();
- this.search(res);
- },
- // 查询
- async search({ skip = 0, limit = this.$limit, ...info } = {}) {
- let condition = _.cloneDeep(this.searchForm);
- if (condition.buy_time) {
- condition[`buy_time@start`] = _.head(condition.buy_time);
- condition[`buy_time@end`] = _.last(condition.buy_time);
- delete condition.buy_time;
- }
- info.status = '0';
- info.shop = this.user.shop.id;
- let query = { skip, limit, ...info };
- if (Object.keys(condition).length > 0) query = { ...query, ...condition };
- let res = await this.query(query);
- if (this.$checkRes(res)) {
- this.$set(this, 'list', res.data);
- this.$set(this, 'total', res.total);
- this.$set(this, `searchQuery`, query);
- }
- this.loadings = false;
- },
- getAddress(i) {
- let name = i.name + ',' + i.phone;
- return name;
- },
- // 店铺名称
- getShopName(i) {
- let shopname = i.map((e) => e.shop_name);
- return shopname.join(',');
- },
- // 详情
- toDetail({ data }) {
- this.$emit('toDetail', data._id);
- },
- toSales({ data }) {
- this.$emit('toSales', data._id);
- },
- // 重置
- toClose() {
- this.searchForm = {};
- this.search();
- },
- // 店铺名称远程查询
- async querySearch(value) {
- let res = await this.shopQuery({ name: value });
- if (this.$checkRes(res)) this.$set(this, 'shopList', res.data);
- },
- },
- computed: {
- ...mapState(['user']),
- },
- metaInfo() {
- return { title: this.$route.meta.title };
- },
- watch: {
- test: {
- deep: true,
- immediate: true,
- handler(val) {},
- },
- },
- };
- </script>
- <style lang="less" scoped>
- .one {
- margin: 0 0 10px 0;
- }
- </style>
|