selectvalueform.cpp 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. #include "selectvalueform.h"
  2. #include "ui_selectvalueform.h"
  3. #include <QJsonArray>
  4. SelectValueForm::SelectValueForm(QWidget *parent) :
  5. QWidget(parent),
  6. ui(new Ui::SelectValueForm),nowPage(0),pageListNum(20),totlePage(1),totleNum(0)
  7. {
  8. ui->setupUi(this);
  9. connect(&_request,&HttpRequest::result,this,&SelectValueForm::result);
  10. nowPage = 0;
  11. connect(glo,&GlobalInfo::doInited,this,&SelectValueForm::Start);
  12. connect(glo,&GlobalInfo::selectproject,this,&SelectValueForm::Start);
  13. ui->denier->hide();
  14. ui->dtex->hide();
  15. ui->fiber->hide();
  16. ui->category->hide();
  17. ui->machine_no->hide();
  18. // ui->specs->hide();
  19. ui->color->hide();
  20. ui->pushButton_2->setEnabled(false);
  21. Manger = GlobalInfo::this_()->packInfoManger();
  22. proinfo = new ProjectInfoManger(Manger,this);
  23. connect(proinfo,&ProjectInfoManger::sync,this,&SelectValueForm::on_RefreshButton_clicked);
  24. // ui->RefreshButton->hide();
  25. }
  26. SelectValueForm::~SelectValueForm()
  27. {
  28. delete ui;
  29. }
  30. void SelectValueForm::Start()
  31. {
  32. ui->pushButton_2->setEnabled(true);
  33. prolist = GlobalInfo::this_()->project().values();
  34. // if(prolist.isEmpty()){
  35. // return;
  36. // }
  37. totleNum = prolist.size();
  38. refPage(nowPage);
  39. ui->labelTotle->setText(QString::number(totleNum));
  40. ui->back_Button->hide();
  41. ui->backMainButton->hide();
  42. if(status == 0){
  43. ui->backMainButton->show();
  44. return;
  45. }
  46. ui->back_Button->show();
  47. }
  48. void SelectValueForm::result(int code, const QJsonObject & body)
  49. {
  50. if(body.value("code").toInt(404) != 200){
  51. nowPage = 0;
  52. pageListNum = 20;
  53. totlePage = 0;
  54. totleNum = 0;
  55. return;
  56. }
  57. // currtInfo.clear();
  58. totleNum = body.value("total").toInt();
  59. QJsonArray ary = body.value("data").toArray();
  60. for(int i =0; i < ary.size(); ++i){
  61. parseObject(ary.at(i).toObject());
  62. }
  63. // refPage();
  64. }
  65. void SelectValueForm::parseObject(const QJsonObject & obj)
  66. {
  67. ProjectInfo info;
  68. info.dtex = obj.value("detx").toString();
  69. info.goods_id = obj.value("goods_id").toInt();
  70. info.batch_no = obj.value("batch_no").toString();
  71. info.category = obj.value("category").toString();
  72. info.product_type_code = obj.value("product_type_code").toString();
  73. info.spec_role = obj.value("spec_role").toString();
  74. info.denier = obj.value("denier").toString();
  75. // info.dtex = obj.value("detx").toString();
  76. info.fiber = obj.value("fiber").toString();
  77. info.specs = obj.value("specs").toString();
  78. info.color = obj.value("color").toString();
  79. info.twist_type = obj.value("twist_type").toString();
  80. info.bucket_color = obj.value("bucket_color").toString();
  81. info.box_weight = obj.value("box_weight").toString();
  82. info.bucket_weight = obj.value("bucket_weight").toString();
  83. info.machine_no = obj.value("machine_no").toString();
  84. info.carton_type = obj.value("carton_type").toString();
  85. info.limit_number = obj.value("limit_number").toString();
  86. info.bucket_number = obj.value("bucket_number").toString();
  87. info.cake_float = obj.value("cake_float").toString();
  88. info.box_float = obj.value("box_float").toString();
  89. info.box_rule = obj.value("box_rule").toString();
  90. info.customer = obj.value("customer").toString();
  91. info.remark = obj.value("remark").toString();
  92. info.is_disable = obj.value("is_disable").toBool();
  93. info.create_time = obj.value("create_time").toInt();
  94. info.modified_time = obj.value("modified_time").toInt();
  95. // currtInfo.append(info);
  96. }
  97. void SelectValueForm::refPage(int page, int pageListNum)
  98. {
  99. ui->tableWidget->clearContents();
  100. ui->tableWidget->setRowCount(0);
  101. for(int i = 0; i < pageListNum; ++i){
  102. if(page*20+i>=prolist.size()){
  103. break;
  104. }
  105. auto & v = prolist.at(page*20+i);
  106. ui->tableWidget->insertRow(i);
  107. ui->tableWidget->setItem(i,0,new QTableWidgetItem(v->batch_no));
  108. ui->tableWidget->setItem(i,1,new QTableWidgetItem(v->specs));
  109. ui->tableWidget->setItem(i,2,new QTableWidgetItem(v->product_type_code));
  110. ui->tableWidget->setItem(i,3,new QTableWidgetItem(v->category));
  111. ui->tableWidget->setItem(i,4,new QTableWidgetItem(v->machine_no));
  112. ui->tableWidget->setItem(i,5,new QTableWidgetItem(v->bucket_color));
  113. ui->tableWidget->setItem(i,6,new QTableWidgetItem(v->twist_type));
  114. ui->tableWidget->setItem(i,7,new QTableWidgetItem(v->color));
  115. ui->tableWidget->setItem(i,8,new QTableWidgetItem(v->goods_id>=0?"已同步":"未同步"));
  116. if(v->goods_id<0){
  117. ui->tableWidget->item(i,8)->setBackground(QBrush(QColor(255,85,0,100)));
  118. }else{
  119. ui->tableWidget->item(i,8)->setBackground(QBrush(QColor(85,255,0,100)));
  120. }
  121. }
  122. ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); //根据tablewidget宽度平均分配宽度
  123. // ui->tableWidget->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeToContents);//根据内容适应宽度
  124. totlePage = totleNum / pageListNum;
  125. if(totleNum % pageListNum > 0)
  126. totlePage ++;
  127. this->ui->labelPages->setText(QString("%1/%2").arg(nowPage+1).arg(totlePage));
  128. }
  129. void SelectValueForm::on_pushPrev_clicked()
  130. {
  131. if(nowPage > 0) {
  132. nowPage --;
  133. refPage(nowPage);
  134. }
  135. }
  136. void SelectValueForm::on_pushNext_clicked()
  137. {
  138. if(nowPage < totlePage-1){
  139. nowPage ++;
  140. refPage(nowPage);
  141. }
  142. }
  143. void SelectValueForm::on_pushButton_2_clicked()
  144. {
  145. int now = ui->tableWidget->currentRow();
  146. if(now<0){
  147. QMessageBox::information(this,tr("注意"),tr("请先选择一个数据"));
  148. return;
  149. }
  150. if(ui->tableWidget->item(now,8)->text()=="未同步"){
  151. QMessageBox::information(this,tr("注意"),tr("请先同步批号"));
  152. return;
  153. }
  154. emit selectProject(ui->tableWidget->item(now,0)->text());
  155. }
  156. void SelectValueForm::on_searchButton_clicked()
  157. {
  158. // UserInfo user = GlobalInfo::this_()->user();
  159. // bool isNoLine = GlobalInfo::this_()->isNoLine();
  160. // GlobalInfo::this_()->start(user,isNoLine);
  161. // qDebug()<<user.userName<<user.accountId<<user.acessToken;
  162. auto batch = ui->batch_no->text();
  163. auto specs = ui->specs->text();
  164. if(batch.isEmpty()&&specs.isEmpty()){
  165. // updateTableWidget(prolist);
  166. prolist = GlobalInfo::this_()->project().values();
  167. totleNum = prolist.size();
  168. refPage(nowPage);
  169. ui->labelTotle->setText(QString::number(totleNum));
  170. } else {
  171. auto list = GlobalInfo::this_()->searchProject(batch,specs);
  172. // updateTableWidget(list);
  173. prolist = list;
  174. totleNum = prolist.size();
  175. refPage(nowPage);
  176. ui->labelTotle->setText(QString::number(totleNum));
  177. }
  178. }
  179. void SelectValueForm::on_backMainButton_clicked()
  180. {
  181. emit back();
  182. }
  183. void SelectValueForm::on_back_Button_clicked()
  184. {
  185. emit backFandU();
  186. }
  187. void SelectValueForm::on_closeButton_clicked()
  188. {
  189. ui->batch_no->clear();
  190. ui->specs->clear();
  191. on_searchButton_clicked();
  192. }
  193. void SelectValueForm::on_RefreshButton_clicked()
  194. {
  195. GlobalInfo::this_()->selectProject(false);
  196. }
  197. //同步按钮
  198. void SelectValueForm::on_synButtong_clicked()
  199. {
  200. for(int i = 0;i<prolist.size();i++){
  201. if(prolist.at(i)->goods_id<0){
  202. proinfo->addNewProject(prolist.at(i));
  203. }
  204. }
  205. }