Commit aafd8601 by ss.dai

完成订单详情(新增订单操作记录展示)

parent f72cc01c
......@@ -483,3 +483,12 @@ void FlowControl::onUpdateCashier(const CashierObject &cashier)
{
m_cashierObject = cashier;
}
void FlowControl::onGetOrderDetails(const QString &orderId)
{
if(_CheckCashiers())
{
emit hideAlert();
emit showOrderDetails(m_ordersMap.value(orderId));
}
}
......@@ -83,6 +83,11 @@ signals:
* 返回:NULL
* */
void showCashierPickForm(const QList<CashierObject>& cashiers);
/* 功能:显示订单详情界面
* 参数:[1]收银员信息
* 返回:NULL
* */
void showOrderDetails(OrderObject* orderObject);
private slots:
/* 功能:获取门店信息
......@@ -168,18 +173,21 @@ public slots:
* 返回:NULL
* */
void onProcessOrder(const QString& operation, const QString& orderId, const DeliverObject& deliverObj);
/* 功能:获取在班收银员信息
* 参数:NULL
* 返回:NULL
* */
void onGetOnDutyCashiers();
/* 功能:更新收银员信息
* 参数:NULL
* 返回:NULL
* */
void onUpdateCashier(const CashierObject& cashier);
/* 功能:获取订单详情
* 参数:NULL
* 返回:NULL
* */
void onGetOrderDetails(const QString& orderId);
};
......
#include "baseObject.h"
#include <QStringList>
#include <QVariant>
#include "preDefine.h"
BaseObject::BaseObject(const BaseObject &p)
{
......
......@@ -10,8 +10,8 @@ void OrderObject::FromJson(const QJsonObject &json)
foreach(QJsonValue product, products)
{
QJsonObject proJson = product.toObject();
ProductObject *proObject = new ProductObject(this);
proObject->FetchDataFromJson(proJson);
ProductObject proObject;
proObject.FetchDataFromJson(proJson);
proList.append(proObject);
}
......@@ -348,3 +348,13 @@ void OrderObject::setdelivery_status(const int &v)
{
delivery_status = v;
}
QStringList OrderObject::getrecords() const
{
return records;
}
void OrderObject::setrecords(const QStringList &v)
{
records = v;
}
......@@ -51,6 +51,7 @@ public:
Q_PROPERTY (QString delivery_time READ getdelivery_time WRITE setdelivery_time)
Q_PROPERTY (int delivery_status READ getdelivery_status WRITE setdelivery_status)
Q_PROPERTY (QString fm_id READ getfm_id WRITE setfm_id)
Q_PROPERTY (QStringList records READ getrecords WRITE setrecords)
QString address; //地址
QString channel; //渠道
......@@ -87,6 +88,7 @@ public:
int total_fee; //商品金额
int total_amount; //总件数
int user_fee; //应付金额
QStringList records; //订单操作记录
protected:
int getstatus() const ;
......@@ -157,6 +159,8 @@ protected:
void setfm_id(const QString& v);
int getdelivery_status() const ;
void setdelivery_status(const int& v);
QStringList getrecords() const;
void setrecords(const QStringList& v);
};
#endif // ORDEROBJECT_H
......@@ -48,6 +48,7 @@ bool BillSocket::Request(const QJsonObject &requestJson, QJsonObject &recvJson,
return false;
}
recvJson = QJsonDocument::fromJson(recvArray).object();
qDebug() << recvJson;
reply->deleteLater();
return true;
......
#include "detailForm.h"
#include "ui_detailForm.h"
#include "DTools/util.h"
#include "preDefine.h"
DetailForm::DetailForm(QWidget *parent) :
QDialog(parent),
ui(new Ui::DetailForm)
{
ui->setupUi(this);
_Init();
}
DetailForm::~DetailForm()
{
delete ui;
}
void DetailForm::InitData(OrderObject *orderObject)
{
ui->detailLab0->setText(QString("[%1][%2][%3]").arg(orderObject->channelName,
orderObject->status_desc,
orderObject->order_id));
ui->detailLab1->setText(QString("[%1]%2").arg(orderObject->pay_type,
orderObject->remark));
ui->detailLab2->setText(QString("[姓名:%1][电话:%2]").arg(orderObject->customer,
orderObject->phone));
ui->detailLab3->setText(orderObject->address);
ui->detailLab4->setText(QString("[配送方式:%1][配送费:%2]").arg(orderObject->delivery_party,
Penny2Dollar(orderObject->send_fee)));
ui->detailLab5->setText(orderObject->delivery_time);
ui->detailLab6->setText(orderObject->courier_name.isEmpty() ? "暂未指定" : QString("[姓名:%1][电话:%2]")
.arg(orderObject->courier_name, orderObject->courier_phone));
ui->detailLab7->setText(!orderObject->pay_type.compare("在线支付") ? "0" : Penny2Dollar(orderObject->shop_fee));
ui->detailLab8->setText(orderObject->has_invoiced? QString("发票抬头:%1").arg(orderObject->invoice_title) : "不需要发票");
for(int i=0; i<orderObject->proList.count(); i++)
{
ui->detailTable0->insertRow(i);
ui->detailTable0->setItem(i, 0, new QTableWidgetItem(orderObject->proList.at(i).name)); // 商品名
ui->detailTable0->item(i, 0)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(i, 1, new QTableWidgetItem(Penny2Dollar(orderObject->proList.at(i).price))); // 价格
ui->detailTable0->item(i, 1)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(i, 2, new QTableWidgetItem(QString::number(orderObject->proList.at(i).productAmount))); // 数量
ui->detailTable0->item(i, 2)->setTextAlignment(Qt::AlignCenter);
}
QString records;
foreach(QString record, orderObject->records)
{
records.append(record+"\r\n");
}
ui->detailLabRecord->setText(records);
}
void DetailForm::_Init()
{
setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint);
setGeometry(((QWidget*)parent())->geometry());
int tableWidth = this->width()/2 - 65;
ui->detailTable0->setColumnWidth(0, tableWidth*5/9);
ui->detailTable0->setColumnWidth(1, tableWidth*2/9);
ui->detailTable0->setColumnWidth(2, tableWidth*2/9);
ui->detailTable0->horizontalHeader()->setFixedHeight(25);
ui->detailTable0->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed);
}
......@@ -2,6 +2,7 @@
#define DETAILFORM_H
#include <QDialog>
#include "Model/orderObject.h"
namespace Ui {
class DetailForm;
......@@ -15,8 +16,20 @@ public:
explicit DetailForm(QWidget *parent = 0);
~DetailForm();
/* 功能:初始化数据
* 参数:[1]订单对象
* 返回:NULL
* */
void InitData(OrderObject* orderObject);
private:
Ui::DetailForm *ui;
/* 功能:初始化
* 参数:NULL
* 返回:NULL
* */
void _Init();
};
#endif // DETAILFORM_H
......@@ -35,6 +35,7 @@ MainForm::MainForm(QWidget *parent) :
connect(this, &MainForm::flowStart, &FlowControl::GetInstance(), &FlowControl::onFlowStart);
connect(this, &MainForm::processOrder, &FlowControl::GetInstance(), &FlowControl::onProcessOrder);
connect(this, &MainForm::getOnDutyCashiers, &FlowControl::GetInstance(), &FlowControl::onGetOnDutyCashiers);
connect(this, &MainForm::getOrderDetails, &FlowControl::GetInstance(), &FlowControl::onGetOrderDetails);
connect(&FlowControl::GetInstance(), &FlowControl::hideAlert, this, &MainForm::onHideAlert);
connect(&FlowControl::GetInstance(), &FlowControl::showAlert, this, &MainForm::onShowAlert);
connect(&FlowControl::GetInstance(), &FlowControl::setOpeStatus, this, &MainForm::onSetOpeStatus);
......@@ -43,6 +44,7 @@ MainForm::MainForm(QWidget *parent) :
connect(&FlowControl::GetInstance(), &FlowControl::changeOrderStatus, this, &MainForm::onChangeOrderStatus);
connect(&FlowControl::GetInstance(), &FlowControl::showDeliverPickForm, this, &MainForm::onShowDeliverPickForm);
connect(&FlowControl::GetInstance(), &FlowControl::showCashierPickForm, this, &MainForm::onShowCashierPickForm);
connect(&FlowControl::GetInstance(), &FlowControl::showOrderDetails, this, &MainForm::onShowOrderDetails);
// 初始化界面
_Init();
......@@ -68,6 +70,8 @@ void MainForm::MyShow()
m_settingForm = new SettingForm(this);
m_detailForm = new DetailForm(this);
emit flowStart();
return;
}
......@@ -111,6 +115,7 @@ void MainForm::_Init()
ui->mainBtnNew->setEnabled(false);
m_prevBtn = ui->mainBtnNew;
m_prevTable = ui->mainTableNew;
m_currentTable = ui->mainTableNew;
// 门店营业状态详情暂时屏蔽
// TODO
......@@ -163,6 +168,12 @@ void MainForm::onUpdateCashier(const CashierObject &cashier)
ui->mainLabCashier->setText(cashier.name);
}
void MainForm::onShowOrderDetails(OrderObject *orderObject)
{
m_detailForm->InitData(orderObject);
m_detailForm->show();
}
void MainForm::_RevertBtnTable()
{
m_prevBtn->setChecked(false);
......@@ -336,3 +347,8 @@ void MainForm::on_mainBtnDown_clicked()
{
m_currentTable->scrollToBottom();
}
void MainForm::onMainTableItemClicked(QTableWidgetItem *item)
{
emit getOrderDetails(((QTableWidget*)sender())->item(item->row(), 1)->text());
}
......@@ -8,6 +8,7 @@
#include "Model/deliverObject.h"
#include "pickForm.h"
#include "settingForm.h"
#include "detailForm.h"
#include <QTimer>
namespace Ui {
......@@ -46,6 +47,8 @@ private:
PickForm *m_pickForm;
// 设置窗口
SettingForm *m_settingForm;
// 订单详情窗口
DetailForm *m_detailForm;
// 当前选中的表
QTableWidget *m_currentTable;
......@@ -87,16 +90,22 @@ signals:
* 返回:NULL
* */
void showFloatForm();
/* 功能:开始提示
/* 功能:通知悬浮窗开始提示
* 参数:[1]提示类型 0新订单1退款申请
* 返回:NULL
* */
void startRemind(int type);
/* 功能:停止提示
/* 功能:通知悬浮窗停止提示
* 参数:NULL
* 返回:NULL
* */
void stopRemind();
/* 功能:获取订单详情
* 参数:NULL
* 返回:NULL
* */
void getOrderDetails(const QString& orderId);
private slots:
/* 功能:初始化
......@@ -144,6 +153,11 @@ private slots:
* 返回:NULL
* */
void on_mainBtnDown_clicked();
/* 功能:点击订单对应动作
* 参数:NULL
* 返回:NULL
* */
void onMainTableItemClicked(QTableWidgetItem *item);
public slots:
/* 功能:隐藏通知窗口
......@@ -191,6 +205,11 @@ public slots:
* 返回:NULL
* */
void onUpdateCashier(const CashierObject& cashier);
/* 功能:显示订单详情
* 参数:NULL
* 返回:NULL
* */
void onShowOrderDetails(OrderObject* orderObject);
};
#endif // MAINFORM_H
......@@ -820,6 +820,12 @@
<height>75</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>35</width>
<height>75</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
......@@ -836,6 +842,12 @@
<height>75</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>35</width>
<height>75</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
......@@ -1021,7 +1033,7 @@
<bool>true</bool>
</property>
<property name="margin">
<number>2</number>
<number>5</number>
</property>
</widget>
</item>
......@@ -1203,7 +1215,7 @@
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
......@@ -1257,8 +1269,8 @@
<slot>onMainTabBtnClicked()</slot>
<hints>
<hint type="sourcelabel">
<x>170</x>
<y>61</y>
<x>207</x>
<y>63</y>
</hint>
<hint type="destinationlabel">
<x>159</x>
......@@ -1273,8 +1285,8 @@
<slot>onMainTabBtnClicked()</slot>
<hints>
<hint type="sourcelabel">
<x>234</x>
<y>53</y>
<x>302</x>
<y>55</y>
</hint>
<hint type="destinationlabel">
<x>221</x>
......@@ -1289,8 +1301,8 @@
<slot>onMainTabBtnClicked()</slot>
<hints>
<hint type="sourcelabel">
<x>300</x>
<y>58</y>
<x>397</x>
<y>60</y>
</hint>
<hint type="destinationlabel">
<x>289</x>
......@@ -1305,8 +1317,8 @@
<slot>onMainTabBtnClicked()</slot>
<hints>
<hint type="sourcelabel">
<x>357</x>
<y>60</y>
<x>492</x>
<y>62</y>
</hint>
<hint type="destinationlabel">
<x>348</x>
......@@ -1314,8 +1326,105 @@
</hint>
</hints>
</connection>
<connection>
<sender>mainTableNew</sender>
<signal>itemClicked(QTableWidgetItem*)</signal>
<receiver>MainForm</receiver>
<slot>onMainTableItemClicked(QTableWidgetItem*)</slot>
<hints>
<hint type="sourcelabel">
<x>71</x>
<y>116</y>
</hint>
<hint type="destinationlabel">
<x>8</x>
<y>116</y>
</hint>
</hints>
</connection>
<connection>
<sender>mainTableMake</sender>
<signal>itemClicked(QTableWidgetItem*)</signal>
<receiver>MainForm</receiver>
<slot>onMainTableItemClicked(QTableWidgetItem*)</slot>
<hints>
<hint type="sourcelabel">
<x>190</x>
<y>180</y>
</hint>
<hint type="destinationlabel">
<x>7</x>
<y>169</y>
</hint>
</hints>
</connection>
<connection>
<sender>mainTableSend</sender>
<signal>itemClicked(QTableWidgetItem*)</signal>
<receiver>MainForm</receiver>
<slot>onMainTableItemClicked(QTableWidgetItem*)</slot>
<hints>
<hint type="sourcelabel">
<x>310</x>
<y>214</y>
</hint>
<hint type="destinationlabel">
<x>7</x>
<y>224</y>
</hint>
</hints>
</connection>
<connection>
<sender>mainTableFinsh</sender>
<signal>itemClicked(QTableWidgetItem*)</signal>
<receiver>MainForm</receiver>
<slot>onMainTableItemClicked(QTableWidgetItem*)</slot>
<hints>
<hint type="sourcelabel">
<x>432</x>
<y>271</y>
</hint>
<hint type="destinationlabel">
<x>5</x>
<y>269</y>
</hint>
</hints>
</connection>
<connection>
<sender>mainTableRefund</sender>
<signal>itemClicked(QTableWidgetItem*)</signal>
<receiver>MainForm</receiver>
<slot>onMainTableItemClicked(QTableWidgetItem*)</slot>
<hints>
<hint type="sourcelabel">
<x>554</x>
<y>316</y>
</hint>
<hint type="destinationlabel">
<x>6</x>
<y>321</y>
</hint>
</hints>
</connection>
<connection>
<sender>mainTableOther</sender>
<signal>itemClicked(QTableWidgetItem*)</signal>
<receiver>MainForm</receiver>
<slot>onMainTableItemClicked(QTableWidgetItem*)</slot>
<hints>
<hint type="sourcelabel">
<x>677</x>
<y>364</y>
</hint>
<hint type="destinationlabel">
<x>8</x>
<y>375</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>onMainTabBtnClicked()</slot>
<slot>onMainTableItemClicked(QTableWidgetItem*)</slot>
</slots>
</ui>
......@@ -52,6 +52,8 @@
#define JSON_DELIVERYNAME "deliveryman_name"
#define JSON_DELIVERYPHONE "deliveryman_phone"
#define JSON_ORDER "order"
#define JSON_SHOPSTATUS "channel_shops"
#define JSON_SHOPSTATUSDESC "business_status_desc"
// 订单的操作名称
#define OPERATION_GETDELIVERS "getDelivers"
......
......@@ -20,5 +20,11 @@
<file>logo_1.png</file>
<file>float_normal.png</file>
<file>float_remind.png</file>
<file>detailBtn_close_normal.png</file>
<file>detailBtn_close_press.png</file>
<file>detailFrm_bg.png</file>
<file>detailFrm_bg1.png</file>
<file>detailFrm_bg2.png</file>
<file>detailLab.png</file>
</qresource>
</RCC>
\ No newline at end of file
QWidget
{
font: 11pt "微软雅黑";
font: 10pt "微软雅黑";
}
......@@ -153,7 +153,6 @@ QWidget
}
#mainBtnOpeDetails,#mainBtnCashier
{
font: bold 10pt "微软雅黑";
color: rgb(62, 118, 64);
background-color: rgb(122, 173, 106);
border-radius: 5px;
......@@ -355,6 +354,134 @@ QWidget
}
/*---------------------------------alertForm[ end ]---------------------------------*/
/*---------------------------------DetailForm[begin]---------------------------------*/
#DetailForm
{
background-color: rgb(64, 119, 61);
}
#detailBtnClose
{
border-image: url(:detailBtn_close_normal.png);
}
#detailBtnClose:pressed
{
border-image: url(:detailBtn_close_press.png);
}
#detailFrm0,#detailFrm1
{
margin-right: -1px;
margin-top: -2px;
margin-bottom: -2px;
border-image: url(:detailFrm_bg.png);
}
#detailFrm2
{
margin-top: -2px;
margin-bottom: -2px;
border-image: url(:detailFrm_bg2.png);
}
#detailFrm3,#detailFrm4
{
margin-left: 1px;
margin-bottom: -1px;
border-image: url(:detailFrm_bg1.png);
}
#detailSlab9,#detailSlab10
{
font: bold 10pt "微软雅黑";
color: rgb(173, 223, 152);
}
#detailSlab0,#detailSlab1,#detailSlab2,#detailSlab3,#detailSlab4,
#detailSlab5,#detailSlab6,#detailSlab7,#detailSlab8
{
margin-top: -2px;
margin-bottom: 1px;
font: bold 9pt "微软雅黑";
color: rgb(171, 226, 177);
border-image: url(:detailLab.png);
}
#detailLab0,#detailLab2,#detailLab3,#detailLab4,
#detailLab5,#detailLab6,#detailLab7,#detailLab8
{
border-bottom: 1px solid rgb(90, 162, 98);
color: rgb(44, 69, 43);
background-color: rgb(155, 204, 134);
}
#detailLab1
{
border-bottom: 1px solid rgb(90, 162, 98);
color: rgb(190, 63, 0);
background-color: rgb(155, 204, 134);
}
#detailBtn0,#detailBtn1
{
font: bold 10pt "微软雅黑";
color: rgb(110, 110, 110);
background-color: rgb(255, 255, 255);
border-radius: 3px;
}
#detailBtn2
{
font: bold 10pt "微软雅黑";
color: rgb(205, 0, 0);
background-color: rgb(255, 255, 255);
border-radius: 3px;
}
#detailBtn3
{
font: bold 10pt "微软雅黑";
color: rgb(25, 162, 25);
background-color: rgb(255, 255, 255);
border-radius: 3px;
}
#detailBtn0:pressed,#detailBtn1:pressed,#detailBtn2:pressed,#detailBtn3:pressed
{
font: bold 10pt "微软雅黑";
color: rgb(161, 161, 161);
background-color: rgb(255, 255, 255);
border-radius: 3px;
}
#detailTable0
{
gridline-color: rgb(207, 234, 187);
background-color: rgb(180, 205, 163);
color: rgb(66, 66, 66);
}
#detailLabRecord
{
color: rgb(66, 66, 66);
background-color: rgb(180, 205, 163);
}
#detailSlab11
{
font: bold 11pt "微软雅黑";
color: rgb(255, 255, 255);
}
#detailTable0 QHeaderView::section
{
border: 0px;
border-left: 1px solid rgb(56, 104, 53);
background: rgb(90, 162, 98);
color: rgb(171, 226, 177);
font: bold 9pt "微软雅黑";
}
#detailTable0 QScrollBar:vertical
{
background: rgb(180, 205, 163, 0);
width: 10px;
}
#detailTable0 QScrollBar::handle:vertical
{
border-radius: 6px;
background: rgb(207, 234, 187);
min-height: 20px;
}
#detailTable0 QScrollBar::add-line:vertical,
#detailTable0 QScrollBar::sub-line:vertical
{
height: 0px;
}
/*---------------------------------DetailForm[ end ]---------------------------------*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment