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.

263 lines
11 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">
<el-col :span="5">
<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>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<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>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<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>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<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>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
<el-input placeholder="请输入订单号/客户名称/订单名称" prefix-icon="el-icon-search" v-model="keyword" @keyup.enter.native="onSearch" clearable></el-input>
4 years ago
</el-form-item>
</el-col>
</el-form>
</div>
</div>
</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" size="small" round class="mag" @click="addOrder()">新建订单</el-button>
<el-button type="primary" size="small" round @click="delAllSelection">批量删除</el-button>
</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>
<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">
</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" @click="handle('edit',scope.row)">修改</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" @click="handleRenew(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">
</el-pagination>
</div>
</el-card>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
data() {
return {
form: {
provinces: '',
city: '',
orderType: '',
orderStatus: ''
},
keyword: '',
orderData:[],
multipleSelection: [],
provinceList: this.$store.state.provinceList,
cityList: [],
orderTypeList: [{
name: '正式',
value: 1
},
{
name: '试用',
value: 2
}],
orderStatusList: [{
name: '待发货',
value: 1
},
{
name: '已完成',
value: 2
},
{
name: '已取消',
value: 3
}],
pageNo: 1,
pageSize: 10,
totals: 1
};
},
created() {
4 years ago
this.getData()
},
methods: {
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,
4 years ago
}
this.$post(this.api.orderList,data).then(res => {
console.log(res,'list');
res.orderPage.orders.forEach(e => {
4 years ago
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
4 years ago
}).catch(res => {});
},
// 清除省份
clearprovince(){
this.form.city = ''
},
// 获取城市
getCity(){
this.clearprovince()
this.getCityData()
this.pageNo = 1
this.getData()
},
getCityData(){
let data = {
provinceId: this.form.provinces
}
this.$get(this.api.queryCity,data).then(res => {
this.cityList = res.list
4 years ago
}).catch(res => {});
},
addOrder(){
this.$store.commit("systemData", { order_id : ''});
this.$router.push('/addorder');
},
handle(val,row){
this.$router.push('/addorder?'+val+'='+row.orderId);
4 years ago
},
// 删除订单
4 years ago
handleDelete(row) {
this.$confirm('确定要删除吗?', '提示', {
type: 'warning'
})
.then(() => {
var arr = []
arr.push(row.orderId)
this.$post(this.api.orderDelete,{ids:arr}).then(res => {
4 years ago
this.$message.success('删除成功');
this.getData()
}).catch(res => {});
})
.catch(() => {});
},
// 续签
handleRenew(row){
4 years ago
},
getRowKeys(row) {
return row.orderId;
},
handleSelectionChange(val) {
console.log(val,'xuan');
if(val.length>0){
this.multipleSelection = val.map(e=>e.orderId);
}else{
this.multipleSelection = []
}
4 years ago
},
delAllSelection() {
if(this.multipleSelection.length != ''){
// 批量删除
this.$confirm('确定要删除吗?', '提示', {
type: 'warning'
})
.then(() => {
this.$post(this.api.orderDelete,{ids:this.multipleSelection}).then(res => {
4 years ago
this.multipleSelection = [];
this.$message.success('删除成功');
this.getData()
}).catch(err => {});
}).catch(err => {});
4 years ago
}else{
this.$message.error('请先选择订单 !');
}
},
onSearch(){
this.pageNo = 1
this.getData()
},
handleCurrentChange(val) {
this.pageNo = val;
this.getData();
},
// 选择客户触发
gotoClient(){
this.$router.push('')
4 years ago
}
}
};
</script>
<style scoped>
.mag{
margin-right: 20px;
}
</style>