状态修改

This commit is contained in:
邓皓元 2018-12-21 17:02:53 +08:00
parent be56116baa
commit 762e1ac161
14 changed files with 170 additions and 127 deletions

View File

@ -26,8 +26,8 @@ class Dicts extends Repository
'package_type' => ['基础套餐', '续费包', '加油包', '可选包', '附加包'],
'tables' => ['real' => 'RD', 'virtual' => 'VD'],
'order_status' => ['已下单', '已取消', '已出库', '已发货', '已签收'],
'transaction_status' => ['未收款', '已收款'],
'company_transaction_status' => ['未付款', '已付款'],
'transaction_status' => ['未收款', '已收款', '已退款'],
'company_transaction_status' => ['未付款', '已付款', '已退款'],
'logistics' => ['sf' => '顺丰速运', 'sto' => '申通快递','yto' => '圆通速递', 'zto' => '中通快递', 'best' => '百世快递', 'yunda' => '韵达快递', 'ttkd'=> '天天快递', 'ems' => 'EMS邮政特快专递'],
];

View File

@ -86,6 +86,8 @@ class OrderService extends Service
'mobile' => ['cn_phone'],
'area' => ['max:255'],
'address' => ['max:255'],
'order_status' => ['in:0,1,2,3,4'],
'transaction_status' => ['in:0,1,2'],
];
$message = [

View File

@ -34,7 +34,7 @@ class CreateVirtualOrdersTable extends Migration
$table->string('logistics_company', '20')->default('')->comment('物流公司');
$table->string('logistics_no', 64)->default('')->comment('物流单号');
$table->tinyInteger('order_status')->unsigned()->default(0)->after('mobile')->comment('订单状态(0:已下单 1:已取消 2:已出库 3:已发货 4:已签收)');
$table->tinyInteger('transaction_status')->unsigned()->default(0)->after('order_status')->comment('收款状态(0:未收款 1:已收款)');
$table->tinyInteger('transaction_status')->unsigned()->default(0)->after('order_status')->comment('收款状态(0:未收款 1:已收款 2:已退款)');
$table->text('cancel_remark')->nullable()->comment('取消备注');
$table->text('logistics_remark')->nullable()->comment('物流备注');
$table->text('remark')->nullable()->comment('订单备注');

View File

@ -12,8 +12,7 @@
<li class="f-r">
<!-- <div class="handle-item">
<Button @click="openEdit(true, null)" icon="md-add" type="primary" v-has="'create'">添加企业</Button>
</div> -->
</div>-->
<div class="handle-item">
<Button @click="search.show=!search.show" ghost icon="ios-search" type="primary">搜索</Button>
</div>

View File

@ -28,6 +28,7 @@ export default {
search: {
show: false
},
cancel_remark: '',
logistics: null,
logisticsParams: {
'logistics_company': '',
@ -95,7 +96,7 @@ export default {
}
},
{
title: '支付状态',
title: '收款状态',
key: '',
width: 100,
render: (h, { row, column, index }) => {
@ -128,7 +129,7 @@ export default {
let html = [];
if (row.deleted_at) {
return h('Tag', { props: { color: 'default' } }, '该企业已被删除');
return h('Tag', { props: { color: 'default' } }, '该订单已被删除');
}
if (this.haveJurisdiction('show')) {
@ -158,36 +159,8 @@ export default {
}
if (this.haveJurisdiction('update')) {
if (!row.transaction_status && !row.order_status) {
html.push(h('Button', {
props: {
type: 'info',
size: 'small',
disabled: false
},
class: ['btn'],
on: {
click: () => {
this.$Modal.confirm({
title: '提示',
content: '是否确认取消订单?',
onOk: () => {
API.update({
order_status: 1
}, row.id).then(res => {
if (res.code == 0) {
this.$Message.success('修改成功');
this.request();
}
});
}
});
}
}
}, '取消订单'));
}
if (!row.transaction_status) {
// 未收款 -> 已收款
if (row.transaction_status === 0) {
html.push(h('Button', {
props: {
type: 'error',
@ -216,7 +189,80 @@ export default {
}, '确认收款'));
}
// 已收款 -> 已退款
if (row.transaction_status === 1 && row.order_status < 2) {
html.push(h('Button', {
props: {
type: 'error',
size: 'small',
disabled: false
},
class: ['btn'],
on: {
click: () => {
this.$Modal.confirm({
title: '提示',
content: '请确认是否进行退款?',
onOk: () => {
API.update({
transaction_status: 2
}, row.id).then(res => {
if (res.code == 0) {
this.$Message.success('退款成功');
this.request();
}
});
}
});
}
}
}, '确认退款'));
}
// 已下单 -> 取消订单 | 出库
if (row.order_status === 0) {
html.push(h('Button', {
props: {
type: 'info',
size: 'small',
disabled: false
},
class: ['btn'],
on: {
click: () => {
this.$Modal.confirm({
render: (h) => {
return h('Input', {
props: {
value: this.cancel_remark,
autofocus: true,
placeholder: '请输入取消理由...'
},
on: {
'input': (val) => {
this.cancel_remark = val;
}
}
});
},
title: '提示',
content: '是否确认取消订单?',
onOk: () => {
API.update({
order_status: 1,
cancel_remark: ''
}, row.id).then(res => {
if (res.code == 0) {
this.$Message.success('取消成功');
this.request();
}
});
}
});
}
}
}, '取消订单'));
html.push(h('Button', {
props: {
type: 'warning',
@ -245,6 +291,7 @@ export default {
}, '确认出库'));
}
// 已出库 -> 已发货
if (row.order_status === 2) {
html.push(h('Button', {
props: {
@ -312,6 +359,7 @@ export default {
}, '订单发货'));
}
// 已发货 -> 已签收
if (row.order_status === 3) {
html.push(h('Button', {
props: {
@ -324,7 +372,7 @@ export default {
click: () => {
this.$Modal.confirm({
title: '提示',
content: '请确认订单是否已收货?',
content: '请确认订单是否确认签收?',
onOk: () => {
API.update({
order_status: 4
@ -338,7 +386,7 @@ export default {
});
}
}
}, '确认'));
}, '确认收'));
}
}

View File

@ -39,6 +39,69 @@
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">重置周期</div>
<div class="ui-list-content">
<InputNumber :formatter="value => Number(value).toFixed(0)" :max="99999" :min="0" :step="1" v-model="params.reset_months"></InputNumber>&nbsp;
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">套餐周期</div>
<div class="ui-list-content">
<InputNumber :disabled="data ? true : false" :formatter="value => Number(value).toFixed(0)" :max="99999" :min="0" :step="1" v-model="params.service_months"></InputNumber>&nbsp;
</div>
</li>
<li class="ui-list" v-if="!type">
<div class="ui-list-title">生效延迟</div>
<div class="ui-list-content">
<InputNumber :formatter="value => Number(value).toFixed(0)" :max="99999" :min="0" :step="1" v-model="params.effect_months"></InputNumber>&nbsp;
</div>
</li>
<li class="ui-list" v-if="!type">
<div class="ui-list-title">服务延长</div>
<div class="ui-list-content">
<InputNumber :formatter="value => Number(value).toFixed(0)" :max="99999" :min="0" :step="1" v-model="params.delay_months"></InputNumber>&nbsp;
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">短信服务</div>
<div class="ui-list-content">
<Switch :false-value="0" :true-value="1" v-model="params.has_messages"/>
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">LBS服务</div>
<div class="ui-list-content">
<Switch :false-value="0" :true-value="1" v-model="params.has_lbs"/>
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">套餐流量</div>
<div class="ui-list-content">
<InputNumber :disabled="data ? true : false" :formatter="value => Number(value).toFixed(0)" :max="99999" :min="0" :step="1" v-model="params.flows"></InputNumber>&nbsp;(M)
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">套餐语音</div>
<div class="ui-list-content">
<InputNumber :formatter="value => Number(value).toFixed(0)" :max="99999" :min="0" :step="1" v-model="params.voices"></InputNumber>&nbsp;分钟
</div>
</li>
<li class="ui-list" v-if="params.has_messages">
<div class="ui-list-title">套餐短信</div>
<div class="ui-list-content">
<InputNumber :formatter="value => Number(value).toFixed(0)" :max="99999" :min="0" :step="1" v-model="params.messages"></InputNumber>&nbsp;
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">套餐成本价:</div>
<div class="ui-list-content">
@ -67,69 +130,6 @@
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">套餐流量</div>
<div class="ui-list-content">
<InputNumber :disabled="data ? true : false" :formatter="value => Number(value).toFixed(0)" :max="99999" :min="0" :step="1" v-model="params.flows"></InputNumber>&nbsp;(M)
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">套餐语音</div>
<div class="ui-list-content">
<InputNumber :formatter="value => Number(value).toFixed(0)" :max="99999" :min="0" :step="1" v-model="params.voices"></InputNumber>&nbsp;分钟
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">套餐短信</div>
<div class="ui-list-content">
<InputNumber :formatter="value => Number(value).toFixed(0)" :max="99999" :min="0" :step="1" v-model="params.messages"></InputNumber>&nbsp;分钟
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">短信服务</div>
<div class="ui-list-content">
<Switch :false-value="0" :true-value="1" v-model="params.has_messages"/>
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">LBS服务</div>
<div class="ui-list-content">
<Switch :false-value="0" :true-value="1" v-model="params.has_lbs"/>
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">重置周期</div>
<div class="ui-list-content">
<InputNumber :formatter="value => Number(value).toFixed(0)" :max="99999" :min="0" :step="1" v-model="params.reset_months"></InputNumber>&nbsp;
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">套餐周期</div>
<div class="ui-list-content">
<InputNumber :disabled="data ? true : false" :formatter="value => Number(value).toFixed(0)" :max="99999" :min="0" :step="1" v-model="params.service_months"></InputNumber>&nbsp;
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">生效延迟</div>
<div class="ui-list-content">
<InputNumber :formatter="value => Number(value).toFixed(0)" :max="99999" :min="0" :step="1" v-model="params.effect_months"></InputNumber>&nbsp;
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">服务延长</div>
<div class="ui-list-content">
<InputNumber :formatter="value => Number(value).toFixed(0)" :max="99999" :min="0" :step="1" v-model="params.delay_months"></InputNumber>&nbsp;
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">说明:</div>
<div class="ui-list-content">

View File

@ -70,17 +70,10 @@
</div>
<div class="page-turn-wrap" v-if="list_data">
<Page
:current="Number(list_data.current_page)"
:page-size="Number(list_data.per_page)"
:total="Number(list_data.total)"
@on-change="index"
show-elevator
show-total
></Page>
<Page :current="Number(list_data.current_page)" :page-size="Number(list_data.per_page)" :total="Number(list_data.total)" @on-change="index" show-elevator show-total></Page>
</div>
<ui-edit :data="editObj.data" :show.sync="editObj.show" @add-success="index" @update-success="index(list_data.current_page)"></ui-edit>
<ui-edit :type="type" :data="editObj.data" :show.sync="editObj.show" @add-success="index" @update-success="index(list_data.current_page)"></ui-edit>
</div>
</template>

View File

@ -6,6 +6,10 @@ export default {
type: Boolean,
default: false
},
type: {
type: Number,
default: 0
},
data: {
type: Object,
default() {
@ -19,6 +23,7 @@ export default {
isUpdate: false,
loading: false,
params: {
type: 0,
sn: '',
name: '',
carrier_operator: 255,
@ -70,14 +75,7 @@ export default {
return;
}
let type = this.$route.query.type;
if (typeof (type) === 'undefined') {
this.$Message.error('非法请求');
return;
}
this.params.type = type;
this.params.type = this.type;
if (this.data) {
// 编辑
@ -123,9 +121,6 @@ export default {
}
this.my_show = false;
},
switchChange(status) {
console.log(this.params);
}
}
};

View File

@ -9,6 +9,7 @@ export default {
params: {
name: ''
},
type: 0,
trashed: null,
list_data: null,
editObj: {
@ -177,6 +178,7 @@ export default {
};
},
created() {
this.type = this.$route.query.type;
this.index(1);
},
methods: {
@ -186,14 +188,12 @@ export default {
* @return {[type]} [description]
*/
index(page = 1) {
let type = this.$route.query.type;
if (typeof (type) === 'undefined') {
if (typeof (this.type) === 'undefined') {
this.$Message.error('非法请求');
return;
}
let data = this.searchDataHandle(this.params, { page }, { 'type': type, 'trashed': this.trashed, 'orderBy': 'id', 'sortedBy': 'asc' });
let data = this.searchDataHandle(this.params, { page }, { 'type': this.type, 'trashed': this.trashed, 'orderBy': 'id', 'sortedBy': 'asc' });
this.isShowLoading(true);
API.index(data).then(res => {
this.isShowLoading(false);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=\favicon.ico><script src=\config.js></script><title></title><link href=/css/chunk-6d306fd9.729cc3c7.css rel=prefetch><link href=/js/chunk-00ae0766.4cb97496.js rel=prefetch><link href=/js/chunk-6d306fd9.e1d42cb6.js rel=prefetch><link href=/css/app.36043160.css rel=preload as=style><link href=/css/chunk-vendors.3c3b2e85.css rel=preload as=style><link href=/js/app.1f3beb4c.js rel=preload as=script><link href=/js/chunk-vendors.02a4e5bc.js rel=preload as=script><link href=/css/chunk-vendors.3c3b2e85.css rel=stylesheet><link href=/css/app.36043160.css rel=stylesheet></head><body><noscript><strong>很抱歉如果没有启用JavaScript程序不能正常工作若要继续使用请启用它。</strong></noscript><div id=app></div><script src=/js/chunk-vendors.02a4e5bc.js></script><script src=/js/app.1f3beb4c.js></script></body></html>
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=\favicon.ico><script src=\config.js></script><title></title><link href=/css/chunk-6d306fd9.729cc3c7.css rel=prefetch><link href=/js/chunk-00ae0766.4cb97496.js rel=prefetch><link href=/js/chunk-6d306fd9.d9b291c2.js rel=prefetch><link href=/css/app.36043160.css rel=preload as=style><link href=/css/chunk-vendors.3c3b2e85.css rel=preload as=style><link href=/js/app.8c116814.js rel=preload as=script><link href=/js/chunk-vendors.02a4e5bc.js rel=preload as=script><link href=/css/chunk-vendors.3c3b2e85.css rel=stylesheet><link href=/css/app.36043160.css rel=stylesheet></head><body><noscript><strong>很抱歉如果没有启用JavaScript程序不能正常工作若要继续使用请启用它。</strong></noscript><div id=app></div><script src=/js/chunk-vendors.02a4e5bc.js></script><script src=/js/app.8c116814.js></script></body></html>