| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219 |
- <template>
- <div>
- <Card :bordered="false" dis-hover class="mt15">
- <Form ref="orderData" :model="orderData" :label-width="labelWidth" :label-position="labelPosition"
- class="tabform" @submit.native.prevent>
- <div class="acea-row">
- <FormItem label="时间选择:">
- <DatePicker :editable="false" :clearable="true" @on-change="onchangeTime" :value="timeVal"
- format="yyyy/MM/dd HH:mm:ss" type="datetimerange" placement="bottom-start"
- placeholder="自定义时间" style="width: 250px" class="mr30" :options="options"></DatePicker>
- </FormItem>
- <!-- <FormItem label="订单类型:">
- <Select v-model="orderData.type" style="width: 250px" class="mr30" clearable
- @on-change="userSearchs" placeholder="全部订单">
- <Option value="">全部订单</Option>
- <Option value="0">普通订单</Option>
- <Option value="1">秒杀订单</Option>
- <Option value="2">砍价订单</Option>
- <Option value="3">拼团订单</Option>
- <Option value="4">套餐订单</Option>
- <Option value="9">新人订单</Option>
- </Select>
- </FormItem> -->
- <FormItem label="订单审核:">
- <Select v-model="orderData.pay_status" style="width: 250px" class="mr30" clearable
- @on-change="userSearchs" placeholder="全部订单">
- <Option value="-1">全部订单</Option>
- <Option value="0">待审核</Option>
- <Option value="1">已通过</Option>
- <Option value="2">已拒绝</Option>
- </Select>
- </FormItem>
- <FormItem label="凭证:">
- <Select v-model="orderData.pay_img_status" style="width: 250px" class="mr30" clearable
- @on-change="userSearchs" placeholder="全部订单">
- <Option :value="0">没有凭证</Option>
- <Option :value="1">有凭证</Option>
- </Select>
- </FormItem>
- <FormItem label="订单类型:">
- <Select v-model="orderData.is_level_order" style="width: 250px" class="mr30" clearable
- @on-change="userSearchs" placeholder="全部订单">
- <Option :value="-1">全部</Option>
- <Option :value="1">升级订单</Option>
- <Option :value="2">普通订单</Option>
- </Select>
- </FormItem>
- <FormItem label="订单状态:">
- <Select v-model="orderData.status" style="width: 250px" class="mr30" clearable
- @on-change="userSearchs" placeholder="全部">
- <Option value="">全部</Option>
- <Option value="0">待确认</Option>
- <Option value="1">未发货</Option>
- <Option value="2">待收货</Option>
- <Option value="3">待评价</Option>
- <Option value="4">交易完成</Option>
- <Option value="-4">已删除</Option>
- </Select>
- </FormItem>
- <FormItem label="支付方式:">
- <Select v-model="orderData.pay_type" clearable class="mr30" style="width: 250px"
- @on-change="userSearchs" placeholder="全部">
- <Option v-for="item in payList" :value="item.val" :key="item.id">{{
- item.label
- }}</Option>
- </Select>
- </FormItem>
- <FormItem label="订单搜索:">
- <Input v-model="orderData.real_name" placeholder="请输入" element-id="name" clearable
- style="width:250px;" maxlength="20">
- <Select v-model="orderData.field_key" slot="prepend" style="width:80px;" default-label="全部">
- <Option value="all">全部</Option>
- <Option value="order_id">订单号</Option>
- <Option value="uid">用户UID</Option>
- <Option value="real_name">用户姓名</Option>
- <Option value="user_phone">用户电话</Option>
- <Option value="title">商品名称</Option>
- <Option value="total_num">商品件数</Option>
- </Select>
- </Input>
- </FormItem>
- <Button type="primary" @click="userSearchs" class="ml20">查询</Button>
- <Button @click="reset" class="ml20">重置</Button>
- </div>
- </Form>
- </Card>
- <Card :bordered="false" dis-hover class="mt15">
- <div class="acea-row row-between">
- <div>
- <Tooltip content="本页至少选中一项" :disabled="!!checkUidList.length && isAll==0">
- <Button class="mr10" type="primary" :disabled="!checkUidList.length && isAll==0"
- @click="allOrderChecked">批量审核</Button>
- </Tooltip>
- </div>
- </div>
- <vxe-table border="inner" ref="xTable" class="mt25" :loading="loading" row-id="id"
- :expand-config="{accordion: true}" :checkbox-config="{reserve: true}" @checkbox-all="checkboxAll"
- @checkbox-change="checkboxItem" :data="orderList">
- <vxe-column type="" width="0"></vxe-column>
- <vxe-column type="expand" width="35">
- <template #content="{ row }">
- <div class="tdinfo">
- <Row class="expand-row">
- <Col span="8">
- <span class="expand-key">商品总价:</span>
- <span class="expand-value" v-text="row.total_price"></span>
- </Col>
- <Col span="8">
- <span class="expand-key">下单时间:</span>
- <span class="expand-value" v-text="row.add_time"></span>
- </Col>
- <Col span="8">
- <span class="expand-key">推广人:</span>
- <span class="expand-value" v-text="row.spread_nickname?row.spread_nickname:'无'"></span>
- </Col>
- </Row>
- <Row class="expand-row">
- <Col span="8">
- <span class="expand-key">用户备注:</span>
- <span class="expand-value" v-text="row.mark?row.mark:'无'"></span>
- </Col>
- <Col span="8">
- <span class="expand-key">商家备注:</span>
- <span class="expand-value" v-text="row.remark?row.remark:'无'"></span>
- </Col>
- </Row>
- </div>
- </template>
- </vxe-column>
- <vxe-column type="checkbox" width="100">
- <template #header>
- <div>
- <Dropdown transfer @on-click="allPages">
- <a href="javascript:void(0)" class="acea-row row-middle">
- <span>全选({{isAll==1?(total-checkUidList.length):checkUidList.length}})</span>
- <Icon type="ios-arrow-down"></Icon>
- </a>
- <template #list>
- <DropdownMenu>
- <DropdownItem name="0">当前页</DropdownItem>
- <DropdownItem name="1">所有页</DropdownItem>
- </DropdownMenu>
- </template>
- </Dropdown>
- </div>
- </template>
- </vxe-column>
- <vxe-column field="order_id" title="订单号" min-width="190">
- <template v-slot="{ row }">
- <Tooltip theme="dark" max-width="300" :delay="600" content="用户已删除"
- v-if="row.is_del === 1 && row.delete_time == null">
- <span style="color: #ed4014; display: block">{{row.order_id}}</span>
- </Tooltip>
- <span @click="changeMenu(row,'2')" v-else
- style="color: #2D8cF0; display: block;cursor: pointer;">{{row.order_id}}</span>
- </template>
- </vxe-column>
- <vxe-column field="info" title="商品信息" min-width="330">
- <template v-slot="{ row }">
- <Tooltip :transfer="true" theme="dark" max-width="300" :delay="600">
- <div class="tabBox" v-for="(val, i) in row._info" :key="i">
- <div class="tabBox_img" v-viewer>
- <img v-lazy="
- val.cart_info.productInfo.attrInfo
- ? val.cart_info.productInfo.attrInfo.image
- : val.cart_info.productInfo.image
- " />
- </div>
- <span class="tabBox_tit line1">
- <span class="font-color-red" v-if="val.cart_info.is_gift">赠品</span>
- {{ val.cart_info.productInfo.store_name + " | "}}
- {{val.cart_info.productInfo.attrInfo ? val.cart_info.productInfo.attrInfo.suk: ""}}
- </span>
- </div>
- <div slot="content">
- <div v-for="(val, i) in row._info" :key="i">
- <p class="font-color-red" v-if="val.cart_info.is_gift">赠品</p>
- <p>{{ val.cart_info.productInfo.store_name }}</p>
- <p> {{val.cart_info.productInfo.attrInfo ? val.cart_info.productInfo.attrInfo.suk: ""}}
- </p>
- <p class="tabBox_pice">
- {{ "¥" + val.cart_info.sum_price + " x " + val.cart_info.cart_num }}</p>
- </div>
- </div>
- </Tooltip>
- </template>
- </vxe-column>
- <vxe-column field="info" title="支付凭证" min-width="100">
- <template v-slot="{ row }">
- <div class="tabBox" v-if="row.pay_img.length>0">
- <div class="tabBox_img" v-for="it in row.pay_img" v-viewer><img v-lazy="it" /></div>
- </div>
- </template>
- </vxe-column>
- <vxe-column field="nickname" title="用户信息" min-width="130">
- <template v-slot="{ row }">
- <a @click="showUserInfo(row)">{{ row.nickname }}</a>
- <span style="color: #ed4014;" v-if="row.delete_time != null"> (已注销)</span>
- </template>
- </vxe-column>
- <!-- <vxe-column field="pink_name" title="订单类型" min-width="110"></vxe-column> -->
- <vxe-column field="is_level_order" title="订单类型" min-width="100">
- <template v-slot="{ row }">
- <Tag color="default" size="medium" v-show="row.is_level_order == 2">普通订单</Tag>
- <Tag color="green" size="medium" v-show="row.is_level_order == 1">升级订单</Tag>
- <Tag color="default" size="medium" v-show="row.is_level_order == 0">普通订单</Tag>
- </template>
- </vxe-column>
- <vxe-column field="pay_price" title="实际支付" min-width="90">
- <template v-slot="{ row }">
- <div>{{row.paid>0?row.pay_price:0}}</div>
- </template>
- </vxe-column>
-
- <vxe-column field="statusName" title="订单状态" min-width="100">
- <template v-slot="{ row }">
- <Tag color="default" size="medium" v-show="row.status == 3">{{row.status_name.status_name}}
- </Tag>
- <Tag color="orange" size="medium" v-show="row.status == 1 || row.status == 2"
- v-html="row.status_name.status_name"></Tag>
- <Tag color="red" size="medium" v-show="row.status == 0" v-html="row.status_name.status_name">
- </Tag>
- <Tag color="red" size="medium" v-show="row.status == 4">{{row.status_name.status_name}}</Tag>
- <Tag color="red" size="medium" v-show="row.status == 5">{{row.status_name.status_name}}</Tag>
- <Tag color="orange" size="medium" v-if="!row.is_all_refund && row.refund.length">部分退款中</Tag>
- <Tag color="orange" size="medium"
- v-if="row.is_all_refund && row.refund.length && row.refund_type != 6">退款中</Tag>
- </template>
- </vxe-column>
- <vxe-column field="pay_type" title="支付状态" min-width="90">
- <template v-slot="{ row }">
- <div>{{row.paid==1?'已支付':'未支付'}}</div>
- </template>
- </vxe-column>
- <vxe-column field="pay_status" title="审核状态" min-width="90">
- <template v-slot="{ row }">
- <Tag color="orange" size="medium" v-show="row.pay_status==0" v-html="'待审核'"></Tag>
- <Tag color="green" size="medium" v-show="row.pay_status==1" v-html="'已通过'"></Tag>
- <Tag color="red" size="medium" v-show="row.pay_status==2" v-html="'未通过'"></Tag>
- </template>
- </vxe-column>
- <vxe-column field="pay_type_name" title="支付方式" min-width="110"></vxe-column>
- <vxe-column field="_pay_time" title="支付时间" min-width="130"></vxe-column>
- <vxe-column field="action" title="操作" align="center" width="130" fixed="right">
- <template v-slot="{ row }">
- <a @click="changeMenu(row,'2')">详情</a>
- <Divider type="vertical" />
- <a @click="checkedSend(row)">审核</a>
- </template>
- </vxe-column>
- </vxe-table>
- <div class="acea-row row-right mt15">
- <Page :total="total" :current="orderData.page" show-elevator show-total @on-change="pageChange"
- :page-size="orderData.limit" />
- </div>
- </Card>
- <!-- 编辑 配送信息表单数据 退款 退积分 不退款-->
- <edit-from ref="edits" :FromData="FromData" @submitFail="submitFail"></edit-from>
- <!-- 详情 -->
- <details-from ref="detailss" :orderDatalist="orderDatalist" :orderId="orderId" :row-active="rowActive"
- :formType="1"></details-from>
- <!-- 会员详情-->
- <user-details ref="userDetails" fromType="order"></user-details>
- <!-- 备注 -->
- <order-remark ref="remarks" :orderId="orderId" @submitFail="submitFail"></order-remark>
- <!-- 记录 -->
- <order-record ref="record"></order-record>
- <!-- 发送货 -->
- <order-send ref="send" :orderId="orderId" @submitFail="submitFail">
- </order-send>
- <Modal v-model="manualModal" title="手动批量发货" @on-ok="manualModalOk" @on-cancel="manualModalCancel"
- class-name="vertical-center-modal">
- <Row type="flex">
- <Col span="4">
- <div style="line-height: 32px; text-align: right">文件:</div>
- </Col>
- <Col span="20">
- <Upload ref="upload" :action="uploadAction" :headers="uploadHeaders" accept=".xlsx,.xls"
- :format="['xlsx', 'xls']" :disabled="!!fileList.length" :on-success="uploadSuccess"
- :on-remove="removeFile">
- <Button icon="ios-cloud-upload-outline">上传文件</Button>
- </Upload>
- </Col>
- </Row>
- </Modal>
- <!--订单核销模态框-->
- <Modal v-model="modals2" title="订单核销" class="paymentFooter" scrollable width="400"
- class-name="vertical-center-modal">
- <Form ref="writeOffFrom" :model="writeOffFrom" :rules="writeOffRules" :label-position="labelPosition"
- class="tabform" @submit.native.prevent>
- <FormItem prop="code" label-for="code">
- <Input search enter-button="验证" style="width: 100%" type="text" placeholder="请输入12位核销码"
- @on-search="search('writeOffFrom')" v-model.number="writeOffFrom.code" number />
- </FormItem>
- </Form>
- <div slot="footer">
- <Button type="primary" @click="ok">立即核销</Button>
- <Button @click="del('writeOffFrom')">取消</Button>
- </div>
- </Modal>
- <auto-send ref="sends" :selectArr="checkUidList" :isAll="isAll"></auto-send>
- <queue-list ref="queue"></queue-list>
- <Modal v-model="showSend" title="进货单审核" width="900">
- <Form :label-width="labelWidth" :label-position="labelPosition" ref="showSend" :model="sendData"
- class="tabform">
- <FormItem label="支付凭证:">
- <div class="alertflex" >
-
- <div class="tabBox" v-for="it in actionSendData.pay_img" v-if="actionSendData.pay_img.length>0">
- <div class="alert_image" v-viewer><img v-lazy="it" /></div>
- </div>
- <div v-else>
- 无凭证
- </div>
- </div>
- </FormItem>
- <FormItem label="备注:">
- <Input v-model="sendData.mark" placeholder="备注" element-id="name" clearable style="width:500px;"
- maxlength="20">
- </Input>
- </FormItem>
- </Form>
- <div slot="footer">
- <Button @click="sendOrderChecked(2)">拒绝</Button>
- <Button type="primary" @click="sendOrderChecked(1)">通过</Button>
- </div>
- </Modal>
- </div>
- </template>
- <script>
- import {
- mapState
- } from "vuex";
- import editFrom from "@/components/from/from";
- import orderSend from "./components/orderSend";
- import detailsFrom from "./components/orderDetails";
- import orderRecord from "./components/orderRecord";
- import orderRemark from "./components/orderRemark";
- import userDetails from "@/components/userDetails/userDetails";
- import autoSend from "./components/autoSend";
- import queueList from "./components/queueList";
- import timeOptions from "@/utils/timeOptions";
- import util from "@/libs/util";
- import Setting from "@/setting";
- import exportExcel from "@/utils/newToExcel.js";
- import expandRow from "./components/tableExpand.vue";
- import {
- examine_lst,
- getOrdeDatas,
- getDataInfo,
- getRefundFrom,
- refundIntegral,
- getnoRefund,
- getDistribution,
- writeUpdate,
- storeOrderApi,
- handBatchDelivery,
- putWrite,
- exportExpressList,
- examine_status_order
- } from "@/api/order";
- export default {
- name: "index",
- components: {
- editFrom,
- detailsFrom,
- orderRecord,
- orderRemark,
- orderSend,
- userDetails,
- autoSend,
- queueList
- },
- data() {
- const codeNum = (rule, value, callback) => {
- if (!value) {
- return callback(new Error("请填写核销码"));
- }
- // 模拟异步验证效果
- if (!Number.isInteger(value)) {
- callback(new Error("请填写12位数字"));
- } else {
- const reg = /\b\d{12}\b/;
- if (!reg.test(value)) {
- callback(new Error("请填写12位数字"));
- } else {
- callback();
- }
- }
- };
- return {
- showSend: false, //显示审核弹窗
- actionSendData: {}, //保存点击的商品
- sendData: {
- id: '',
- status: "",
- mark: '',
- },
- isAll: 0,
- isCheckBox: false,
- checkUidList: [],
- manualModal: false,
- timeVal: [],
- options: timeOptions,
- payList: [{
- label: "全部",
- val: ""
- },
- {
- label: "微信支付",
- val: "1"
- },
- {
- label: "支付宝支付",
- val: "4"
- },
- {
- label: "余额支付",
- val: "2"
- },
- {
- label: "线下支付",
- val: "3"
- },
- ],
- // 订单列表
- orderData: {
- page: 1,
- limit: 10,
- type: "",
- status: "",
- data: "",
- real_name: "",
- pay_type: "",
- field_key: "all",
- pay_status: "-1",
- pay_img_status:1,
- is_level_order:-1,
- },
- orderList: [],
- total: 0,
- loading: false,
- orderConNum: 0,
- orderConId: 0,
- orderId: 0,
- delfromData: {},
- rowActive: {},
- orderDatalist: null,
- FromData: null,
- file: "",
- uploadAction: `${Setting.apiBaseURL}/file/upload/1`,
- uploadHeaders: {},
- fileList: [],
- modals2: false,
- writeOffRules: {
- code: [{
- validator: codeNum,
- trigger: "blur",
- required: true
- }],
- },
- writeOffFrom: {
- code: "",
- confirm: 0,
- },
- exportListOn: 0,
- exportList: [{
- name: "1",
- label: "导出发货单",
- },
- {
- name: "0",
- label: "导出订单",
- },
- ],
- };
- },
- watch: {
- $route() {
- if (this.$route.fullPath === `${Setting.roterPre}/order/list?type=7&status=1`) {
- this.getPath();
- }
- }
- },
- computed: {
- ...mapState("store/layout", ["isMobile"]),
- labelWidth() {
- return this.isMobile ? undefined : 80;
- },
- labelPosition() {
- return this.isMobile ? "top" : "right";
- },
- },
- created() {
- this.getToken();
- if (this.$route.fullPath === `${Setting.roterPre}/order/list?type=7&status=1`) {
- this.getPath();
- } else {
- this.getList();
- }
- },
- mounted() {
- },
- methods: {
- allOrderChecked(){
- if (this.checkUidList.length === 0 && this.isAll == 0) {
- return this.$Message.error('请先选择删除的订单!')
- }
- let idss = {
- all: this.isAll,
- ids: this.checkUidList,
- }
-
- this.sendData.id=this.checkUidList.join(',');
- this.sendData.status =1
- let delfromData = {
- title: "审核通过订单",
- url: `/order/examine`,
- method: "post",
- ids: this.sendData,
- };
- this.$modalSure(delfromData).then((res) => {
- this.$Message.success(res.msg);
- this.allReset();
- this.getList();
- }).catch((res) => {
- this.$Message.error(res.msg);
- });
- },
- // 通过拒绝审核
- sendOrderChecked(type) {
- if (type == 2 && this.sendData.mark == "") {
- this.$Message.error("请填写拒绝原因");
- return
- }
- this.sendData.status = type;
- examine_status_order(this.sendData)
- .then((res) => {
- this.$Message.success(res.msg);
- this.getList();
- this.showSend = false;
- })
- .catch((res) => {
- this.$Message.error(res.msg);
- });
- },
- // 点击显示弹窗
- checkedSend(item) {
- this.showSend = true;
- this.actionSendData = item;
- this.sendData.id = item.id;
- },
- //跳转刷新
- getPath() {
- this.orderData.page = 1;
- this.orderData.status = this.$route.query.status;
- this.getList();
- },
- allReset() {
- this.isAll = 0;
- this.isCheckBox = false;
- this.$refs.xTable.setAllCheckboxRow(false);
- this.checkUidList = [];
- },
- allPages(e) {
- this.isAll = e;
- if (e == 0) {
- this.$refs.xTable.toggleAllCheckboxRow();
- // this.checkboxAll();
- } else {
- if (!this.isCheckBox) {
- this.$refs.xTable.setAllCheckboxRow(true);
- this.isCheckBox = true;
- this.isAll = 1;
- } else {
- this.$refs.xTable.setAllCheckboxRow(false);
- this.isCheckBox = false;
- this.isAll = 0;
- }
- this.checkUidList = []
- }
- },
- checkboxItem(e) {
- let id = parseInt(e.rowid);
- let index = this.checkUidList.indexOf(id);
- if (index !== -1) {
- this.checkUidList = this.checkUidList.filter((item) => item !== id);
- } else {
- this.checkUidList.push(id);
- }
- },
- checkboxAll() {
- // 获取选中当前值
- let obj2 = this.$refs.xTable.getCheckboxRecords(true);
- // 获取之前选中值
- let obj = this.$refs.xTable.getCheckboxReserveRecords(true);
- if (this.isAll == 0 && this.checkUidList.length <= obj.length && !this.isCheckBox) {
- obj = [];
- }
- obj = obj.concat(obj2);
- let ids = [];
- obj.forEach((item) => {
- ids.push(parseInt(item.id))
- })
- this.checkUidList = ids;
- if (!obj2.length) {
- this.isCheckBox = false;
- }
- },
- printOreder() {
- if (this.checkUidList.length > 10 || (this.isAll == 1 && this.total > 10)) {
- return this.$Message.error('最多批量打印10个订单')
- }
- let ids = []
- if (this.isAll == 1 && this.total <= 10) {
- this.orderList.forEach(item => {
- ids.push(parseInt(item.id))
- })
- }
- let pathInfo = this.$router.resolve({
- path: `${Setting.roterPre}/order/distribution`,
- query: {
- id: this.isAll == 1 ? ids.join(',') : this.checkUidList.join(','),
- }
- });
- window.open(pathInfo.href, '_blank');
- },
- reset() {
- this.timeVal = [];
- this.orderData = {
- page: 1,
- limit: 10,
- type: "",
- status: "",
- data: "",
- real_name: "",
- pay_type: "",
- field_key: "all",
- pay_status: "-1",
- pay_img_status:1,
- is_level_order:-1,
- };
- this.getList();
- },
- queuemModal() {
- this.$refs.queue.modal = true;
- },
- delAll() {
- if (this.checkUidList.length === 0 && this.isAll == 0) {
- return this.$Message.error('请先选择删除的订单!')
- }
- let idss = {
- all: this.isAll,
- ids: this.checkUidList,
- }
- let delfromData = {
- title: "删除订单",
- url: `/order/dels`,
- method: "post",
- ids: idss,
- };
- this.$modalSure(delfromData).then((res) => {
- this.$Message.success(res.msg);
- this.allReset();
- this.getList();
- }).catch((res) => {
- this.$Message.error(res.msg);
- });
- },
- onAuto() {
- this.$refs.sends.modals = true;
- this.$refs.sends.getList();
- this.$refs.sends.getDeliveryList();
- },
- // 订单导出
- async exports(value) {
- this.exportListOn = this.exportList.findIndex(
- (item) => item.name === value
- );
- let [th, filekey, data, fileName] = [
- [],
- [],
- [], ""
- ];
- let excelData = JSON.parse(JSON.stringify(this.orderData));
- excelData.page = 1;
- excelData.type = value;
- excelData.ids = this.checkUidList.join();
- for (let i = 0; i < excelData.page + 1; i++) {
- let lebData = await this.downOrderData(excelData);
- if (!fileName) fileName = lebData.filename;
- if (!filekey.length) {
- filekey = lebData.filekey;
- }
- if (!th.length) th = lebData.header;
- if (lebData.export.length) {
- data = data.concat(lebData.export);
- excelData.page++;
- } else {
- exportExcel(th, filekey, fileName, data);
- return;
- }
- }
- },
- downOrderData(excelData) {
- return new Promise((resolve, reject) => {
- storeOrderApi(excelData).then((res) => {
- return resolve(res.data);
- });
- });
- },
- // 订单核销
- writeOff() {
- this.modals2 = true;
- },
- // 验证
- search(name) {
- this.$refs[name].validate((valid) => {
- if (valid) {
- this.writeOffFrom.confirm = 0;
- putWrite(this.writeOffFrom)
- .then(async (res) => {
- if (res.status === 200) {
- this.$Message.success(res.msg);
- } else {
- this.$Message.error(res.msg);
- }
- })
- .catch((res) => {
- this.$Message.error(res.msg);
- });
- } else {
- this.$Message.error("请填写正确的核销码");
- }
- });
- },
- // 订单核销
- ok() {
- if (!this.writeOffFrom.code) {
- this.$Message.warning("请先验证订单!");
- } else {
- this.writeOffFrom.confirm = 1;
- putWrite(this.writeOffFrom)
- .then(async (res) => {
- if (res.status === 200) {
- this.$Message.success(res.msg);
- this.modals2 = false;
- this.$refs[name].resetFields();
- this.getList()
- } else {
- this.$Message.error(res.msg);
- }
- })
- .catch((res) => {
- this.$Message.error(res.msg);
- });
- }
- },
- del(name) {
- this.modals2 = false;
- this.writeOffFrom.confirm = 0;
- this.$refs[name].resetFields();
- },
- // 上传头部token
- getToken() {
- this.uploadHeaders["Authori-zation"] = "Bearer " + util.cookies.get("token");
- },
- // 上传成功
- uploadSuccess(res, file, fileList) {
- if (res.status === 200) {
- this.$Message.success(res.msg);
- this.file = res.data.src;
- this.fileList = fileList;
- } else {
- this.$Message.error(res.msg);
- }
- },
- //移除文件
- removeFile(file, fileList) {
- this.file = "";
- this.fileList = fileList;
- },
- // 下载物流公司对照表
- async getExpressList() {
- let [th, filekey, data, fileName] = [
- [],
- [],
- [], ""
- ];
- let lebData = await this.getExcelData();
- if (!fileName) fileName = lebData.filename;
- if (!filekey.length) {
- filekey = lebData.filekey;
- }
- if (!th.length) th = lebData.header;
- data = lebData.export;
- exportExcel(th, filekey, fileName, data);
- },
- getExcelData() {
- return new Promise((resolve, reject) => {
- exportExpressList().then((res) => {
- return resolve(res.data);
- });
- });
- },
- // 手动批量发货-确定
- manualModalOk() {
- this.$refs.upload.clearFiles();
- handBatchDelivery({
- file: this.file,
- }).then((res) => {
- this.$Message.success(res.msg);
- this.fileList = [];
- }).catch((err) => {
- this.$Message.error(err.msg);
- this.fileList = [];
- });
- },
- // 手动批量发货-取消
- manualModalCancel() {
- this.fileList = [];
- this.$refs.upload.clearFiles();
- },
- // 核销订单
- bindWrite(row) {
- let self = this;
- this.$Modal.confirm({
- title: "提示",
- content: "确定要核销该订单吗?",
- cancelText: "取消",
- closable: true,
- maskClosable: true,
- onOk: function() {
- writeUpdate(row.order_id).then((res) => {
- self.$Message.success(res.msg);
- self.getList();
- });
- },
- onCancel: () => {},
- });
- },
- // 配送信息表单数据
- delivery(row, num) {
- getDistribution(row.id).then(async (res) => {
- this.orderConNum = num;
- this.orderConId = row.pid;
- this.FromData = res.data;
- this.$refs.edits.modals = true;
- if (num != 1) {
- this.getData(this.orderId, 1);
- }
- }).catch((res) => {
- this.$Message.error(res.msg);
- });
- },
- // 编辑
- edit(row) {
- this.getOrderData(row.id);
- },
- // 获取编辑表单数据
- getOrderData(id) {
- getOrdeDatas(id).then(async (res) => {
- if (res.data.status === false) {
- return this.$authLapse(res.data);
- }
- this.$authLapse(res.data);
- this.FromData = res.data;
- this.$refs.edits.modals = true;
- }).catch((res) => {
- this.$Message.error(res.msg);
- });
- },
- // 发送货
- sendOrder(row, num) {
- this.orderConId = row.pid;
- this.orderConNum = num;
- this.$store.commit("store/order/setSplitOrder", row.total_num);
- this.$refs.send.modals = true;
- this.orderId = row.id;
- this.$refs.send.getList();
- this.$refs.send.getDeliveryList();
- this.$nextTick((e) => {
- this.$refs.send.getCartInfo(row._status, row.id);
- });
- },
- // 修改成功
- submitFail() {
- this.getList();
- if (this.orderConNum != 1) {
- this.getData(this.orderId, 1);
- } else {
- this.$refs.detailss.getSplitOrder(this.orderConId);
- }
- },
- // 操作
- changeMenu(row, name, num) {
- this.orderId = row.id;
- this.orderConId = row.pid > 0 ? row.pid : row.id;
- this.orderConNum = num;
- switch (name) {
- case "1":
- this.delfromData = {
- title: "修改立即支付",
- url: `/order/pay_offline/${row.id}`,
- method: "post",
- ids: "",
- };
- this.$modalSure(this.delfromData)
- .then((res) => {
- this.$Message.success(res.msg);
- this.getData(row.id, 1);
- this.getList();
- })
- .catch((res) => {
- this.$Message.error(res.msg);
- });
- break;
- case "2":
- this.rowActive = row;
- this.getData(row.id);
- break;
- case "3":
- this.$refs.record.modals = true;
- this.$refs.record.getList(row.id);
- break;
- case "4":
- this.$refs.remarks.formValidate.remark = row.remark;
- this.$refs.remarks.modals = true;
- break;
- case "5":
- this.getOnlyRefundData(row.id, row.refund_type);
- break;
- case "55":
- this.getRefundData(row.id, row.refund_type);
- break;
- case "6":
- this.getRefundIntegral(row.id);
- break;
- case "7":
- this.getNoRefundData(row.id);
- break;
- case "8":
- this.delfromData = {
- title: "修改确认收货",
- url: `/order/take/${row.id}`,
- method: "put",
- ids: "",
- };
- this.$modalSure(this.delfromData)
- .then((res) => {
- this.$Message.success(res.msg);
- this.getList();
- if (num) {
- this.$refs.detailss.getSplitOrder(row.pid)
- } else {
- this.getData(row.id, 1);
- }
- })
- .catch((res) => {
- this.$Message.error(res.msg);
- });
- break;
- case "10":
- this.delfromData = {
- title: "立即打印订单",
- info: "您确认打印此订单吗?",
- url: `/order/print/${row.id}`,
- method: "get",
- ids: "",
- };
- this.$modalSure(this.delfromData)
- .then((res) => {
- this.$Message.success(res.msg);
- this.getList();
- })
- .catch((res) => {
- this.$Message.error(res.msg);
- });
- break;
- case "11":
- this.delfromData = {
- title: "立即打印电子面单",
- info: "您确认打印此电子面单吗?",
- url: `/order/order_dump/${row.id}`,
- method: "get",
- ids: "",
- };
- this.$modalSure(this.delfromData)
- .then((res) => {
- this.$Message.success(res.msg);
- this.getList();
- })
- .catch((res) => {
- this.$Message.error(res.msg);
- });
- break;
- case "12":
- let pathInfo = this.$router.resolve({
- path: `${Setting.roterPre}/order/distribution`,
- query: {
- id: row.id
- }
- });
- window.open(pathInfo.href, '_blank');
- break;
- default:
- this.delfromData = {
- title: "删除订单",
- url: `/order/del/${row.id}`,
- method: "DELETE",
- ids: "",
- };
- this.delOrder(row, this.delfromData);
- }
- },
- // 获取详情表单数据
- getData(id, type) {
- getDataInfo(id)
- .then(async (res) => {
- if (!type) {
- this.$refs.detailss.modals = true;
- }
- this.$refs.detailss.activeName = 'detail';
- this.orderDatalist = res.data;
- if (this.orderDatalist.orderInfo.refund_reason_wap_img) {
- try {
- this.orderDatalist.orderInfo.refund_reason_wap_img = JSON.parse(
- this.orderDatalist.orderInfo.refund_reason_wap_img
- );
- } catch (e) {
- this.orderDatalist.orderInfo.refund_reason_wap_img = [];
- }
- }
- })
- .catch((res) => {
- this.$Message.error(res.msg);
- });
- },
- // 仅退款
- getOnlyRefundData(id, refund_type) {
- this.$modalForm(getRefundFrom(id)).then(() => {
- this.getList();
- this.$refs.detailss.modals = false;
- });
- },
- // 退货退款
- getRefundData(id, refund_type) {
- this.delfromData = {
- title: "是否立即退货退款",
- url: `/refund/agree/${id}`,
- method: "get",
- };
- this.$modalSure(this.delfromData)
- .then((res) => {
- this.$Message.success(res.msg);
- this.getList();
- })
- .catch((res) => {
- this.$Message.error(res.msg);
- });
- },
- // 获取退积分表单数据
- getRefundIntegral(id) {
- refundIntegral(id)
- .then(async (res) => {
- this.FromData = res.data;
- this.$refs.edits.modals = true;
- })
- .catch((res) => {
- this.$Message.error(res.msg);
- });
- },
- // 不退款表单数据
- getNoRefundData(id) {
- this.$modalForm(getnoRefund(id)).then(() => {
- this.getList();
- });
- },
- // 删除单条订单
- delOrder(row, data) {
- if (row.is_del === 1) {
- this.$modalSure(data)
- .then((res) => {
- this.$Message.success(res.msg);
- this.getList();
- this.$refs.detailss.modals = false;
- })
- .catch((res) => {
- this.$Message.error(res.msg);
- });
- } else {
- const title = "错误!";
- const content =
- "<p>您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!</p>";
- this.$Modal.error({
- title: title,
- content: content,
- });
- }
- },
- getList() {
- this.loading = true;
- examine_lst(this.orderData).then(res => {
- let data = res.data;
- data.data.forEach((item) => {
- if (item.id == this.orderId) {
- this.rowActive = item;
- }
- });
- this.$set(this, 'orderList', data.data);
- this.total = res.data.count;
- this.loading = false;
- this.$nextTick(function() {
- if (this.isAll == 1) {
- if (this.isCheckBox) {
- this.$refs.xTable.setAllCheckboxRow(true);
- } else {
- this.$refs.xTable.setAllCheckboxRow(false);
- }
- } else {
- let obj = this.$refs.xTable.getCheckboxReserveRecords(true);
- if (!this.checkUidList.length || this.checkUidList.length <= obj.length) {
- this.$refs.xTable.setAllCheckboxRow(false);
- }
- }
- })
- }).catch(err => {
- this.loading = false;
- this.$Message.error(err.msg)
- })
- },
- // 具体日期
- onchangeTime(e) {
- if (e[1].slice(-8) === "00:00:00") {
- e[1] = e[1].slice(0, -8) + "23:59:59";
- this.timeVal = e;
- } else {
- this.timeVal = e;
- }
- this.orderData.data = this.timeVal[0] ? this.timeVal.join("-") : "";
- this.orderData.page = 1;
- this.allReset();
- this.getList();
- },
- showUserInfo(row) {
- this.$refs.userDetails.modals = true;
- this.$refs.userDetails.activeName = 'info';
- this.$refs.userDetails.getDetails(row.uid);
- },
- pageChange(index) {
- this.orderData.page = index;
- this.getList();
- },
- userSearchs() {
- this.allReset();
- this.orderData.page = 1;
- this.getList();
- }
- },
- };
- </script>
- <style lang="stylus" scoped>
- .tdinfo {
- margin-left: 75px;
- margin-top: 16px;
- }
- .expand-row {
- margin-bottom: 16px;
- font-size: 12px;
- }
- .alertflex{
- display: flex;
- justify-content: flex-start
- flex-wrap: wrap
- }
- .tabBox {
- width: 100%;
- height: 100%;
- display: flex;
- align-items: center;
- .alert_image{
- width: 300px;
- height: 300px;
-
- img {
- width: 100%;
- height: 100%;
- }
- }
- .tabBox_img {
- width: 30px;
- height: 30px;
- img {
- width: 100%;
- height: 100%;
- }
- }
- .tabBox_tit {
- width: 267px;
- height: 30px;
- line-height: 30px;
- font-size: 12px !important;
- margin: 0 2px 0 10px;
- letter-spacing: 1px;
- box-sizing: border-box;
- }
- }
- .tabBox+.tabBox {
- margin-top: 5px;
- }
- </style>
|