| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344 |
- <template>
- <div class="app-container">
- <div class="filter-container">
- <el-date-picker
- v-model="searchData.searchTime"
- :picker-options="pickerOptions"
- class="filter-item"
- type="daterange"
- format="yyyy年MM月dd日"
- value-format="yyyy-MM-dd"
- align="left"
- unlink-panels
- range-separator="至"
- start-placeholder="开始日期"
- end-placeholder="结束日期"
- />
- <el-input v-model="searchData.adFrom" placeholder="请输入消息/广告媒体来源" class="filter-item" />
- <el-select v-model="searchData.type" class="filter-item" filterable clearable placeholder="请选择订单类型">
- <el-option v-for="item in orderType" :key="item.F_Value" :label="item.F_Value" :value="item.F_Value"/>
- </el-select>
- <el-input v-model="searchData.id" placeholder="请输入订单号" class="filter-item" />
- <el-input v-model="searchData.customer" placeholder="请输入客户姓名" class="filter-item" />
- <el-input v-model="searchData.customerPhone" placeholder="请输入客户手机号" class="filter-item" />
- <el-input v-model="searchData.trackingNo" placeholder="请输入运单号" class="filter-item" />
- <el-button type="primary" class="filter-item" icon="el-icon-search" @click="btn_search">搜索</el-button>
- <el-button v-permission="'HY_export'" type="primary" class="filter-item" icon="el-icon-upload2" @click="btn_export">导出</el-button>
- <el-button v-permission="'HY_import'" type="primary" class="filter-item" icon="el-icon-download" @click="btn_import">导入</el-button>
- <el-button v-permission="'HY_merge'" type="primary" class="filter-item" @click="btn_merge">合并</el-button>
- <el-button v-permission="'HY_split'" type="primary" class="filter-item" @click="btn_split">拆分</el-button>
- </div>
- <el-tabs v-model="activeName" type="card" @tab-click="handleTabClick" >
- <el-tab-pane label="全部" name="-2"></el-tab-pane>
- <el-tab-pane label="无效" name="-1"></el-tab-pane>
- <el-tab-pane label="暂存" name="0"></el-tab-pane>
- <el-tab-pane label="提交" name="1"></el-tab-pane>
- <el-tab-pane label="退回" name="2"></el-tab-pane>
- <el-tab-pane label="通过" name="3"></el-tab-pane>
- <el-tab-pane label="无货" name="4"></el-tab-pane>
- <el-tab-pane label="已分拣" name="5"></el-tab-pane>
- <el-tab-pane label="已发货" name="6"></el-tab-pane>
- </el-tabs>
- <el-table v-loading="loading" :data="dataLists" border stripe @selection-change="handleSelectionChange" row-key="F_Id">
- <el-table-column type="selection" :reserve-selection="true"></el-table-column>
- <el-table-column type="index" label="编号" align="center" fixed width="80" />
- <el-table-column prop="F_Id" label="订单编号" align="center" min-width="150" />
- <el-table-column prop="F_Customer" label="客户姓名" align="center" min-width />
- <el-table-column prop="F_CustomerPhone" label="手机号码" align="center" min-width="140" />
- <el-table-column label="订购商品" align="center" min-width>
- <template slot-scope="scope">
- {{ scope.row.OrderDetailList | judgmentOrderGoods}}
- </template>
- </el-table-column>
- <el-table-column prop="F_AddTime" label="下单日期" align="center" />
- <el-table-column label="订单状态" align="center" >
- <template slot-scope="scope">
- {{ scope.row.F_State | judgmentStateName }}
- </template>
- </el-table-column>
- <el-table-column prop="F_AddUserName" label="下单员工" align="center" />
- <el-table-column prop="F_BelongName" label="归属员工" align="center" />
- <el-table-column prop="F_Type" label="订单类型" align="center" />
- <el-table-column prop="F_Express" label="快递公司" align="center" />
- <el-table-column label="操作" width="240" align="center" class-name="oparate_btn" fixed="right">
- <template slot-scope="scope">
- <el-button v-permission="'HY_detail'" type="text" @click="btn_detail(scope.row.F_Id)">详情</el-button>
- <el-button v-permission="'HY_apply'" type="text" @click="btn_apply(scope.row.F_Id)">申请</el-button>
- <el-button v-permission="'HY_edit'" type="text" @click="btn_edit(scope.row.F_Id)">编辑</el-button>
- <el-button v-permission="'HY_cancel'" type="text" @click="btn_cancel(scope.row.F_Id)">撤销</el-button>
- <el-button v-permission="'HY_afterSale'" type="text" @click="btn_afterSale(scope.row.F_Id)">售后</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- v-show="pageParams.total > 0"
- :total="pageParams.total"
- :pageindex.sync="pageParams.pageindex"
- :pagesize.sync="pageParams.pagesize"
- class="pagination"
- @pagination="getList"
- />
- </div>
- </template>
- <script>
- import { getDictionaryValueList } from '@/api/commonAPI'
- import { getAfterSaleOrderList } from "@/api/afterSaleManagement/afterSaleList";
- import { pickerOptions, formatterContent } from "@/utils";
- // import edit from "./edit";
- // import cancel from './cancel';
- // import detail from './detail';
- // import merge from './merge';
- // import apply from './apply';
- // import importAuth from './importAuth';
- import afterSale from './afterSale';
- import Pagination from "@/components/Pagination"; // 对el-pagination 二次封装
- export default {
- name: "orderList",
- components: {
- Pagination
- },
- filters: {
- judgmentStateName(status) {
- const statusMap = {
- '-1': '无效',
- '0': '暂存',
- '1': '提交',
- '2': '退回',
- '3': '通过',
- '4': '无货',
- '5': '已分拣',
- '6': '已发货'
- }
- return statusMap[status]
- },
- judgmentOrderGoods(status) {
- let orderGoodsNameQuantity = ''
- for (let i = 0; i < status.length; i++) {
- orderGoodsNameQuantity = `${orderGoodsNameQuantity}${status[i].F_ProductName}*${status[i].F_Count},`
- }
- orderGoodsNameQuantity = orderGoodsNameQuantity.substring(0, orderGoodsNameQuantity.length - 1)
- return orderGoodsNameQuantity
- },
- },
- data() {
- return {
- loading: false,
- searchData: {
- adFrom: '', //消息/广告媒体来源
- type: '', //订单类型
- id: '', //订单号
- customer: '', //客户姓名
- customerPhone: '', //客户手机号
- trackingNo: '', //运单号
- searchTime: '', //订单时间
- },
- activeName: "-2", //标签切换首页
- pickerOptions, // 日期数据
- pageParams: {
- pageindex: 1, // 当前第几页
- pagesize: Number(this.$store.getters.serverConfig.PAGESIZE), // 每页几条数据
- total: 0 // 总共多少数据
- },
- dataLists: [], // 列表数据
- multipleSelection: [], // 选中的数据
- selectedId: [], // 选中的数据的id
- orderType: [],//订单类型
- mergeOrderId: [], //合并订单id
- };
- },
- created() {
- this.getOrderType()
- this.getList()
- document.onkeyup = e => {
- if (e.keyCode === 13) {
- this.getList();
- }
- };
- },
- methods: {
- getList() {
- this.loading = true;
- return new Promise(resolve => {
- const params = {
- F_State: this.activeName, //订单状态
- pageindex: this.pageParams.pageindex, // int 第几页
- pagesize: this.pageParams.pagesize, // int 每页几条信息
- F_ADFrom: this.searchData.adFrom, //消息/广告来源
- F_Type: this.searchData.type, //订单类型
- F_Id: this.searchData.id, //订单号
- F_Customer: this.searchData.customer, //客户姓名
- F_CustomerPhone: this.searchData.customerPhone, //客户手机号
- F_TrackingNo: this.searchData.trackingNo, //运单号
- SearchStartTime: this.searchData.searchTime[0], //添加开始时间
- SearchEndTime: this.searchData.searchTime[1], //添加结束时间
- };
- getAfterSaleOrderList(params).then(response => {
- this.loading = false;
- if (response.state.toLowerCase() === "success") {
- this.pageParams.total = response.data.Totals;
- this.dataLists = response.data.Rows;
- }
- });
- resolve();
- });
- },
- // 获取订单类型
- getOrderType() {
- return new Promise(resolve=>{
- const params={
- isleaf:true,
- code:'ORDERTYPE'
- }
- getDictionaryValueList(params).then(response=>{
- if(response.state.toLowerCase() === 'success'){
- this.orderType = response.data.Rows
- }
- })
- })
- },
- handleTabClick(tab, event) {
- this.getList()
- },
- handle(ordercode){
- this.$layer.iframe({
- content: {
- content: detail, // 传递的组件对象
- parent: this, // 当前的vue对象
- data: { 'rowid': ordercode }// props
- },
- area: ['80%', '90%'],
- title: '订单详情'
- })
- },
- btn_detail(ordercode){
- this.$layer.iframe({
- content: {
- content: detail, // 传递的组件对象
- parent: this, // 当前的vue对象
- data: { 'rowid': ordercode }// props
- },
- area: ['80%', '90%'],
- title: '订单详情'
- })
- },
- btn_search() {
- this.pageParams.pageindex = 1;
- this.getList();
- },
- btn_edit(editId) {
- this.$layer.iframe({
- content: {
- content: edit, // 传递的组件对象
- parent: this, // 当前的vue对象
- data: { rowid: editId } // props
- },
- area: ["80%", "90%"],
- title: "编辑订单"
- });
- },
- //导出
- btn_export() {},
- //导入
- btn_import(){
- this.$layer.iframe({
- content: {
- content: importAuth, // 传递的组件对象
- parent: this, // 当前的vue对象
- data: { 'rowid': '' }// props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
- },
- area: ['40%', '380px'],
- shadeClose: false,
- title: '导入订单信息'
- })
- },
- //申请
- btn_apply(applyId) {
- this.$layer.iframe({
- content: {
- content: apply, // 传递的组件对象
- parent: this, // 当前的vue对象
- data: { rowid: applyId } // props
- },
- area: ["30%", "40%"],
- title: "申请内容"
- });
- },
- //撤销
- btn_cancel(orderId) {
- this.$confirm('您确定要将此工单撤销吗?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- const data = {
- orderid: orderId,
- state: 0, //撤销 0
- }
- cancelOrder(data).then(response => {
- if (response.state.toLowerCase() === 'success') {
- this.getList()
- this.$message.success('撤销成功!')
- }
- })
- }).catch(() => {
- this.$message({
- type: 'info',
- message: '已取消撤销'
- });
- });
- },
- //售后
- btn_afterSale(afterSalesId) {
- this.$layer.iframe({
- content: {
- content: afterSale, // 传递的组件对象
- parent: this, // 当前的vue对象
- data: { rowid: afterSalesId } // props
- },
- area: ["80%", "80%"],
- title: "售后内容"
- });
- },
- //合并
- btn_merge() {
- if (this.mergeOrderId.length < 2) {
- this.$message({
- message: '最少选择两条订单!',
- type: 'warning'
- });
- return
- }
- this.$layer.iframe({
- content: {
- content: merge, // 传递的组件对象
- parent: this, // 当前的vue对象
- data: { rowid: this.mergeOrderId } // props
- },
- area: ["80%", "90%"],
- title: "合并订单"
- });
- },
- //拆分
- btn_split() {},
- //选择多个
- handleSelectionChange(val) {
- const ids = []
- this.multipleSelection = val
- for (let i=0; i<this.multipleSelection.length; i++) {
- ids.push(this.multipleSelection[i].F_Id)
- }
- this.mergeOrderId = ids
- },
- }
- };
- </script>
- <style rel="stylesheet/scss" lang="scss" scoped>
- .el{
- cursor: pointer;
- }
- </style>
|