Commit a64ce3fc by LIDINGDA\ldd

1.界面重写;2.删销售单

parent c47f3f37
#include "fmnumpad.h"
#include "ui_fmnumpad.h"
#include <QLineEdit>
FMNumPad::FMNumPad(QWidget *parent) :
QWidget(parent),
ui(new Ui::FMNumPad),
_lineEdit(nullptr)
{
ui->setupUi(this);
connect(ui->no0, &QPushButton::clicked, this, &FMNumPad::on_digit_clicked);
connect(ui->no1, &QPushButton::clicked, this, &FMNumPad::on_digit_clicked);
connect(ui->no2, &QPushButton::clicked, this, &FMNumPad::on_digit_clicked);
connect(ui->no3, &QPushButton::clicked, this, &FMNumPad::on_digit_clicked);
connect(ui->no4, &QPushButton::clicked, this, &FMNumPad::on_digit_clicked);
connect(ui->no5, &QPushButton::clicked, this, &FMNumPad::on_digit_clicked);
connect(ui->no6, &QPushButton::clicked, this, &FMNumPad::on_digit_clicked);
connect(ui->no7, &QPushButton::clicked, this, &FMNumPad::on_digit_clicked);
connect(ui->no8, &QPushButton::clicked, this, &FMNumPad::on_digit_clicked);
connect(ui->no9, &QPushButton::clicked, this, &FMNumPad::on_digit_clicked);
connect(ui->dot, &QPushButton::clicked, this, &FMNumPad::on_digit_clicked);
}
FMNumPad::~FMNumPad()
{
delete ui;
}
void FMNumPad::on_digit_clicked()
{
QString num_str = qobject_cast<QPushButton*>(sender())->text();
if(_lineEdit) {
_lineEdit->insert(num_str);
_lineEdit->setFocus();
}
emit digit_click(num_str);
}
void FMNumPad::on_backspace_btn_clicked()
{
if(_lineEdit) {
_lineEdit->backspace();
_lineEdit->setFocus();
}
emit digit_delete();
}
void FMNumPad::on_clear_btn_clicked()
{
if(_lineEdit) {
_lineEdit->clear();
_lineEdit->setFocus();
}
emit digit_clear();
}
void FMNumPad::on_confirm_btn_clicked()
{
emit digit_confirm();
}
void FMNumPad::setLineEdit(QLineEdit *lineEdit)
{
Q_ASSERT(nullptr != lineEdit);
this->_lineEdit = lineEdit;
}
#ifndef FMNUMPAD_H
#define FMNUMPAD_H
#include <QWidget>
class QLineEdit;
namespace Ui {
class FMNumPad;
}
class FMNumPad : public QWidget
{
Q_OBJECT
public:
explicit FMNumPad(QWidget *parent = 0);
~FMNumPad();
void setLineEdit(QLineEdit* lineEdit);
signals:
void digit_click(QString keynum);
void digit_delete();
void digit_clear();
void digit_confirm();
private slots:
void on_digit_clicked();
void on_backspace_btn_clicked();
void on_clear_btn_clicked();
void on_confirm_btn_clicked();
private:
Ui::FMNumPad *ui;
QLineEdit *_lineEdit;
};
#endif // FMNUMPAD_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>FMNumPad</class>
<widget class="QWidget" name="FMNumPad">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>246</width>
<height>234</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<property name="styleSheet">
<string notr="true">QWidget {
font: normal 22px &quot;Microsoft YaHei&quot;;
color: rgb(90,90,90);
}
#FMNumPad {
background-color: rgb(249, 249, 249);
border: 1 solid silver;
}
/*
* 标题栏
*/
#title {
background: rgb(61,65,77);
min-height: 32px; max-height: 32px;
border: 1 solid silver;
border-bottom: 0 solid silver;
}
#title_label {
margin-left: 4px;
font: normal 15px &quot;Microsoft YaHei&quot;;
color: rgb(252,252,252);
}
#close_btn {
min-width: 32px; min-height: 32px;
max-width: 32px; max-height: 32px;
border-image: url(&quot;:/img/btn_close.png&quot;);
background: transparent;
}
#close_btn:hover{
min-width: 31px; min-height: 31px;
max-width: 31px; max-height: 31px;
border-image: url(&quot;:/img/btn_alert_close.png&quot;);
}
QPushButton {
min-width: 50px; min-height: 50px;
max-width: 50px; max-height: 50px;
background-color: rgb(255, 255, 255);
font: 75 18pt &quot;微软雅黑&quot;;
border-radius: 12px;
border: 1 solid silver;
color: rgb(57, 57, 57);
}
QPushButton:hover {
background-color: rgb(249, 249, 249);
border:2px solid rgb(99, 148, 235);
border-radius:12px;
color: rgb(99, 148, 235);
padding: 2 0 0 2;
}
#no0 {
min-width: 106px;
max-width: 106px;}
#backspace_btn, #clear_btn {
font: normal 16px &quot;Microsoft YaHei&quot;;
}
#backspace_btn {
image: url(:/img/dlt02.png);
}
#backspace_btn:hover {
image: url(:/img/dlt01.png);
}
#dot
{
background-color: rgb(255, 255, 255);
image: url(:/img/dot01.png);
}
#dot:hover
{
background-color: rgb(249, 249, 249);
image: url(:/img/dot02.png);
}
#confirm_btn {
background: rgb(93,144,237);
font: 400 16px &quot;Microsoft YaHei&quot;;
color: white;
min-height: 106px;
max-height: 106px;
border: 0 solid white;
border-right: 1 solid silver;
}
#confirm_btn:hover {
padding: 2 0 0 2;
background-color: rgb(249, 249, 249);
border:2px solid rgb(99, 148, 235);
border-radius:12px;
color: rgb(99, 148, 235);
}</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>8</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>10</number>
</property>
<item row="1" column="3">
<widget class="QPushButton" name="clear_btn">
<property name="text">
<string>清空</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QPushButton" name="no0">
<property name="text">
<string>0</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="no9">
<property name="text">
<string>9</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="no6">
<property name="text">
<string>6</string>
</property>
</widget>
</item>
<item row="2" column="3" rowspan="2">
<widget class="QPushButton" name="confirm_btn">
<property name="text">
<string>确认</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="no1">
<property name="text">
<string>1</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="no2">
<property name="text">
<string>2</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="no3">
<property name="text">
<string>3</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="no5">
<property name="text">
<string>5</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="no4">
<property name="text">
<string>4</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="backspace_btn">
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QPushButton" name="dot">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QPushButton" name="no7">
<property name="text">
<string>7</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="no8">
<property name="text">
<string>8</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
......@@ -7,9 +7,9 @@
#include <QSqlQueryModel>
#include <fmp_logger_i.h>
FMPDataBase::FMPDataBase(QString dbname, FMPLoggerInterface *logger, QObject *parent) : QObject(parent), _logger(logger)
FMPDataBase::FMPDataBase(QString dbname, FMPLoggerInterface *logger, QString connectname, QObject *parent) : QObject(parent), _logger(logger)
{
_db = QSqlDatabase::addDatabase("QSQLITE");
_db = QSqlDatabase::addDatabase("QSQLITE", connectname);
_db.setDatabaseName(dbname);
_isopen = _db.open();
}
......@@ -35,6 +35,25 @@ bool FMPDataBase::creat(QString sql)
return flag;
}
bool FMPDataBase::dlt(QString table, QString condition)
{
if(!_isopen)
return false;
QString sql = QString("delete from %1 where %2").arg(table, condition);
QSqlQuery query(_db);
bool flag = query.exec(sql);
FMP_INFO(_logger) << "000000000000000000000 "<< sql;
if(!flag)
FMP_WARN(_logger) << query.lastError();
return flag;
}
bool FMPDataBase::insert(QString table, QVariantHash data)
{
if(!_isopen)
......
......@@ -3,6 +3,7 @@
#include <QObject>
#include <QSqlDatabase>
#include "fmp_epay_def.h"
class FMPLoggerInterface;
class QSqlQuery;
......@@ -12,7 +13,7 @@ class FMPDataBase : public QObject
{
Q_OBJECT
public:
FMPDataBase(QString dbname, FMPLoggerInterface *logger, QObject *parent = 0);
FMPDataBase(QString dbname, FMPLoggerInterface *logger, QString connectname = QString(DEFAULT_EPAY_CONNECTNAME), QObject *parent = 0);
~FMPDataBase();
......@@ -24,6 +25,8 @@ public:
bool creat(QString sql);
bool dlt(QString table, QString condition);
QSqlDatabase getDb() const;
private:
......
......@@ -11,10 +11,15 @@ FMPePay::FMPePay(ctkPluginContext *context)
_inited(false),
_databasename(DEFAULT_EPAY_DATABASENAME),
_table(DEFAULT_EPAY_TABLE),
_businessdate(QDateTime::currentDateTime().toString("yyyyMMdd")),
_businessdate(QDateTime::currentDateTime().toString("yyyy-MM-dd")),
_ordershelflife(DEFAULT_EPAY_ORDERLIFE),
_operator_id(DEFAULT_EPAY_OPTID),
_store_id(DEFAULT_EPAY_STRID),
_station_id(DEFAULT_EPAY_STNID),
_ste_handler(new FMPStartEventHandler(_ctx, this)),
d_ptr(new FMPePayPrivate(this))
{
FMPStartEventHandler *ste_handler = new FMPStartEventHandler(_ctx, this);
}
int FMPePay::StopService()
......
......@@ -2,9 +2,12 @@
#define FMP_EPAY_H
#include <QObject>
#include <QPointer>
#include "fmp_epay_i.h"
class FMPePayPrivate;
class FMPStartEventHandler;
class FMPePay : public QObject, public FMPePayInterface
{
......@@ -26,7 +29,17 @@ private:
QString _databasename;
QString _table;
QString _businessdate;
QString _store_id;
QString _station_id;
QString _operator_id;
//销售单保存时间
int _ordershelflife;
FMPePayPrivate* d_ptr;
QPointer<FMPStartEventHandler> _ste_handler;
};
#endif // FMP_EPAY_H
......@@ -17,7 +17,9 @@ SOURCES += \
fmp_epay_plugin.cpp \
fmp_epayview_dialog.cpp \
fmp_epayview_wait.cpp \
fmp_database.cpp
fmp_database.cpp \
fmp_pe_handlers.cpp \
fmnumpad.cpp
HEADERS +=\
fmp_epay.h \
......@@ -29,7 +31,9 @@ HEADERS +=\
fmp_epayview_focuslineedit.h \
fmp_epayview_wait.h \
fmp_database.h \
fmp_epay_checkmodel.h
fmp_epay_checkmodel.h \
fmp_pe_handlers.h \
fmnumpad.h
unix {
target.path = /usr/lib
......@@ -73,4 +77,5 @@ else {
FORMS += \
fmp_epayview_dialog.ui \
fmp_epayview_wait.ui
fmp_epayview_wait.ui \
fmnumpad.ui
......@@ -7,7 +7,7 @@
class FMPPayCheckModel : public QSqlTableModel
{
public:
explicit FMPPayCheckModel(QObject *parent, QSqlDatabase db)
explicit FMPPayCheckModel(QObject *parent, QSqlDatabase db) : QSqlTableModel(parent, db)
{
}
......
......@@ -33,6 +33,7 @@
//sql字段
#define SQL_KEY_ISREFUND "isrefund"
#define SQL_KEY_REFUND_DATE "refund_date"
#define SQL_KEY_PAYID "pay_id"
#define SQL_KEY_PAYTRANSID "pay_transId"
#define SQL_KEY_TRANSID "trans_id"
......@@ -46,6 +47,11 @@
#define DEFAULT_EPAY_RWQUESTURL "http://115.159.142.32:80/api?partner=aisen"
#define DEFAULT_EPAY_DATABASENAME "fmp_test.db"
#define DEFAULT_EPAY_TABLE "fmp_pay"
#define DEFAULT_EPAY_CONNECTNAME "fmp_pay_connect"
#define DEFAULT_EPAY_ORDERLIFE 60
#define DEFAULT_EPAY_STRID "99999"
#define DEFAULT_EPAY_OPTID "02"
#define DEFAULT_EPAY_STNID "01"
//基础信息 营业日/操作员/pos编号
#define FMP_BASIC_BUSINESSDATE "businessdate"
......
......@@ -19,6 +19,7 @@
#include <QNetworkReply>
#include <QtConcurrent>
#include <QTimer>
#include <QFuture>
#include <QSqlQuery>
......@@ -33,13 +34,19 @@ FMPePayPrivate::FMPePayPrivate(FMPePay *parent)
_network(nullptr),
_model(nullptr),
_db(nullptr),
_watcher(nullptr),
_reverse_flag(false)
{
_watcher = new QFutureWatcher<QByteArray>();
connect( _watcher, SIGNAL( finished() ), this, SLOT( witedata() ) );
}
FMPePayPrivate::~FMPePayPrivate()
{
{
if(_watcher != nullptr){
delete _watcher;
}
if(_payDialog != nullptr) {
delete _payDialog;
}
......@@ -68,6 +75,25 @@ int FMPePayPrivate::Pay()
return FMP_SUCCESS;
}
void FMPePayPrivate::clearorder()
{
Q_Q(FMPePay);
QtConcurrent::run( [q, this]()
{
FMPDataBase db(q->_databasename, _logger, QString("fmp_pay_clean")) ;
QDateTime date = QDateTime::currentDateTime();
QDateTime tmpdate = date.addDays(-(q->_ordershelflife));
QString deletedate = tmpdate.toString("yyyy-MM-dd");
FMP_INFO(_logger) << "deletedate" <<deletedate;
db.dlt(q->_table, QString(QString(SQL_KEY_BUSSINEDATE) + "<datetime('%1')").arg(deletedate));
});
}
void FMPePayPrivate::onShowPayWnd()
{
Q_Q(FMPePay);
......@@ -77,6 +103,8 @@ void FMPePayPrivate::onShowPayWnd()
_logger = q->GetService<FMPLoggerInterface>(q->_ctx);
}
clearorder();
if(_network == nullptr)
{
_network = q->GetService<FMPNetworkInterface>(q->_ctx);
......@@ -98,8 +126,9 @@ void FMPePayPrivate::onShowPayWnd()
"mcoupon_amount integer, "
"alipay_amount integer, "
"invoice_amount integer, "
"business_date varchar(30), "
"isrefund boolean"
"business_date date, "
"isrefund boolean, "
"refund_date date"
")";
FMP_INFO(_logger) << " creat table sql:" << sql;
......@@ -121,7 +150,10 @@ void FMPePayPrivate::onShowPayWnd()
QVariantHash hash;
hash[FMP_BASIC_BUSINESSDATE] = q->_businessdate;
hash[FMP_EPAY_BUSINESSDATE] = q->_businessdate;
hash[FMP_EPAY_STOREID] = q->_store_id;
hash[FMP_EPAY_STATIONID] = q->_station_id;
hash[FMP_EPAY_OPERATORID] = q->_operator_id;
_setting = q->GetService<FMPSettingsInterface>(q->_ctx);
_payDialog = new FMPPayDialog(this, _logger, hash);
......@@ -177,6 +209,55 @@ void FMPePayPrivate::ControlPayJson(QString sum, QString code)
});
}
//void FMPePayPrivate::ControlPayJson(QString sum, QString code)
//{
// Q_Q(FMPePay);
// QByteArray data = "{ \"reqtype\" : 0}";
// HttpPost(q->_url, data, _watcher);
// qDebug() << "***********************" <<_watcher->future().result();
//}
void FMPePayPrivate::witedata()
{
qDebug() << _watcher->future().result();
}
void FMPePayPrivate::HttpPost(const QString &url, const QByteArray &data, QFutureWatcher<QByteArray> *watcher, int timeout)
{
QFuture<QByteArray> furture = QtConcurrent::run( [url, data, timeout, this]()->QByteArray
{
QEventLoop loop;
QTimer timer;
QNetworkAccessManager manger;
QNetworkRequest request(url);
request.setRawHeader("Content-Type","text/json");
QNetworkReply* reply = manger.post(request, data);
connect(&timer, &QTimer::timeout, &loop, &QEventLoop::quit);
connect(&manger, &QNetworkAccessManager::finished, &loop, &QEventLoop::quit);
connect(reply, static_cast<void (QNetworkReply::*)(QNetworkReply::NetworkError)>(&QNetworkReply::error), &loop, &QEventLoop::quit);
timer.start(timeout*1000);
loop.exec();
reply->deleteLater();
if(reply->error() != QNetworkReply::NoError)
{
return QByteArray();
}
return reply->readAll();
});
watcher->setFuture(furture);
}
bool FMPePayPrivate::HttpPost(QJsonObject& outjson, QJsonObject json, QString &error, int timeout)
{
Q_Q(FMPePay);
......@@ -317,6 +398,8 @@ void FMPePayPrivate::ControlRefundJson(QString sum, QString code)
tmpkeylist << SQL_KEY_PAYTRANSID << SQL_KEY_FMID << SQL_KEY_PAYID;
hash.insert(SQL_KEY_ISREFUND, true);
hash.insert(SQL_KEY_REFUND_DATE, QDateTime::currentDateTime().toString("yyyy-MM-dd"));
if(!_db->update(q->_table, hash, QString("pay_transId = '%1' or fmId = '%2'").arg(code).arg(code)))
{
FMP_ERROR(_logger) << "refund data update failed";
......@@ -375,9 +458,6 @@ bool FMPePayPrivate::GetPayJson(const QString& sum, const QString& code)
**/
qDebug() << "get store infomation from settings";
QString storeid = "99999";
QString station = "07";
QString oprt = "08";
int ver = 2;
transaction.insert(FMP_EPAY_TRANSTRACTION_CODE, code);
......@@ -389,9 +469,9 @@ bool FMPePayPrivate::GetPayJson(const QString& sum, const QString& code)
_current_json.insert( FMP_EPAY_REQUESTTYPE, 72);
_current_json.insert( FMP_EPAY_BUSINESSDATE, q->_businessdate);
_current_json.insert( FMP_EPAY_CLIENTREQCOUNT, (int)((++s_ClientReqCount)%=10000000));
_current_json.insert( FMP_EPAY_STOREID, storeid);
_current_json.insert( FMP_EPAY_STATIONID, station);
_current_json.insert( FMP_EPAY_OPERATORID, oprt);
_current_json.insert( FMP_EPAY_STOREID, q->_store_id);
_current_json.insert( FMP_EPAY_STATIONID, q->_station_id);
_current_json.insert( FMP_EPAY_OPERATORID, q->_operator_id);
_current_json.insert( FMP_EPAY_TRANSID, QDateTime::currentDateTime().toString("yyyyMMddhhmmsszzz"));
_current_json.insert( FMP_EPAY_TRANSTRACTION, transactionarry);
......@@ -412,9 +492,6 @@ bool FMPePayPrivate::GetRefundJson(const QString &sum, const QString &code, QStr
**/
qDebug() << "get store infomation from settings";
QString storeid = "99999";
QString station = "07";
QString oprt = "08";
int ver = 2;
if((code[0] >= 'a' && code[0] <= 'z') || (code[0] >= 'A' && code[0] <= 'Z'))
......@@ -435,9 +512,9 @@ bool FMPePayPrivate::GetRefundJson(const QString &sum, const QString &code, QStr
_current_json.insert( FMP_EPAY_VER, ver);
_current_json.insert( FMP_EPAY_REQUESTTYPE, 62);
_current_json.insert( FMP_EPAY_CLIENTREQCOUNT, (int)((++s_ClientReqCount)%=10000000));
_current_json.insert( FMP_EPAY_STOREID, storeid);
_current_json.insert( FMP_EPAY_STATIONID, station);
_current_json.insert( FMP_EPAY_OPERATORID, oprt);
_current_json.insert( FMP_EPAY_STOREID, q->_store_id);
_current_json.insert( FMP_EPAY_STATIONID, q->_station_id);
_current_json.insert( FMP_EPAY_OPERATORID, q->_operator_id);
_current_json.insert( FMP_EPAY_TRANSTRACTION, transactionarry);
return true;
......
......@@ -3,6 +3,7 @@
#include "fmp_epay.h"
#include <QObject>
#include <QFuture>
#include <QJsonObject>
class FMPPayDialog;
......@@ -32,6 +33,8 @@ public:
void GetMode();
QSqlTableModel *model() const;
private:
void ControlReverseJson();
......@@ -46,6 +49,8 @@ private:
bool CheckReturnJson(QByteArray data, QJsonObject &returnjson);
void SetBasicInfo(QVariantHash hash);
void clearorder();
signals:
void showPayWnd();
......@@ -57,6 +62,7 @@ signals:
public slots:
void onShowPayWnd();
void witedata();
public:
FMPePay *q_ptr;
......@@ -69,8 +75,6 @@ public:
FMPNetworkInterface *_network;
QSqlTableModel *model() const;
private:
......@@ -84,6 +88,11 @@ private:
FMPDataBase *_db;
QSqlTableModel *_model;
QFutureWatcher<QByteArray> *_watcher;
void HttpPost(const QString &url, const QByteArray &data, QFutureWatcher<QByteArray> *furture, int timeout = 10);
};
#endif // FMP_EPAY_P_H
......@@ -25,6 +25,14 @@ class FMPPayDialog : public QDialog
{
Q_OBJECT
typedef enum
{
TopToBtm = 0,
BtmToTop,
LeftToRight,
RightToLeft
} Movemode;
public:
explicit FMPPayDialog(FMPePayPrivate *control, FMPLoggerInterface *logger, QVariantHash basicinfo, QWidget *parent = 0);
~FMPPayDialog();
......@@ -42,11 +50,9 @@ protected:
void keyPressEvent(QKeyEvent *);
private slots:
void on_btn_num_clicked();
void on_btn_pay_clicked();
void on_widget_change();
void on_btn_refund_clicked();
void on_btn_num_clicked();
void on_btn_confirm_clicked();
......@@ -54,6 +60,10 @@ private slots:
void on_btn_cleancode_clicked();
void on_btn_cleannum_refund_clicked();
void on_btn_cleancode_refund_clicked();
void on_btn_backspace_clicked();
void on_btn_linefeed_clicked();
......@@ -64,12 +74,14 @@ private slots:
void on_btn_success_confirm_clicked();
void on_btn_check_clicked();
void on_btn_paycheck_clicked();
void on_pushButton_2_clicked();
void on_btn_linefeed_refund_clicked();
void on_btn_backspace_refund_clicked();
private:
void setPayView();
......@@ -85,6 +97,9 @@ private:
bool CheckLineEditCode(QString code);
//-----------
void PlayAnimation(QWidget* target0, QWidget* target1, Movemode movemode);
private:
Ui::FMPPayDialog *ui;
......@@ -96,6 +111,12 @@ private:
FMPLoggerInterface *_logger;
//----------
QPushButton* _curt_btn;
bool _success_flag;
bool _is_amt;
};
#endif // DIALOG_H
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -12,5 +12,11 @@
<file>img/logo.png</file>
<file>img/sys.ico</file>
<file>img/loading.png</file>
<file>img/check0.png</file>
<file>img/check1.png</file>
<file>img/dlt01.png</file>
<file>img/dlt02.png</file>
<file>img/dot01.png</file>
<file>img/dot02.png</file>
</qresource>
</RCC>
fmp_epay/res/img/fm-icon_close_02.png

1.11 KB | W: | H:

fmp_epay/res/img/fm-icon_close_02.png

626 Bytes | W: | H:

fmp_epay/res/img/fm-icon_close_02.png
fmp_epay/res/img/fm-icon_close_02.png
fmp_epay/res/img/fm-icon_close_02.png
fmp_epay/res/img/fm-icon_close_02.png
  • 2-up
  • Swipe
  • Onion skin
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