You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

297 lines
12 KiB

4 years ago
<template>
<div>
<el-row :gutter="20">
<el-col :span="24">
<el-card shadow="hover" class="mgb20">
<div>
<div class="flex-center mgb20">
<p class="hr_tag"></p>
<span>筛选</span>
</div>
<div>
<el-form label-width="80px">
3 years ago
<el-col :span="4">
4 years ago
<el-form-item label="省份">
<el-select v-model="form.provinces" clearable placeholder="请选择省份"
@change="getCity()" @clear="clearprovince()">
<el-option v-for="(item,index) in provinceList" :key="index"
:label="item.provinceName" :value="item.provinceId"></el-option>
4 years ago
</el-select>
</el-form-item>
</el-col>
3 years ago
<el-col :span="4">
4 years ago
<el-form-item label="城市">
<el-select v-model="form.city" clearable placeholder="请选择城市"
:disabled="form.provinces ? false : true" @change="getData()">
<el-option v-for="(item,index) in cityList" :key="index"
:label="item.cityName" :value="item.cityId"></el-option>
4 years ago
</el-select>
</el-form-item>
</el-col>
3 years ago
<el-col :span="4">
4 years ago
<el-form-item label="订单类型">
<el-select v-model="form.orderType" clearable placeholder="请选择订单类型"
@change="getData()">
<el-option v-for="(item,index) in orderTypeList" :key="index"
:label="item.name" :value="item.value"></el-option>
4 years ago
</el-select>
</el-form-item>
</el-col>
3 years ago
<el-col :span="4">
4 years ago
<el-form-item label="订单状态">
<el-select v-model="form.orderStatus" clearable placeholder="请选择订单状态"
@change="getData()">
<el-option v-for="(item,index) in orderStatusList" :key="index"
:label="item.name" :value="item.value"></el-option>
4 years ago
</el-select>
</el-form-item>
</el-col>
3 years ago
<el-col :span="6">
4 years ago
<el-form-item>
<el-input placeholder="请输入订单号/客户名称/订单名称" prefix-icon="el-icon-search" v-model="keyword" clearable></el-input>
4 years ago
</el-form-item>
</el-col>
</el-form>
</div>
</div>
4 years ago
</el-card>
</el-col>
<el-col :span="24">
<el-card shadow="hover" class="mgb20">
<div class="flex-between mgb20">
<div class="flex-center">
<p class="hr_tag"></p>
<span>订单列表</span>
</div>
<div>
<el-button type="primary" round class="mag" @click="addOrder()">新建订单</el-button>
<el-button type="primary" round @click="delAllSelection">批量删除</el-button>
4 years ago
</div>
</div>
<el-table :data="orderData" class="table" stripe header-align="center"
@selection-change="handleSelectionChange" :row-key="getRowKeys">
<el-table-column type="selection" width="55" align="center"
:reserve-selection="true"></el-table-column>
4 years ago
<el-table-column type="index" width="100" label="序号" align="center">
</el-table-column>
<el-table-column prop="orderNumber" label="订单编号" align="center">
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center">
</el-table-column>
<el-table-column prop="orderContent" label="订单内容" align="center">
</el-table-column>
4 years ago
<el-table-column prop="orderAmount" label="订单金额(元)" align="center">
4 years ago
</el-table-column>
<el-table-column prop="createTime" label="订单日期" align="center">
4 years ago
</el-table-column>
<el-table-column prop="orderType" label="订单类型" align="center">
</el-table-column>
<el-table-column prop="orderStatus" label="订单状态" align="center">
</el-table-column>
<el-table-column prop="orderNature" label="订单性质" align="center">
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button type="text" v-if="scope.row.isDel!==1" @click="handle('edit',scope.row)">
{{ scope.row.orderStatus === "已完成" ? "修改" : "处理" }}
</el-button>
<el-button type="text" @click="handle('watch',scope.row)">查看</el-button>
4 years ago
<el-button type="text" @click="handleDelete(scope.row)">删除</el-button>
<el-button type="text" v-if="scope.row.orderStatus==='已完成'&&scope.row.isDel!==1"
@click="handle('renew',scope.row)">续费
</el-button>
4 years ago
</template>
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination background layout="total, prev, pager, next"
@current-change="handleCurrentChange" :current-page="pageNo" :total="totals">
4 years ago
</el-pagination>
</div>
</el-card>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
data() {
return {
form: {
provinces: "",
city: "",
orderType: "",
orderStatus: ""
4 years ago
},
keyword: "",
orderData: [],
4 years ago
multipleSelection: [],
provinceList: this.$store.state.provinceList,
cityList: [],
orderTypeList: [{
name: "正式",
4 years ago
value: 1
},
{
name: "试用",
value: 2
}],
4 years ago
orderStatusList: [{
name: "待发货",
value: 0
4 years ago
},
{
name: "已完成",
value: 1
},
{
name: "已取消",
value: 2
}],
4 years ago
pageNo: 1,
pageSize: 10,
totals: 1,
searchTimer: null
4 years ago
};
},
watch: {
keyword: function(val) {
clearTimeout(this.searchTimer);
this.searchTimer = setTimeout(() => {
this.initData();
}, 500);
}
},
created() {
this.getData();
4 years ago
},
methods: {
test(val) {
if (val.length > 5) {
val = 5;
}
},
4 years ago
getData() {
let data = {
cityId: this.form.city,
customerName: this.keyword,
4 years ago
orderStatus: this.form.orderStatus,
orderType: this.form.orderType,
4 years ago
pageNo: this.pageNo,
pageSize: this.pageSize,
provinceId: this.form.provinces
};
this.$post(this.api.orderList, data).then(res => {
res.orderPage.orders.forEach(e => {
e.orderType = this.orderTypeFn(e.orderType);
e.orderStatus = this.orderStatusFn(e.orderStatus);
e.orderNature = this.orderNatureFn(e.orderNature);
});
this.orderData = res.orderPage.orders;
this.totals = res.orderPage.total;
}).catch(res => {
});
4 years ago
},
// 清除省份
clearprovince() {
this.form.city = "";
4 years ago
},
// 获取城市
getCity() {
this.clearprovince();
this.getCityData();
this.pageNo = 1;
this.getData();
4 years ago
},
getCityData() {
4 years ago
let data = {
provinceId: this.form.provinces
};
this.$get(this.api.queryCity, data).then(res => {
this.cityList = res.list;
}).catch(res => {
});
4 years ago
},
addOrder() {
this.$store.commit("systemData", { order_id: "" });
this.$router.push("/addorder?isAdd=true");
4 years ago
},
handle(val, row) {
this.$router.push("/addorder?" + val + "=" + row.orderId);
4 years ago
},
// 删除订单
4 years ago
handleDelete(row) {
this.$confirm("确定要删除吗?", "提示", {
type: "warning"
4 years ago
})
.then(() => {
var arr = [];
arr.push(row.orderId);
this.$post(this.api.orderDelete, { ids: arr }).then(res => {
this.$message.success("删除成功");
this.getData();
}).catch(res => {
});
})
.catch(() => {
});
},
// 续签
handleRenew(row) {
4 years ago
},
getRowKeys(row) {
return row.orderId;
},
handleSelectionChange(val) {
if (val.length > 0) {
this.multipleSelection = val.map(e => e.orderId);
} else {
this.multipleSelection = [];
}
4 years ago
},
delAllSelection() {
if (this.multipleSelection.length != "") {
4 years ago
// 批量删除
this.$confirm("确定要删除吗?", "提示", {
type: "warning"
4 years ago
})
.then(() => {
this.$post(this.api.orderDelete, { ids: this.multipleSelection }).then(res => {
this.multipleSelection = [];
this.$message.success("删除成功");
this.getData();
}).catch(err => {
});
}).catch(err => {
});
} else {
this.$message.error("请先选择订单 !");
4 years ago
}
},
initData() {
this.pageNo = 1;
this.getData();
4 years ago
},
handleCurrentChange(val) {
this.pageNo = val;
this.getData();
},
// 选择客户触发
gotoClient() {
this.$router.push("");
4 years ago
}
}
};
</script>
<style scoped>
.mag {
4 years ago
margin-right: 20px;
}
</style>