formshkjreserve.cpp 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684
  1. #include "formshkjreserve.h"
  2. #include "ui_formshkjreserve.h"
  3. #include "sncdatabase.h"
  4. #include "respgetmyhmyyinfo.h"
  5. #include "respuserserviceverify.h"
  6. #include "respdljsjcresultfile.h"
  7. #include "respdelhmyy.h"
  8. FormShkjReserve::FormShkjReserve(QWidget *parent) :
  9. QWidget(parent),
  10. ui(new Ui::FormShkjReserve)
  11. {
  12. ui->setupUi(this);
  13. initVariables();
  14. initUI();
  15. setTableWidgetNoData(ui->tableWidget);
  16. }
  17. FormShkjReserve::~FormShkjReserve()
  18. {
  19. m_movieBig->stop();
  20. delete m_movieBig;
  21. m_cubews->abort();
  22. delete m_cubews;
  23. delete ui;
  24. qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")\
  25. <<"FormRiddle.FormShkjReserve Destroyed.";
  26. }
  27. bool FormShkjReserve::eventFilter(QObject *object, QEvent *event)
  28. {
  29. if( event->type() == QEvent::KeyPress)
  30. {
  31. // if yes, we need to cast the event into a QMouseEvent type
  32. QKeyEvent * pKeyEvent = static_cast<QKeyEvent *>(event);
  33. // check whether it's mid button pressed
  34. if (pKeyEvent->key() == Qt::Key_Control||pKeyEvent->key() == Qt::Key_Shift)
  35. {
  36. //do the processing and return true
  37. //textBrowserErrorInfo->setText(tr("clicked"));
  38. ui->tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
  39. return true; //一定要返回true,如果你不想别的object也能接收到这个event
  40. }
  41. }
  42. else if( event->type() == QEvent::KeyRelease)
  43. {
  44. QKeyEvent * pKeyEvent = static_cast<QKeyEvent *>(event);
  45. // check whether it's mid button pressed
  46. if (pKeyEvent->key() == Qt::Key_Control||pKeyEvent->key() == Qt::Key_Shift)
  47. {
  48. //do the processing and return true
  49. //textBrowserErrorInfo->setText(tr("clicked"));
  50. ui->tableWidget->setSelectionMode(QAbstractItemView::MultiSelection);
  51. return true; //一定要返回true,如果你不想别的object也能接收到这个event
  52. }
  53. }
  54. return QWidget::eventFilter(object, event);
  55. }/**/
  56. void FormShkjReserve::initVariables()
  57. {
  58. m_movieBig = new QMovie(":/fetchfromserver.gif");
  59. m_movieBig->start();
  60. m_movieSmall = new QMovie(":/working.gif");
  61. m_movieSmall->start();
  62. m_keys<<"serialnum"<<"ordid"<<"province"<<"city"\
  63. <<"attennum"<<"label1"<<"ordtime"<<"state"<<"updatetime"<<"updatenum"<<"label2"<<"op";
  64. m_state = NotLogin;
  65. m_headers<<""<<""<<"省份"<<"地区"<<"关注人数"<<"关注人数"\
  66. <<"预约时间"<<"预约状态"<<"更新时间"<<"更新数量"<<"更新实号数量"<<"操作";
  67. m_curLtfid = "";
  68. m_curQryid = "";
  69. m_lastLtfid = "";
  70. m_cubews = new WSCube2();
  71. ui->tableWidget->installEventFilter(this);
  72. }
  73. void FormShkjReserve::setAccountInfo(QMap<QString, QString> info)
  74. {
  75. m_account = info;
  76. QString ssoHash = info.value("ssohash");
  77. if(!ssoHash.isEmpty())
  78. {
  79. m_state = LoginOk;
  80. setTableWidgetSyncData(ui->tableWidget);
  81. query();
  82. }
  83. else
  84. {
  85. m_state = NotLogin;
  86. }
  87. if(m_state!=LoginOk)
  88. {
  89. setTableWidgetNoData(ui->tableWidget);
  90. setDetailNoData();
  91. }
  92. }
  93. void FormShkjReserve::initUI()
  94. {
  95. ui->labelMovie->setMovie(m_movieSmall);
  96. ui->labelMovie->setVisible(false);
  97. ui->label->setStyleSheet("color:red");
  98. ui->tableWidget->setColumnCount(m_headers.size());
  99. ui->tableWidget->setHorizontalHeaderLabels(m_headers);
  100. ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
  101. ui->tableWidget->setShowGrid(false);
  102. ui->tableWidget->setAlternatingRowColors(true);
  103. ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
  104. ui->tableWidget->setSelectionMode(QAbstractItemView::MultiSelection);
  105. ui->tableWidget->verticalHeader()->setVisible(false);
  106. ui->tableWidget->horizontalHeader()->setStyleSheet("font:12px");
  107. ui->tableWidget->horizontalHeader()->setResizeMode(QHeaderView::Fixed);
  108. ui->tableWidget->verticalHeader()->setResizeMode(QHeaderView::Fixed);
  109. ui->tableWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
  110. ui->tableWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
  111. ui->tableWidget->verticalHeader()->setFixedWidth(30);
  112. ui->tableWidget->setSortingEnabled(false);
  113. int col = 0;
  114. ui->tableWidget->setColumnWidth(col++,20);
  115. ui->tableWidget->setColumnWidth(col++,0);
  116. ui->tableWidget->setColumnWidth(col++,0);
  117. ui->tableWidget->setColumnWidth(col++,100);
  118. ui->tableWidget->setColumnWidth(col++,0);//
  119. ui->tableWidget->setColumnWidth(col++,120);
  120. ui->tableWidget->setColumnWidth(col++,180);
  121. ui->tableWidget->setColumnWidth(col++,140);//
  122. ui->tableWidget->setColumnWidth(col++,0);//8 80
  123. ui->tableWidget->setColumnWidth(col++,0);//
  124. ui->tableWidget->setColumnWidth(col++,0);//10 80
  125. ui->tableWidget->setColumnWidth(col++,110);//
  126. }
  127. void FormShkjReserve::setTableWidgetNoData(QTableWidget *tableWidget)
  128. {
  129. prepareTableWidgetCells(tableWidget,8);
  130. tableWidget->setEnabled(false);
  131. QTableWidgetItem *item = new QTableWidgetItem();
  132. item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
  133. item->setText("暂无信息");
  134. tableWidget->setItem(4,6,item);
  135. }
  136. void FormShkjReserve::setTableWidgetSyncData(QTableWidget *tableWidget)
  137. {
  138. prepareTableWidgetCells(tableWidget,10);
  139. tableWidget->setEnabled(false);
  140. QLabel *lbl = new QLabel();
  141. QTableWidgetItem *item = new QTableWidgetItem("正在读取...");
  142. lbl->setMovie(m_movieBig);
  143. lbl->setAlignment(Qt::AlignCenter|Qt::AlignVCenter);
  144. item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter);
  145. tableWidget->setItem(4,6,item);
  146. tableWidget->setCellWidget(4,5,lbl);
  147. }
  148. void FormShkjReserve::setDetailNoData()
  149. {
  150. }
  151. void FormShkjReserve::prepareTableWidgetCells(QTableWidget *tableWidget, int rows)
  152. {
  153. tableWidget->setRowCount(0);
  154. tableWidget->setRowCount(rows);
  155. }
  156. void FormShkjReserve::fillDataList(QTableWidget *tableWidget,QStringList keys,
  157. QMultiMap<QString, QString> list, int rowCount)
  158. {
  159. setTableWidgetNoData(tableWidget);
  160. if(rowCount==0)
  161. {
  162. return ;
  163. }
  164. prepareTableWidgetCells(tableWidget,rowCount);
  165. tableWidget->setEnabled(true);
  166. for(int row = 0;row < rowCount;row++)
  167. {
  168. QMap<QString,QString> map;
  169. for(int col=0;col<keys.size();col++)
  170. {
  171. QString key = keys.at(col);
  172. QString value ;
  173. if(list.values(key).count()>row)
  174. value = list.values(key).at(row);
  175. map.insert(key,value);
  176. }
  177. for(int col=0;col<keys.size();col++)
  178. {
  179. QString key = keys.at(col);
  180. QString value ;
  181. if(list.values(key).count()>row)
  182. value = list.values(key).at(row);
  183. setCellElement(tableWidget,row,col,key,value,map);
  184. }
  185. }
  186. tableWidget->sortByColumn(0);
  187. tableWidget->sortByColumn(0);
  188. }
  189. void FormShkjReserve::setCellElement(QTableWidget *tableWidget, int row, int col,
  190. QString key,QString value,QMap<QString,QString> data)
  191. {
  192. QTableWidgetItem* item = new QTableWidgetItem();
  193. QVariant display = value;
  194. QVariant tooltip = value;
  195. item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  196. //进行数据翻译
  197. if(key=="serialnum")
  198. {
  199. tooltip = "";
  200. display = "";
  201. item->setCheckState(Qt::Unchecked);
  202. }
  203. else if(key=="isp")
  204. {
  205. if(value=="0")
  206. display = "全部";
  207. else if(value=="1")
  208. display = "移动";
  209. else if(value=="2")
  210. display = "联通";
  211. else if(value=="3")
  212. display = "电信";
  213. else
  214. display = "未知";
  215. tooltip = display;
  216. }
  217. else if(key=="state")
  218. {
  219. if(value=="1")
  220. display = "预约中";
  221. else if(value=="2")
  222. display = "已完成";
  223. else
  224. display = "未知";
  225. tooltip = display;
  226. }
  227. else if(key=="updatetime")
  228. {
  229. int days = value.toInt();
  230. if(days<30)
  231. display = QString("%1天内").arg(days);
  232. else if(days==30)
  233. display = QString("1月内");
  234. else if(days==90)
  235. display = QString("3月内");
  236. else if(days==180)
  237. display = QString("半年内");
  238. else
  239. display = QString::number(days);
  240. // QDateTime dt;
  241. // dt= QDateTime::currentDateTime();
  242. // dt = dt.addDays(0-days);
  243. // display = dt.toString("yyyy-MM-dd");
  244. tooltip = display;
  245. }
  246. else if(key=="city")
  247. {
  248. QString province = data.value("province");
  249. if(province!=value)
  250. display = province+value;
  251. tooltip = display;
  252. //item->setTextColor(Qt::red);
  253. }
  254. else if(key=="attennum")
  255. {
  256. item->setTextColor(Qt::green);
  257. }
  258. else if(key=="updatenum")
  259. {
  260. item->setTextColor(Qt::red);
  261. }
  262. if(key == "op")
  263. {
  264. delete item;
  265. QPushButton *button = new QPushButton(this);
  266. button->setProperty("class","txt-green");
  267. button->setCursor(Qt::PointingHandCursor);
  268. button->setText("选择实号");
  269. tableWidget->setCellWidget(row,col,button);
  270. connect(button,SIGNAL(clicked()),this,SLOT(onButtonClicked()));
  271. }
  272. else if(key == "label1")
  273. {
  274. delete item;
  275. QLabel *label = new QLabel(this);
  276. label->setText(QString("<font color=red>%1</font>人").arg(data.value("attennum")));
  277. label->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  278. tableWidget->setCellWidget(row,col,label);
  279. }
  280. else if(key == "label2")
  281. {
  282. delete item;
  283. QLabel *label = new QLabel(this);
  284. label->setText(QString("共<font color=red>%1</font>条").arg(data.value("updatenum")));
  285. label->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  286. tableWidget->setCellWidget(row,col,label);
  287. }
  288. else
  289. {
  290. item->setData(Qt::DisplayRole,display);
  291. item->setData(Qt::UserRole,value);
  292. item->setData(Qt::ToolTipRole,tooltip);
  293. tableWidget->setItem(row,col,item);
  294. }
  295. }
  296. void FormShkjReserve::query()
  297. {
  298. ui->labelMovie->setVisible(true);
  299. QString userhash= m_account.value("ssohash");
  300. QString json = m_cubews->getMyHmyyInfo(userhash);
  301. ui->labelMovie->setVisible(false);
  302. QMultiMap<QString,QString> list;
  303. RespGetMyHmyyInfo resp(json);
  304. if(resp.getRtnCode()==1)
  305. {
  306. list = resp.getRs();
  307. }
  308. else
  309. {
  310. qDebug()<<"RespGetMyHmyyInfo"<<resp.getRtnMemo();
  311. }
  312. int cols = list.uniqueKeys().size();
  313. int rows = 0;
  314. if(cols!=0)
  315. rows = list.size()/cols;
  316. if(list.size()==0)
  317. {
  318. setTableWidgetNoData(ui->tableWidget);
  319. setDetailNoData();
  320. return ;
  321. }
  322. // QStringList ids;
  323. // QString curId;
  324. // for(int i=0;i<ui->tableWidget->rowCount();i++)
  325. // {
  326. // QTableWidgetItem *item = ui->tableWidget->item(i,0);
  327. // if(item)
  328. // {
  329. // if(item->checkState()==Qt::Checked)
  330. // {
  331. // ids<<item->data(Qt::UserRole).toString();
  332. // }
  333. // if(item->isSelected())
  334. // {
  335. // curId = item->data(Qt::UserRole).toString();
  336. // }
  337. // }
  338. // }
  339. fillDataList(ui->tableWidget,m_keys,list,rows);
  340. // for(int i=0;i<ui->tableWidget->rowCount();i++)
  341. // {
  342. // if(curId.isEmpty())
  343. // {
  344. // ui->tableWidget->selectRow(i);
  345. // //on_tableWidget_cellClicked(i,0);
  346. // break;
  347. // }
  348. // QTableWidgetItem *item = ui->tableWidget->item(i,0);
  349. // if(item)
  350. // {
  351. // QString id = item->data(Qt::UserRole).toString();
  352. // if(curId==id)
  353. // {
  354. // ui->tableWidget->selectRow(i);
  355. // //on_tableWidget_cellClicked(i,0);
  356. // }
  357. // for(int i=0;i<ids.size();i++)
  358. // {
  359. // if(id==ids.at(i))
  360. // {
  361. // item->setCheckState(Qt::Checked);
  362. // break;
  363. // }
  364. // }
  365. // }
  366. // }
  367. }
  368. void FormShkjReserve::showRtnMessage(int row)
  369. {
  370. }
  371. void FormShkjReserve::onDataUpdated()
  372. {
  373. query();
  374. }
  375. void FormShkjReserve::onButtonClicked()
  376. {
  377. QPushButton *btn = qobject_cast<QPushButton*>(sender());
  378. for(int i=0;i<ui->tableWidget->rowCount();i++)
  379. {
  380. QWidget *widget = ui->tableWidget->cellWidget(i,11);
  381. if(widget)
  382. {
  383. if(btn==qobject_cast<QPushButton*>(widget))
  384. {
  385. QTableWidgetItem *item1 = ui->tableWidget->item(i,2);
  386. QTableWidgetItem *item2 = ui->tableWidget->item(i,3);
  387. emit rowButtonClicked("HOTAREA",item1->data(Qt::UserRole).toString()+"-"+item2->data(Qt::UserRole).toString());
  388. break;
  389. }
  390. }
  391. }
  392. }
  393. void FormShkjReserve::displayDetail(QString hmzs, QStringList infos, QStringList nums,QString dealstatus)
  394. {
  395. }
  396. void FormShkjReserve::download(QString srvID, QString qryID)
  397. {
  398. QString ssoHash = m_account.value("ssohash");
  399. if(ssoHash.isEmpty())
  400. {
  401. QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
  402. return;
  403. }
  404. if(srvID.isEmpty())
  405. {
  406. QMessageBox::critical(this,"提示","请先选择要下载的任务单!",QMessageBox::Ok);
  407. return ;
  408. }
  409. QString total;
  410. QString dealstatus;
  411. for(int i=0;i<ui->tableWidget->rowCount();i++)
  412. {
  413. QTableWidgetItem *item = ui->tableWidget->item(i,0);
  414. if(item)
  415. {
  416. if(srvID == item->data(Qt::UserRole).toString())
  417. {
  418. total = ui->tableWidget->item(i,4)->data(Qt::UserRole).toString();
  419. QLabel *lbl = qobject_cast<QLabel*>(ui->tableWidget->cellWidget(i,1));
  420. dealstatus = lbl->property("value").toString();
  421. break;
  422. }
  423. }
  424. }
  425. if(dealstatus.isEmpty()||total.isEmpty())
  426. {
  427. QMessageBox::critical(this,"提示","无法获取下载文件必要的信息!",QMessageBox::Ok);
  428. return ;
  429. }
  430. if(dealstatus=="2")
  431. {
  432. if(QMessageBox::Yes!=QMessageBox::question(NULL,
  433. "确认",
  434. QString("您需要消耗%1条下载量,是否继续?").arg(total)
  435. ,QMessageBox::Yes,QMessageBox::No))
  436. {
  437. return ;
  438. }
  439. }
  440. QString saveZipFileName = getSaveZipFileName(qryID);
  441. if(saveZipFileName.isEmpty())
  442. return ;
  443. QString cachePath = SNCDataBase::getShkjCachePath(srvID);
  444. bool iscached = false;
  445. if(!cachePath.isEmpty())
  446. {
  447. if(QFile::exists(cachePath))
  448. {
  449. iscached = true;
  450. }
  451. }
  452. this->setCursor(Qt::WaitCursor);
  453. if(iscached)
  454. {
  455. downloadFromLocal(saveZipFileName,cachePath);
  456. }
  457. else
  458. {
  459. downloadFromRemote(saveZipFileName,srvID,dealstatus,total);
  460. }
  461. this->setCursor(Qt::ArrowCursor);
  462. }
  463. void FormShkjReserve::downloadFromLocal(QString saveFileName,QString cacheFile)
  464. {
  465. QFile::copy(cacheFile,saveFileName);
  466. QMessageBox::information(this,"提示","下载成功!",QMessageBox::Ok);
  467. }
  468. void FormShkjReserve::downloadFromRemote(QString saveFileName,QString srvID,QString dealstatus,QString total)
  469. {
  470. QString ssoHash = m_account.value("ssohash");
  471. QString json = m_cubews->userServiceVerify("DlJSJCresultFile",QString("%1,%2").arg(dealstatus).arg(total),ssoHash);
  472. RespUserServiceVerify response1(json);
  473. if(response1.getRtnCode()<=0)
  474. {
  475. QMessageBox::critical(this,"提示",response1.getRtnMemo(),QMessageBox::Ok);
  476. return ;
  477. }
  478. // json = m_cubews->dlJSJCresultFile(srvID,ssoHash);
  479. // RespDlJSJCresultFile response(json);
  480. // if(response.getRtnCode()==1)
  481. // {
  482. // QString fileContent = response.getFileContent();
  483. // QByteArray array = QByteArray::fromBase64(fileContent.toAscii());
  484. // QFile file(saveFileName);
  485. // file.open(QIODevice::WriteOnly);
  486. // file.write(array);
  487. // file.close();
  488. // QString cachPath = cacheDownloadFile(saveFileName);
  489. // SNCDataBase::updateShkjCachePath(srvID,cachPath);
  490. // emit dataDownload();
  491. // QMessageBox::information(this,"提示","下载成功!",QMessageBox::Ok);
  492. // }
  493. // else
  494. // {
  495. // QMessageBox::critical(this,"提示",response.getRtnMemo(),QMessageBox::Ok);
  496. // }
  497. }
  498. QString FormShkjReserve::getSaveZipFileName(QString qryID)
  499. {
  500. QFileDialog::Options options;
  501. QString selectedFilter;
  502. QString exportDir = SNCDataBase::getExportDir();
  503. QString defaultZipFileName = QString("实号快检_%1.zip").arg(qryID);
  504. QString saveZipFileName = QFileDialog::getSaveFileName(this,"另存为",exportDir + "\\" + defaultZipFileName,
  505. tr("ZIP Files (*.zip)"),
  506. &selectedFilter,
  507. options);
  508. if(!saveZipFileName.isEmpty())
  509. {
  510. QFileInfo fileInfo(saveZipFileName);
  511. exportDir = fileInfo.absolutePath();
  512. SNCDataBase::updateExportDir(exportDir);
  513. }
  514. return saveZipFileName;
  515. }
  516. QString FormShkjReserve::cacheDownloadFile(QString fileName)
  517. {
  518. QString userCode = m_account.value("usercode");
  519. QString date = QDate::currentDate().toString("yyyyMM");
  520. QString cachePath = QCoreApplication::applicationDirPath()+\
  521. QString("/../data/%1/cache/shkj/download/%2/").arg(userCode).arg(date);
  522. QDir dir;
  523. dir.mkpath(cachePath);
  524. QFileInfo fileinfo(fileName);
  525. QFile::copy(fileName,cachePath + fileinfo.fileName());
  526. return cachePath + fileinfo.fileName();
  527. }
  528. bool FormShkjReserve::chkAccountState(AccountLoginState state)
  529. {
  530. bool ret = false;
  531. switch(state)
  532. {
  533. case NotLogin:
  534. QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
  535. break;
  536. case NotBind:
  537. QMessageBox::critical(this,"提示","此项服务尚未开通,请开通后再操作!",QMessageBox::Ok);
  538. break;
  539. case LoginError:
  540. QMessageBox::critical(this,"提示","此项服务暂时无法连接,请稍候重试!",QMessageBox::Ok);
  541. break;
  542. default:
  543. ret = true;
  544. }
  545. return ret;
  546. }
  547. void FormShkjReserve::on_pushButton_clicked()
  548. {
  549. if(!chkAccountState(m_state))
  550. return ;
  551. query();
  552. }
  553. void FormShkjReserve::on_pushButtonDel_clicked()
  554. {
  555. if(!chkAccountState(m_state))
  556. return ;
  557. if(QMessageBox::Yes!=QMessageBox::question(NULL,
  558. "确认",
  559. QString("您确定要删除吗?")
  560. ,QMessageBox::Yes,QMessageBox::No))
  561. {
  562. return ;
  563. }
  564. QString ssohash = m_account.value("ssohash");
  565. for(int i=0;i<ui->tableWidget->rowCount();i++)
  566. {
  567. QTableWidgetItem *item = ui->tableWidget->item(i,0);
  568. if(item)
  569. {
  570. if(item->checkState()==Qt::Checked)
  571. {
  572. QTableWidgetItem *item1 = ui->tableWidget->item(i,1);
  573. QString ordid = item1->data(Qt::UserRole).toString();
  574. QString json = m_cubews->delHmyy(ordid,ssohash);
  575. RespDelHmyy resp(json);
  576. }
  577. }
  578. }
  579. query();
  580. }
  581. void FormShkjReserve::on_checkBox_clicked()
  582. {
  583. for(int i=0;i<ui->tableWidget->rowCount();i++)
  584. {
  585. QTableWidgetItem *item = ui->tableWidget->item(i,0);
  586. if(item)
  587. {
  588. if(ui->checkBox->isChecked())
  589. {
  590. item->setCheckState(Qt::Checked);
  591. }
  592. else
  593. {
  594. item->setCheckState(Qt::Unchecked);
  595. }
  596. }
  597. }
  598. }
  599. void FormShkjReserve::on_tableWidget_clicked(const QModelIndex &index)
  600. {
  601. if(index.column()==0)
  602. {
  603. QTableWidgetItem *item = ui->tableWidget->item(index.row(),index.column());
  604. if(item)
  605. {
  606. if(item->checkState()==Qt::Checked)
  607. {
  608. ui->tableWidget->selectRow(index.row());
  609. }
  610. else
  611. {
  612. ui->tableWidget->selectRow(index.row());
  613. }
  614. }
  615. }
  616. }
  617. void FormShkjReserve::on_tableWidget_itemSelectionChanged()
  618. {
  619. for(int i=0;i<ui->tableWidget->rowCount();i++)
  620. {
  621. QTableWidgetItem *item = ui->tableWidget->item(i,0);
  622. if(item->isSelected())
  623. {
  624. item->setCheckState(Qt::Checked);
  625. }
  626. else
  627. {
  628. item->setCheckState(Qt::Unchecked);
  629. }
  630. }
  631. }