apply-clients 3.2.36 → 3.2.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/dist-android/static/15.js +2 -2
  2. package/dist-android/static/23.js +2 -2
  3. package/index.html +1 -1
  4. package/package.json +5 -5
  5. package/src/AndroidApp.vue +10 -9
  6. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  7. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
  8. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  9. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  10. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  11. package/src/android-bootstrap/less/.csscomb.json +304 -0
  12. package/src/android-bootstrap/less/.csslintrc +19 -0
  13. package/src/android-bootstrap/less/alerts.less +73 -0
  14. package/src/android-bootstrap/less/badges.less +66 -0
  15. package/src/android-bootstrap/less/bootstrap.less +56 -0
  16. package/src/android-bootstrap/less/breadcrumbs.less +26 -0
  17. package/src/android-bootstrap/less/button-groups.less +247 -0
  18. package/src/android-bootstrap/less/buttons.less +173 -0
  19. package/src/android-bootstrap/less/carousel.less +269 -0
  20. package/src/android-bootstrap/less/close.less +34 -0
  21. package/src/android-bootstrap/less/code.less +69 -0
  22. package/src/android-bootstrap/less/component-animations.less +33 -0
  23. package/src/android-bootstrap/less/dropdowns.less +216 -0
  24. package/src/android-bootstrap/less/forms.less +626 -0
  25. package/src/android-bootstrap/less/glyphicons.less +305 -0
  26. package/src/android-bootstrap/less/grid.less +84 -0
  27. package/src/android-bootstrap/less/input-groups.less +167 -0
  28. package/src/android-bootstrap/less/jumbotron.less +52 -0
  29. package/src/android-bootstrap/less/labels.less +64 -0
  30. package/src/android-bootstrap/less/list-group.less +141 -0
  31. package/src/android-bootstrap/less/media.less +66 -0
  32. package/src/android-bootstrap/less/mixins/alerts.less +14 -0
  33. package/src/android-bootstrap/less/mixins/background-variant.less +9 -0
  34. package/src/android-bootstrap/less/mixins/border-radius.less +18 -0
  35. package/src/android-bootstrap/less/mixins/buttons.less +69 -0
  36. package/src/android-bootstrap/less/mixins/center-block.less +7 -0
  37. package/src/android-bootstrap/less/mixins/clearfix.less +22 -0
  38. package/src/android-bootstrap/less/mixins/forms.less +90 -0
  39. package/src/android-bootstrap/less/mixins/gradients.less +59 -0
  40. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -0
  41. package/src/android-bootstrap/less/mixins/grid.less +122 -0
  42. package/src/android-bootstrap/less/mixins/hide-text.less +21 -0
  43. package/src/android-bootstrap/less/mixins/image.less +33 -0
  44. package/src/android-bootstrap/less/mixins/labels.less +12 -0
  45. package/src/android-bootstrap/less/mixins/list-group.less +30 -0
  46. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -0
  47. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -0
  48. package/src/android-bootstrap/less/mixins/opacity.less +8 -0
  49. package/src/android-bootstrap/less/mixins/pagination.less +24 -0
  50. package/src/android-bootstrap/less/mixins/panels.less +24 -0
  51. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -0
  52. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -0
  53. package/src/android-bootstrap/less/mixins/reset-text.less +18 -0
  54. package/src/android-bootstrap/less/mixins/resize.less +6 -0
  55. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -0
  56. package/src/android-bootstrap/less/mixins/size.less +10 -0
  57. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -0
  58. package/src/android-bootstrap/less/mixins/table-row.less +44 -0
  59. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -0
  60. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -0
  61. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -0
  62. package/src/android-bootstrap/less/mixins.less +40 -0
  63. package/src/android-bootstrap/less/modals.less +151 -0
  64. package/src/android-bootstrap/less/navbar.less +660 -0
  65. package/src/android-bootstrap/less/navs.less +302 -0
  66. package/src/android-bootstrap/less/normalize.less +424 -0
  67. package/src/android-bootstrap/less/pager.less +76 -0
  68. package/src/android-bootstrap/less/pagination.less +89 -0
  69. package/src/android-bootstrap/less/panels.less +274 -0
  70. package/src/android-bootstrap/less/popovers.less +131 -0
  71. package/src/android-bootstrap/less/print.less +101 -0
  72. package/src/android-bootstrap/less/progress-bars.less +87 -0
  73. package/src/android-bootstrap/less/responsive-embed.less +35 -0
  74. package/src/android-bootstrap/less/responsive-utilities.less +194 -0
  75. package/src/android-bootstrap/less/scaffolding.less +161 -0
  76. package/src/android-bootstrap/less/tables.less +262 -0
  77. package/src/android-bootstrap/less/theme.less +291 -0
  78. package/src/android-bootstrap/less/thumbnails.less +36 -0
  79. package/src/android-bootstrap/less/tooltip.less +102 -0
  80. package/src/android-bootstrap/less/type.less +303 -0
  81. package/src/android-bootstrap/less/utilities.less +55 -0
  82. package/src/android-bootstrap/less/variables.less +896 -0
  83. package/src/android-bootstrap/less/wells.less +29 -0
  84. package/src/apply.js +143 -25
  85. package/src/applyAndroid.js +5 -3
  86. package/src/components/Util.js +5 -5
  87. package/src/components/app_apply/AppServiceView.vue +2 -2
  88. package/src/components/app_apply/Process/AppExplorationUser.vue +200 -310
  89. package/src/components/app_apply/Process/AppProgressReport.vue +84 -0
  90. package/src/components/app_apply/Process/AppServiceControl.vue +215 -4
  91. package/src/components/app_apply/ProgressReport/ProgressReportDetail.vue +64 -0
  92. package/src/components/app_apply/ProgressReport/ProgressReportList.vue +209 -0
  93. package/src/components/app_apply/Supervisory/AppProcessSupervisory.vue +12 -129
  94. package/src/components/image/tubiao.png +0 -0
  95. package/src/components/product/{ApplyCharge → Apply/ApplyCharge}/ApplyChargeList.vue +4 -8
  96. package/src/components/product/{ApplyCharge → Apply/ApplyCharge}/ApplyChargeSearch.vue +2 -4
  97. package/src/components/product/{Function → Apply/Function}/InstallFunction.vue +4 -4
  98. package/src/components/product/{Function → Apply/Function}/InstallInfoSelect.vue +12 -16
  99. package/src/components/product/{Function → Apply/Function}/Service/FunctionServiceControl.vue +0 -1
  100. package/src/components/product/{Function → Apply/Function}/StopApplyCrrdList.vue +0 -0
  101. package/src/components/product/{Function → Apply/Function}/functions/ApplyRecordCancel.vue +1 -1
  102. package/src/components/product/{Function → Apply/Function}/functions/StopInstall.vue +11 -25
  103. package/src/components/product/{Process → Apply/Process}/ExplorationSelect.vue +5 -8
  104. package/src/components/product/{Process → Apply/Process}/ExplorationUser.vue +3 -4
  105. package/src/components/product/Apply/Process/Processes/InstallationDetails.vue +478 -0
  106. package/src/components/product/{Process → Apply/Process}/Processes/addressAndUserinfoManagement.vue +3 -8
  107. package/src/components/product/{Process → Apply/Process}/Processes/chargeManagement.vue +11 -51
  108. package/src/components/product/{Process → Apply/Process}/Processes/supplementalAgreement.vue +1 -1
  109. package/src/components/product/{Process → Apply/Process}/Service/ServiceControl.vue +11 -75
  110. package/src/components/product/{Process → Apply/Process}/ShowBackReason.vue +0 -0
  111. package/src/components/product/{Supervisory → Apply/Supervisory}/Service/SupervisoryServiceControl.vue +0 -5
  112. package/src/components/product/{Supervisory → Apply/Supervisory}/SupervisoryControl.vue +43 -22
  113. package/src/components/product/{Supervisory → Apply/Supervisory}/SupervisoryList.vue +15 -13
  114. package/src/components/product/{Supervisory → Apply/Supervisory}/SupervisoryhCart.vue +1 -1
  115. package/src/components/product/Ledger/ContractManagement/OtherContract/OtherContract.vue +156 -0
  116. package/src/components/product/Ledger/ContractManagement/OtherContract/OtherContractInformation.vue +429 -0
  117. package/src/components/product/Ledger/ContractManagement/OtherContract/OtherContractList.vue +267 -0
  118. package/src/components/product/Ledger/ContractManagement/PurchaseContract/PurchaseContract.vue +138 -0
  119. package/src/components/product/Ledger/ContractManagement/PurchaseContract/PurchaseContractInformation.vue +715 -0
  120. package/src/components/product/Ledger/ContractManagement/PurchaseContract/PurchaseContractList.vue +304 -0
  121. package/src/components/product/Ledger/ContractManagement/RepairContract/RepairContract.vue +119 -0
  122. package/src/components/product/Ledger/ContractManagement/RepairContract/RepairContractInformation.vue +286 -0
  123. package/src/components/product/Ledger/ContractManagement/RepairContract/RepairContractList.vue +258 -0
  124. package/src/components/product/Ledger/FacilityManagement/EmployRecord/EmployRecord.vue +24 -0
  125. package/src/components/product/Ledger/FacilityManagement/EmployRecord/EmployRecordList.vue +218 -0
  126. package/src/components/product/Ledger/FacilityManagement/FacilityInventory/FacilityEmployRecord.vue +124 -0
  127. package/src/components/product/Ledger/FacilityManagement/FacilityInventory/FacilityInventory.vue +307 -0
  128. package/src/components/product/Ledger/FacilityManagement/FacilityInventory/FacilityInventoryInformation.vue +583 -0
  129. package/src/components/product/Ledger/FacilityManagement/FacilityInventory/FacilityInventoryList.vue +285 -0
  130. package/src/components/product/Ledger/FacilityManagement/FacilityInventory/FacilityServiceRecord.vue +113 -0
  131. package/src/components/product/Ledger/FacilityManagement/FacilityInventory/addFacilityInformation.vue +406 -0
  132. package/src/components/product/Ledger/FacilityManagement/FacilityInventory/addoldFacilityInformation.vue +326 -0
  133. package/src/components/product/Ledger/FacilityManagement/ScrapRecord/ScrapRecord.vue +24 -0
  134. package/src/components/product/Ledger/FacilityManagement/ScrapRecord/ScrapRecordList.vue +157 -0
  135. package/src/components/product/Ledger/FacilityManagement/ServiceRecord/ServiceRecord.vue +24 -0
  136. package/src/components/product/Ledger/FacilityManagement/ServiceRecord/ServiceRecordList.vue +168 -0
  137. package/src/components/product/Ledger/FileDownload/FileDownload.vue +42 -0
  138. package/src/components/product/Ledger/Function/InstallFunction.vue +118 -0
  139. package/src/components/product/Ledger/Function/InstallInfoSelect.vue +299 -0
  140. package/src/components/product/Ledger/Function/Service/FunctionServiceControl.vue +220 -0
  141. package/src/components/product/Ledger/Function/functions/PauseInstall.vue +92 -0
  142. package/src/components/product/Ledger/ImportApply/ImportApply.vue +68 -0
  143. package/src/components/product/Ledger/MaterialManagement/DeliveryRecord/DeliveryRecord.vue +24 -0
  144. package/src/components/product/Ledger/MaterialManagement/DeliveryRecord/DeliveryRecordList.vue +281 -0
  145. package/src/components/product/Ledger/MaterialManagement/InventoryInformation/InventoryInformation.vue +313 -0
  146. package/src/components/product/Ledger/MaterialManagement/InventoryInformation/InventoryInformationList.vue +250 -0
  147. package/src/components/product/Ledger/MaterialManagement/InventoryInformation/MaterialDeliveryRecord.vue +110 -0
  148. package/src/components/product/Ledger/MaterialManagement/InventoryInformation/MaterialEarlyWarning.vue +194 -0
  149. package/src/components/product/Ledger/MaterialManagement/InventoryInformation/MaterialInformation.vue +186 -0
  150. package/src/components/product/Ledger/MaterialManagement/InventoryInformation/MaterialOutStock.vue +438 -0
  151. package/src/components/product/Ledger/MaterialManagement/InventoryInformation/MaterialOutboundOrder.vue +457 -0
  152. package/src/components/product/Ledger/MaterialManagement/InventoryInformation/MaterialWarehousingRecord.vue +110 -0
  153. package/src/components/product/Ledger/MaterialManagement/InventoryInformation/PurchaseMaterial.vue +425 -0
  154. package/src/components/product/Ledger/MaterialManagement/InventoryInformation/PurchaseOrder.vue +481 -0
  155. package/src/components/product/Ledger/MaterialManagement/InventoryInformation/ReturnMaterial.vue +321 -0
  156. package/src/components/product/Ledger/MaterialManagement/OutboundOrder/OutboundOrder.vue +86 -0
  157. package/src/components/product/Ledger/MaterialManagement/OutboundOrder/OutboundOrderInformation.vue +327 -0
  158. package/src/components/product/Ledger/MaterialManagement/OutboundOrder/OutboundOrderList.vue +304 -0
  159. package/src/components/product/Ledger/MaterialManagement/OutboundOrder/PrintMaterialBill.vue +139 -0
  160. package/src/components/product/Ledger/MaterialManagement/PurchaseRecords/PrintPurchaseOrder.vue +157 -0
  161. package/src/components/product/Ledger/MaterialManagement/PurchaseRecords/PurchaseRecords.vue +73 -0
  162. package/src/components/product/Ledger/MaterialManagement/PurchaseRecords/PurchaseRecordsInformation.vue +268 -0
  163. package/src/components/product/Ledger/MaterialManagement/PurchaseRecords/PurchaseRecordsList.vue +261 -0
  164. package/src/components/product/Ledger/MaterialManagement/WarehousingRecord/WarehousingRecord.vue +24 -0
  165. package/src/components/product/Ledger/MaterialManagement/WarehousingRecord/WarehousingRecordList.vue +275 -0
  166. package/src/components/product/Ledger/Process/ProcessBusiness.vue +155 -0
  167. package/src/components/product/Ledger/Process/ProcessSelect.vue +340 -0
  168. package/src/components/product/Ledger/Process/Processes/ExhibitionPicture.vue +27 -0
  169. package/src/components/product/Ledger/Process/Processes/ProgressReport.vue +236 -0
  170. package/src/components/product/Ledger/Process/Processes/ProjectMaterialList.vue +77 -0
  171. package/src/components/product/Ledger/Process/Processes/QinhuaMaterialList.vue +72 -0
  172. package/src/components/product/Ledger/Process/Service/ServiceControl.vue +639 -0
  173. package/src/components/product/Ledger/QinhuaMaterial/PickingRecord/PickingInformation.vue +316 -0
  174. package/src/components/product/Ledger/QinhuaMaterial/PickingRecord/PickingRecord.vue +67 -0
  175. package/src/components/product/Ledger/QinhuaMaterial/PickingRecord/PickingRecordList.vue +194 -0
  176. package/src/components/product/Ledger/QinhuaMaterial/SeasoningRecord/SeasoningInformation.vue +385 -0
  177. package/src/components/product/Ledger/QinhuaMaterial/SeasoningRecord/SeasoningRecord.vue +70 -0
  178. package/src/components/product/Ledger/QinhuaMaterial/SeasoningRecord/SeasoningRecordList.vue +208 -0
  179. package/src/components/product/Ledger/Stop/StopApply.vue +103 -0
  180. package/src/components/product/Ledger/Stop/StopApplyList.vue +241 -0
  181. package/src/components/product/Ledger/Supervisory/ProcessSupervisory.vue +163 -0
  182. package/src/components/product/Ledger/Supervisory/Service/RenWuDan.vue +78 -0
  183. package/src/components/product/Ledger/Supervisory/Service/SupervisoryServiceControl.vue +606 -0
  184. package/src/components/product/Ledger/Supervisory/SupervisoryCart.vue +102 -0
  185. package/src/components/product/Ledger/Supervisory/SupervisoryList.vue +387 -0
  186. package/src/components/product/ServiceView.vue +376 -374
  187. package/src/components/product/VueUtils/ApplyUpload.vue +1 -3
  188. package/src/expandcssAndroid.less +534 -0
  189. package/src/main.js +2 -0
  190. package/static/Functions.js +91 -0
  191. package/static/Jsons.js +784 -0
  192. package/static/ManageHomePic//346/244/255/345/234/2064.png +0 -0
  193. package/static/ManagementControl/echarts10.png +0 -0
  194. package/static/ManagementControl/echarts11.png +0 -0
  195. package/static/ManagementControl/echarts12.png +0 -0
  196. package/static/ManagementControl/echarts13.png +0 -0
  197. package/static/ManagementControl/echarts14.png +0 -0
  198. package/static/ManagementControl/echarts15.png +0 -0
  199. package/static/ManagementControl/echarts16.png +0 -0
  200. package/static/ManagementControl/echarts17.png +0 -0
  201. package/static/ManagementControl/echarts18.png +0 -0
  202. package/static/ManagementControl/echarts4.png +0 -0
  203. package/static/ManagementControl/echarts5.png +0 -0
  204. package/static/ManagementControl/echarts51.png +0 -0
  205. package/static/ManagementControl/echarts6.png +0 -0
  206. package/static/ManagementControl/echarts7.png +0 -0
  207. package/static/ManagementControl/echarts71.png +0 -0
  208. package/static/ManagementControl/echarts8.png +0 -0
  209. package/static/ManagementControl//345/233/276/345/261/20211/346/213/267/350/264/235.png +0 -0
  210. package/static/ManagementControl//347/237/251/345/275/2425/346/213/267/350/264/2353.png +0 -0
  211. package/static/ManagementControl//347/237/251/345/275/2425/346/213/267/350/264/2355.png +0 -0
  212. package/static/ManagementControl//347/237/251/345/275/2425/346/213/267/350/264/2356.png +0 -0
  213. package/static/class.js +97 -0
  214. package/static/images/lefticon//346/226/207/344/273/266/346/250/241/345/235/227.png +0 -0
  215. package/static/init.js +135 -0
  216. package/static/jcwx.jpg +0 -0
  217. package/static/lefticon//345/215/241/346/234/215/345/212/241/347/256/241/347/220/206.png +0 -0
  218. package/static/lefticon//345/221/274/345/217/253/347/263/273/347/273/237.png +0 -0
  219. package/static/lefticon//345/224/256/346/260/224/346/224/266/350/264/271.png +0 -0
  220. package/static/lefticon//345/233/276/345/261/2023/346/213/267/350/264/2354.png +0 -0
  221. package/static/lefticon//345/233/276/345/261/202577.png +0 -0
  222. package/static/lefticon//345/233/276/345/261/2028/346/213/267/350/264/23513.png +0 -0
  223. package/static/lefticon//345/256/211/346/243/200/346/237/245/347/234/213.png +0 -0
  224. package/static/lefticon//345/256/211/346/243/200/350/256/241/345/210/222.png +0 -0
  225. package/static/lefticon//345/276/256/344/277/241/346/234/215/345/212/241.png +0 -0
  226. package/static/lefticon//346/212/245/345/273/272/347/263/273/347/273/237.png +0 -0
  227. package/static/lefticon//346/212/245/350/241/250/346/237/245/350/257/242.png +0 -0
  228. package/static/lefticon//346/227/245/345/270/270/347/256/241/347/220/206.png +0 -0
  229. package/static/lefticon//346/234/272/350/241/250/347/256/241/347/220/206.png +0 -0
  230. package/static/lefticon//346/237/245/350/257/242/345/210/227/350/241/250.png +0 -0
  231. package/static/lefticon//346/241/243/346/241/210/347/256/241/347/220/206.png +0 -0
  232. package/static/lefticon//347/211/251/350/201/224/347/275/221/350/241/250.png +0 -0
  233. package/static/lefticon//347/237/251/345/275/2421183.png +0 -0
  234. package/static/lefticon//347/263/273/347/273/237/347/256/241/347/220/206.png +0 -0
  235. package/static/lefticon//347/263/273/347/273/237/350/256/276/347/275/256.png +0 -0
  236. package/static/lefticon//347/273/217/350/220/245/347/256/241/346/216/247.png +0 -0
  237. package/static/lefticon//347/273/274/345/220/210/344/270/232/345/212/241.png +0 -0
  238. package/static/lefticon//347/273/274/345/220/210/346/237/245/350/257/242.png +0 -0
  239. package/static/lefticon//350/217/234/345/215/225/344/274/270/347/274/251.png +0 -0
  240. package/static/lefticon//351/200/200/345/207/272/347/263/273/347/273/237.png +0 -0
  241. package/static/loginbg1.jpg +0 -0
  242. package/static/loginbg_jincheng.jpg +0 -0
  243. package/static/loginbgmain.jpg +0 -0
  244. package/static/mainicon/adddevice.png +0 -0
  245. package/static/mainicon/addmeter.png +0 -0
  246. package/static/mainicon/bank.png +0 -0
  247. package/static/mainicon/biaopan.png +0 -0
  248. package/static/mainicon/cad.jpg +0 -0
  249. package/static/mainicon/chaobiaoyuan.png +0 -0
  250. package/static/mainicon/danganguanli.png +0 -0
  251. package/static/mainicon/deletedevice.png +0 -0
  252. package/static/mainicon/excel.jpg +0 -0
  253. package/static/mainicon/huizong.png +0 -0
  254. package/static/mainicon/jibiaoguanli.png +0 -0
  255. package/static/mainicon/jibiaoguanli2.png +0 -0
  256. package/static/mainicon/jiezhang.png +0 -0
  257. package/static/mainicon/loginbg.jpg +0 -0
  258. package/static/mainicon/shouqishoufei.png +0 -0
  259. package/static/mainicon/treeopen.png +0 -0
  260. package/static/mainicon/treeout.png +0 -0
  261. package/static/mainicon/treeset.png +0 -0
  262. package/static/mainicon/word.jpg +0 -0
  263. package/static/mainicon/wulianwang.png +0 -0
  264. package/static/mainicon/yingyechaxun.png +0 -0
  265. package/static/mainicon/zongheyewu.png +0 -0
  266. package/static/newStyle/loginbg-liaoyuan.gif +0 -0
  267. package/static/newStyle/loginbg.gif +0 -0
  268. package/static/newStyle/loginbg1366.gif +0 -0
  269. package/static/newStyle/loginbg_1.gif +0 -0
  270. package/static/newStyle/searchin.png +0 -0
  271. package/static/newStyle/searchout.png +0 -0
  272. package/static/newStyle//350/261/252/344/275/263/347/207/203/346/260/224.png +0 -0
  273. package/static/newStyle.7z +0 -0
  274. package/static/newStyle.zip +0 -0
  275. package/static/refresh.png +0 -0
  276. package/static/static.zip +0 -0
  277. package/static/tools.js +246 -0
  278. package/static/treeclose.png +0 -0
  279. package/static/wasm_exec.js +591 -0
  280. package/src/components/app_apply/Process/Processes/AppInstallationDetails.vue +0 -456
  281. package/src/components/product/ApplyCharge/ApplyChargeReport.vue +0 -107
  282. package/src/components/product/Process/Processes/InstallationDetails.vue +0 -515
  283. package/src/components/product/Process/Processes/printCharge.vue +0 -133
  284. package/src/components/product/Test.vue +0 -36
  285. package/src/components/product/VueUtils/ToolsPage.vue +0 -51
  286. package/src/components/product/VueUtils/Tree.vue +0 -330
@@ -0,0 +1,715 @@
1
+ <template>
2
+ <div class="select-overspread" style="background-color: #ffffff;padding: 20px;overflow: scroll">
3
+ <validator name="v">
4
+ <form class="form-horizontal">
5
+ <div class="form-group">
6
+ <div class="col-sm-4 form-group item" :class="[$v.f_contract_number.required ? 'has-error' : '']">
7
+ <label class="control-label-justify control-label col-sm-6">合同编号</label>
8
+ <div class="col-sm-6">
9
+ <input class="form-control input_view" style=""
10
+ type="text"
11
+ :readonly="type !== 'add'"
12
+ v-validate:f_contract_number = "['required']"
13
+ @change="getContractByNumber()"
14
+ v-model="contract.f_contract_number"
15
+ :value="contract.f_contract_number"/>
16
+ </div>
17
+ </div>
18
+ <div class="col-sm-4 form-group item" :class="[$v.f_supplier.required ? 'has-error' : '']">
19
+ <label class="control-label-justify control-label col-sm-6">供方单位</label>
20
+ <div class="col-sm-6">
21
+ <input type="text" v-model="contract.f_supplier" v-validate:f_supplier = "['required']" v-show="false">
22
+ <input-select
23
+ class="select select_list"
24
+ :disable="type !== 'add'"
25
+ :value.sync="contract.f_supplier"
26
+ v-model="contract.f_supplier"
27
+ :options="supplier"
28
+ :valueSingle="true"></input-select>
29
+ </div>
30
+ </div>
31
+ <div class="col-sm-4 form-group item" :class="[$v.f_contact_person.required ? 'has-error' : '']">
32
+ <label class="control-label-justify control-label col-sm-6">联系人</label>
33
+ <div class="col-sm-6">
34
+ <input type="text" v-model="contract.f_contact_person" v-validate:f_contact_person = "['required']" v-show="false">
35
+ <input-select
36
+ class="select select_list"
37
+ :disable="type !== 'add'"
38
+ :value.sync="contract.f_contact_person"
39
+ v-model="contract.f_contact_person"
40
+ :options="f_contact_person"
41
+ :valueSingle="true">
42
+ </input-select>
43
+ </div>
44
+ </div>
45
+ <div class="col-sm-4 form-group item" :class="[$v.f_tel.required ? 'has-error' : '']">
46
+ <label class="control-label-justify control-label col-sm-6">电话</label>
47
+ <div class="col-sm-6">
48
+ <input type="text" v-model="contract.f_tel" v-validate:f_tel = "['required']" v-show="false">
49
+ <input-select
50
+ class="select select_list"
51
+ :disable="type !== 'add'"
52
+ :value.sync="contract.f_tel"
53
+ v-model="contract.f_tel"
54
+ :options="tel"
55
+ :valueSingle="true">
56
+ </input-select>
57
+ </div>
58
+ </div>
59
+ <div class="col-sm-4 form-group item" :class="[$v.f_contract_nature.required ? 'has-error' : '']">
60
+ <label class="control-label-justify control-label col-sm-6">合同性质</label>
61
+ <div class="col-sm-6">
62
+ <input type="text" v-model="contract.f_contract_nature" v-validate:f_contract_nature = "['required']" v-show="false">
63
+ <input-select
64
+ class="select select_list"
65
+ :disable="type !== 'add'"
66
+ :value.sync="contract.f_contract_nature"
67
+ v-model="contract.f_contract_nature"
68
+ :options="contractNature"
69
+ :valueSingle="true"></input-select>
70
+ </div>
71
+ </div>
72
+ <div class="col-sm-4 form-group item" :class="[$v.f_contract_source.required ? 'has-error' : '']">
73
+ <label class="control-label-justify control-label col-sm-6">合同来源</label>
74
+ <div class="col-sm-6">
75
+ <input type="text" v-model="contract.f_contract_source" v-validate:f_contract_source = "['required']" v-show="false">
76
+ <input-select
77
+ class="select select_list"
78
+ :disable="type !== 'add'"
79
+ :value.sync="contract.f_contract_source"
80
+ v-model="contract.f_contract_source"
81
+ :options="contractSource"
82
+ :valueSingle="true"></input-select>
83
+ </div>
84
+ </div>
85
+ <div class="col-sm-4 form-group item" :class="[$v.f_contract_category.required ? 'has-error' : '']">
86
+ <label class="control-label-justify control-label col-sm-6">合同类别</label>
87
+ <div class="col-sm-6">
88
+ <input type="text" v-model="contract.f_contract_category" v-validate:f_contract_category = "['required']" v-show="false">
89
+ <input-select
90
+ class="select select_list"
91
+ :disable="type !== 'add'"
92
+ @change="changeContractCategory()"
93
+ :value.sync="contract.f_contract_category"
94
+ v-model="contract.f_contract_category"
95
+ :options="contractCategory"
96
+ :valueSingle="true"></input-select>
97
+ </div>
98
+ </div>
99
+ <div class="col-sm-4 form-group item" :class="[$v.f_amount.required ? 'has-error' : '']">
100
+ <label class="control-label-justify control-label col-sm-6">合同份数</label>
101
+ <div class="col-sm-6">
102
+ <input class="form-control input_view" style=""
103
+ type="number"
104
+ :readonly="type != 'add'"
105
+ v-validate:f_amount = "['required']"
106
+ v-model="contract.f_amount"
107
+ :value="contract.f_amount"/>
108
+ </div>
109
+ </div>
110
+ <div class="col-sm-4 form-group item" :class="[$v.f_contract_time.required ? 'has-error' : '']">
111
+ <label class="control-label-justify control-label col-sm-6">签订时间</label>
112
+ <div class="col-sm-6">
113
+ <input type="text" v-model="contract.f_contract_time" v-validate:f_contract_time = "['required']" v-show="false">
114
+ <datepicker
115
+ :disabled="type !== 'add'"
116
+ :value.sync="contract.f_contract_time"
117
+ format="yyyy-MM-dd"
118
+ v-model="contract.f_contract_time">
119
+ </datepicker>
120
+ </div>
121
+ </div>
122
+ <div v-if="contract.f_contract_nature !== '单次'" class="col-sm-4 form-group item" :class="[$v.f_contract_expiration_date.required ? 'has-error' : '']">
123
+ <label class="control-label-justify control-label col-sm-6">到期时间</label>
124
+ <div class="col-sm-6">
125
+ <input type="text" v-model="contract.f_contract_expiration_date" v-validate:f_contract_expiration_date = "['required']" v-show="false">
126
+ <datepicker
127
+ :disabled="type !== 'add'"
128
+ format="yyyy-MM-dd"
129
+ @change="changeExpirationDate"
130
+ :value.sync="contract.f_contract_expiration_date"
131
+ v-model="contract.f_contract_expiration_date">
132
+ </datepicker>
133
+ </div>
134
+ </div>
135
+ <div class="col-sm-4 form-group item" v-if="type !== 'add'">
136
+ <label class="control-label-justify control-label col-sm-6">合同总金额</label>
137
+ <div class="col-sm-6">
138
+ <input class="form-control input_view" style=""
139
+ type="number"
140
+ readonly
141
+ v-model="contract.f_contract_money"
142
+ :value="contract.f_contract_money"/>
143
+ </div>
144
+ </div>
145
+ <div class="col-sm-4 form-group item" v-if="type !== 'add'">
146
+ <label class="control-label-justify control-label col-sm-6">入库次数</label>
147
+ <div class="col-sm-6">
148
+ <input class="form-control input_view" style=""
149
+ type="number"
150
+ readonly
151
+ v-model="contract.f_warehousing_quantity"
152
+ :value="contract.f_warehousing_quantity"/>
153
+ </div>
154
+ </div>
155
+ <div class="col-sm-12 form-group item">
156
+ <label class="control-label-justify control-label col-sm-3">备注</label>
157
+ <div class="col-sm-10">
158
+ <textarea
159
+ class="form-control input_view"
160
+ style="width: 100%;height: 100%"
161
+ rows="2"
162
+ :readonly="type !== 'add'"
163
+ v-model="contract.f_remarks"
164
+ :value="contract.f_remarks"
165
+ ></textarea>
166
+ </div>
167
+ </div>
168
+
169
+ <div class="col-sm-12">
170
+ <data-grid v-if="contract.f_contract_category === '物料'" :model="model" partial='list' v-ref:grid style="overflow: auto" class="list_area table_sy">
171
+ <template partial='head'>
172
+ <tr>
173
+ <th style="white-space: nowrap;">序号</th>
174
+ <th style="white-space: nowrap;">材料名称</th>
175
+ <th style="white-space: nowrap;">材料型号</th>
176
+ <th style="white-space: nowrap;">材料规格</th>
177
+ <th style="white-space: nowrap;">单位</th>
178
+ <th style="white-space: nowrap;">含税单价</th>
179
+ <th style="white-space: nowrap;">不含税单价</th>
180
+ <th style="white-space: nowrap;" v-if="type !== 'add'">累计数量</th>
181
+ <th style="white-space: nowrap;" v-if="$parent.$parent.type !== 'view'">
182
+ <button @click="$parent.$parent.showModal = !$parent.$parent.showModal" type="button" class="btn btn-info">
183
+ <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
184
+ </button>
185
+ <a href="/download/材料批量导入模板.xlsx" type="button" class="btn btn-info">模板下载</a>
186
+ <button @click="$parent.$parent.showFile = !$parent.$parent.showFile" type="button" class="btn btn-info">批量导入</button>
187
+ </th>
188
+ <th v-if="$parent.$parent.type === 'view'">
189
+ <export-excel :data="$parent.$parent.getCondition"
190
+ :field="$parent.$parent.getfield"
191
+ sqlurl="rs/logic/exportfile"
192
+ sql-name="singleTable"
193
+ template-name='合同材料详情'
194
+ :choose-col="true"></export-excel>
195
+ </th>
196
+ </tr>
197
+ </template>
198
+ <template partial='body'>
199
+ <tr>
200
+ <td style="text-align: center;">{{$index+1}}</td>
201
+ <td style="text-align: center;">{{row.f_material_name}}</td>
202
+ <td style="text-align: center;">{{row.f_material_model}}</td>
203
+ <td style="text-align: center;">{{row.f_material_norm}}</td>
204
+ <td style="text-align: center;">{{row.f_unit}}</td>
205
+ <td style="text-align: center;">{{row.f_price}}</td>
206
+ <td style="text-align: center;">{{row.f_noprice}}</td>
207
+ <td style="text-align: center;" v-if="type !== 'add'">{{row.f_total}}</td>
208
+ <td style="text-align: center;" v-if="$parent.$parent.type !== 'view'">
209
+ <button type="button" name="button" class="btn btn-link" @click="$parent.$parent.openUpdate($index,row)">修改</button>
210
+ <button type="button" name="button" class="btn btn-link" @click="$parent.$parent.delete($index)">删除</button>
211
+ </td>
212
+ </tr>
213
+ </template>
214
+ </data-grid>
215
+
216
+ <data-grid v-if="contract.f_contract_category === '设备'" :model="model" partial='list' v-ref:grid style="overflow: auto" class="list_area table_sy">
217
+ <template partial='head'>
218
+ <tr>
219
+ <th style="white-space: nowrap;">序号</th>
220
+ <th style="white-space: nowrap;">设备名称</th>
221
+ <th style="white-space: nowrap;">设备型号</th>
222
+ <th style="white-space: nowrap;">设备规格</th>
223
+ <th style="white-space: nowrap;">设备价格</th>
224
+ <th style="white-space: nowrap;" v-if="type !== 'add'">累计数量</th>
225
+ <th style="white-space: nowrap;" v-if="$parent.$parent.type !== 'view'">
226
+ <button @click="$parent.$parent.showModal = !$parent.$parent.showModal" type="button" class="btn btn-info">
227
+ <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
228
+ </button>
229
+ <a href="/download/设备批量导入模板.xlsx" type="button" class="btn btn-info">模板下载</a>
230
+ <button @click="$parent.$parent.showFile = !$parent.$parent.showFile" type="button" class="btn btn-info">批量导入</button>
231
+ </th>
232
+ </tr>
233
+ </template>
234
+ <template partial='body'>
235
+ <tr>
236
+ <td style="text-align: center;">{{$index+1}}</td>
237
+ <td style="text-align: center;">{{row.f_facility_name}}</td>
238
+ <td style="text-align: center;">{{row.f_facility_model}}</td>
239
+ <td style="text-align: center;">{{row.f_facility_norm}}</td>
240
+ <td style="text-align: center;">{{row.f_facility_money}}</td>
241
+ <td style="text-align: center;" v-if="type !== 'add'">{{row.f_total}}</td>
242
+ <td style="text-align: center;" v-if="$parent.$parent.type !== 'view'">
243
+ <button type="button" v-if="!row.id" name="button" class="btn btn-link" @click="$parent.$parent.openUpdate($index,row)">修改</button>
244
+ <button type="button" v-if="!row.id" name="button" class="btn btn-link" @click="$parent.$parent.delete($index)">删除</button>
245
+ </td>
246
+ </tr>
247
+ </template>
248
+ </data-grid>
249
+ </div>
250
+
251
+ <div class="col-sm-12 form-group" style="text-align: center">
252
+ <button class="btn btn-primary" v-if="type === 'add'" @click.prevent="addContract()" :disabled='!($v.valid && model.data.length > 0)'>保存</button>
253
+ <button class="btn btn-primary" v-if="type === 'renew'" @click.prevent="renewContract()" :disabled='!($v.valid && model.data.length > 0)'>续签</button>
254
+ </div>
255
+ </div>
256
+ </form>
257
+ </validator>
258
+
259
+ <validator name="mv">
260
+ <modal v-if="showModal" :show.sync="showModal" backdrop="false" large>
261
+ <header slot="modal-header" class="modal-header">
262
+ <button type="button" class="close" @click="closeModal()"><span>&times;</span></button>
263
+ <span class="modal-title"><font size="3">添加材料</font></span>
264
+ </header>
265
+ <article slot="modal-body" class="form-horizontal modal-body clearfix" v-if="contract.f_contract_category === '物料'">
266
+ <div class="col-sm-12 form-group" :class="[$mv.f_material_name.required ? 'has-error' : '']">
267
+ <label class="control-label col-sm-2">材料名称</label>
268
+ <div class="col-sm-9">
269
+ <input class="form-control" type="text" v-validate:f_material_name = "['required']" v-model="material.f_material_name" :value="material.f_material_name"/>
270
+ </div>
271
+ </div>
272
+ <div class="col-sm-12 form-group" :class="[$mv.f_material_model.required ? 'has-error' : '']">
273
+ <label class="control-label col-sm-2">材料型号</label>
274
+ <div class="col-sm-9">
275
+ <input class="form-control" type="text" v-validate:f_material_model = "['required']" v-model="material.f_material_model" :value="material.f_material_model"/>
276
+ </div>
277
+ </div>
278
+ <div class="col-sm-12 form-group" :class="[$mv.f_material_norm.required ? 'has-error' : '']">
279
+ <label class="control-label col-sm-2">材料规格</label>
280
+ <div class="col-sm-9">
281
+ <input class="form-control" type="text" v-validate:f_material_norm = "['required']" v-model="material.f_material_norm" :value="material.f_material_norm"/>
282
+ </div>
283
+ </div>
284
+ <div class="col-sm-12 form-group" :class="[$mv.f_unit.required ? 'has-error' : '']">
285
+ <label class="control-label col-sm-2">单&emsp;&emsp;位</label>
286
+ <div class="col-sm-9">
287
+ <input class="form-control" type="text" v-validate:f_unit = "['required']" v-model="material.f_unit" :value="material.f_unit"/>
288
+ </div>
289
+ </div>
290
+ <div class="col-sm-12 form-group" :class="[$mv.f_price.required ? 'has-error' : '']">
291
+ <label class="control-label col-sm-2">含税单价</label>
292
+ <div class="col-sm-9">
293
+ <input class="form-control" type="number" v-validate:f_price = "['required']" v-model="material.f_price" :value="material.f_price"/>
294
+ </div>
295
+ </div>
296
+ <div class="col-sm-12 form-group" :class="[$mv.f_noprice.required ? 'has-error' : '']">
297
+ <label class="control-label col-sm-2">不含税单价</label>
298
+ <div class="col-sm-9">
299
+ <input class="form-control" type="number" v-validate:f_noprice = "['required']" v-model="material.f_noprice" :value="material.f_noprice"/>
300
+ </div>
301
+ </div>
302
+ </article>
303
+ <article slot="modal-body" class="form-horizontal modal-body clearfix" v-if="contract.f_contract_category === '设备'">
304
+ <div class="col-sm-12 form-group" :class="[$mv.f_facility_name.required ? 'has-error' : '']">
305
+ <label class="control-label col-sm-2">设备名称</label>
306
+ <div class="col-sm-9">
307
+ <input class="form-control" type="text" v-validate:f_facility_name = "['required']" v-model="facility.f_facility_name" :value="facility.f_facility_name"/>
308
+ </div>
309
+ </div>
310
+ <div class="col-sm-12 form-group" :class="[$mv.f_facility_model.required ? 'has-error' : '']">
311
+ <label class="control-label col-sm-2">设备型号</label>
312
+ <div class="col-sm-9">
313
+ <input class="form-control" type="text" v-validate:f_facility_model = "['required']" v-model="facility.f_facility_model" :value="facility.f_facility_model"/>
314
+ </div>
315
+ </div>
316
+ <div class="col-sm-12 form-group" :class="[$mv.f_facility_norm.required ? 'has-error' : '']">
317
+ <label class="control-label col-sm-2">设备规格</label>
318
+ <div class="col-sm-9">
319
+ <input class="form-control" type="text" v-validate:f_facility_norm = "['required']" v-model="facility.f_facility_norm" :value="facility.f_facility_norm"/>
320
+ </div>
321
+ </div>
322
+ <div class="col-sm-12 form-group" :class="[$mv.f_facility_money.required ? 'has-error' : '']">
323
+ <label class="control-label col-sm-2">设备金额</label>
324
+ <div class="col-sm-9">
325
+ <input class="form-control" type="number" v-validate:f_facility_money = "['required']" v-model="facility.f_facility_money" :value="facility.f_facility_money"/>
326
+ </div>
327
+ </div>
328
+ </article>
329
+ <footer slot="modal-footer" class="modal-footer">
330
+ <button class="btn btn-primary" type="button" @click.prevent="saveOrUpdate()" :disabled='!$mv.valid'>确认</button>
331
+ </footer>
332
+ </modal>
333
+ </validator>
334
+
335
+ <modal :show.sync="showFile" v-ref:modal backdrop="true" title="选择文件">
336
+ <header slot="modal-header" class="modal-header">
337
+ <button type="button" class="close" @click="closeFile"><span>&times;</span></button>
338
+ <h4 class="modal-title">选择文件</h4>
339
+ </header>
340
+ <article slot="modal-body" class="modal-body">
341
+ <div class="form-group">
342
+ <file-upload class="my-file-uploader" name="useraddressUploadFile" action="rs/file/uploadFile" tagname="确定" multiple v-ref:file></file-upload>
343
+ </div>
344
+ </article>
345
+ <footer slot="modal-footer" class="modal-footer"></footer>
346
+ </modal>
347
+ </div>
348
+ </template>
349
+
350
+ <script>
351
+ import {PagedList} from 'vue-client'
352
+ import {getNowDate,isEmpty} from '../../../../Util'
353
+ // Date格式化
354
+ Date.prototype.Format = function (fmt) {
355
+ var o = {
356
+ 'M+': this.getMonth() + 1, // 月份
357
+ 'd+': this.getDate(), // 日
358
+ 'H+': this.getHours(), // 小时
359
+ 'm+': this.getMinutes(), // 分
360
+ 's+': this.getSeconds(), // 秒
361
+ 'q+': Math.floor((this.getMonth() + 3) / 3), // 季度
362
+ 'S': this.getMilliseconds() // 毫秒
363
+ }
364
+ if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length))
365
+ for (var k in o) {
366
+ if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
367
+ }
368
+ return fmt
369
+ }
370
+ export default {
371
+ props: ['contract', 'type'],
372
+ title: '合同信息',
373
+ data () {
374
+ return {
375
+ model: {
376
+ data: []
377
+ },
378
+ supplier: [{label: '全部', value: ''}, ...this.$appdata.getParam('供方单位')],
379
+ contractSource: [{label: '全部', value: ''}, ...this.$appdata.getParam('合同来源')],
380
+ contractCategory:[{label: '全部', value: ''}, ...this.$appdata.getParam('合同类别')],
381
+ contractNature:[{label: '全部', value: ''}, ...this.$appdata.getParam('合同性质')],
382
+ f_contact_person:[{label:'全部', value:''}, ...this.$appdata.getParam('联系人')],
383
+ tel:[{label:'全部',value:''}, ...this.$appdata.getParam('电话')],
384
+ showModal: false,
385
+ material: {},
386
+ getfield: {
387
+ 'f_material_name': '材料名称',
388
+ 'f_material_model': '材料型号',
389
+ 'f_material_norm': '材料规格',
390
+ 'f_unit': '单位',
391
+ 'f_price': '单价'
392
+ },
393
+ facility: {},
394
+ index: null,
395
+ showFile: false
396
+ }
397
+ },
398
+ ready () {
399
+ if (this.type !== 'add') {
400
+ this.getData()
401
+ }
402
+
403
+ },
404
+ methods: {
405
+ closeFile () {
406
+ this.showFile = false
407
+ // 将选的文件清空
408
+ this.$refs.file.$el.querySelector('input').value = ''
409
+ },
410
+ async getData () {
411
+ let data = {
412
+ tablename: `${this.contract.f_contract_category === '物料' ? 't_contract_material' : 't_contract_facility'}`,
413
+ condition: `f_contract_id = '${this.contract.id}'`
414
+ }
415
+
416
+ let res = await this.$resetpost(
417
+ `rs/sql/singleTable`,
418
+ {data: data},
419
+ {resolveMsg: null, rejectMsg: `${this.contract.f_contract_category}查询失败!!!`}
420
+ )
421
+
422
+ this.model.data = res.data
423
+ },
424
+ //续签合同
425
+ renewContract () {
426
+ let data = {
427
+ contract: this.contract,
428
+ data: this.model.data
429
+ }
430
+ this.$dispatch('renewContract', data)
431
+ },
432
+ // 打开修改
433
+ openUpdate (index, row) {
434
+ this.index = index
435
+ this.material = JSON.parse(JSON.stringify(row))
436
+ this.facility = JSON.parse(JSON.stringify(row))
437
+
438
+ this.showModal = true
439
+ },
440
+ // 删除
441
+ async delete (index) {
442
+ this.index = index
443
+ await this.$showMessage('您确定要删除这条记录吗?').then((res) => {
444
+ if (res === 'confirm') {
445
+ this.model.data.splice(this.index, 1)
446
+ }
447
+ })
448
+ this.closeModal()
449
+ },
450
+ // 保存或修改
451
+ saveOrUpdate (i) {
452
+ if (this.contract.f_contract_category === '物料') {
453
+ let flag = this.model.data.some(item => {
454
+ if (
455
+ item.f_material_name === this.material.f_material_name &&
456
+ item.f_material_norm === this.material.f_material_norm &&
457
+ item.f_material_model === this.material.f_material_model &&
458
+ item.f_price === this.material.f_price &&
459
+ item.f_unit === this.material.f_unit
460
+ ) {
461
+ return true
462
+ }
463
+ return false
464
+ })
465
+ if (flag) {
466
+ if (isEmpty(i)) {
467
+ this.$showAlert('该物料已经存在!!!', 'warning', 3000)
468
+ } else {
469
+ throw `第${i}行物料已经存在!!!`
470
+ }
471
+
472
+ } else {
473
+ if (isEmpty(this.index)) {
474
+ this.model.data.push(this.material)
475
+ } else {
476
+ this.model.data.splice(this.index, 1, this.material)
477
+ }
478
+ }
479
+ }
480
+ if (this.contract.f_contract_category === '设备') {
481
+ let flag = this.model.data.some(item => {
482
+ if (
483
+ item.f_facility_name === this.facility.f_facility_name &&
484
+ item.f_facility_model === this.facility.f_facility_model &&
485
+ item.f_facility_norm === this.facility.f_facility_norm
486
+ ) {
487
+ return true
488
+ }
489
+ return false
490
+ })
491
+ if (flag) {
492
+ if (isEmpty(i)) {
493
+ this.$showAlert('该设备已经存在!!!', 'warning', 3000)
494
+ } else {
495
+ throw `第${i}行设备已经存在!!!`
496
+ }
497
+ } else {
498
+ if (isEmpty(this.index)) {
499
+ this.model.data.push(this.facility)
500
+ } else {
501
+ this.model.data.splice(this.index, 1, this.facility)
502
+ }
503
+ }
504
+ }
505
+ this.closeModal()
506
+ },
507
+ // 关闭模态框
508
+ closeModal () {
509
+ this.showModal = false
510
+ this.material = {}
511
+ this.facility = {}
512
+ this.index = null
513
+ },
514
+ // 合同类别
515
+ changeContractCategory () {
516
+ this.model.data = []
517
+ },
518
+ // 添加合同
519
+ addContract () {
520
+ let data = {
521
+ contract: this.contract,
522
+ data: this.model.data
523
+ }
524
+ this.$dispatch('addContract', data)
525
+ },
526
+ // 到期时间检查
527
+ changeExpirationDate () {
528
+ if (!isEmpty(this.contract.f_contract_expiration_date)) {
529
+ if (isEmpty(this.contract.f_contract_time)) {
530
+ this.contract.f_contract_expiration_date = null
531
+ this.$showAlert('先输入合同签订时间!!!', 'warning', 3000)
532
+ }
533
+ if (new Date(this.contract.f_contract_expiration_date) < new Date(this.contract.f_contract_time)) {
534
+ this.contract.f_contract_expiration_date = null
535
+ this.$showAlert('到期时间需要大于签订时间!!!', 'warning', 3000)
536
+ }
537
+ }
538
+ },
539
+ // 查询合同编号
540
+ async getContractByNumber () {
541
+ let data = {
542
+ tablename: 't_contract',
543
+ condition: `f_contract_number = '${this.contract.f_contract_number}' and f_contract_type = '采购合同'`
544
+ }
545
+
546
+ let res = await this.$resetpost(
547
+ `rs/sql/singleTable`,
548
+ {data: data},
549
+ {resolveMsg: null, rejectMsg: '合同编号查询失败!!!'}
550
+ )
551
+
552
+ if (res.data.length > 0) {
553
+ this.contract.f_contract_number = null
554
+ this.$showAlert('合同编号已存在!!!', 'warning', 3000)
555
+ }
556
+ },
557
+ },
558
+ events: {
559
+ async 'onFileUpload'(file, result) {
560
+ let data = {
561
+ type: this.contract.f_contract_category,
562
+ filepath: result.f_downloadpath
563
+ }
564
+ let res = await this.$resetpost(`rs/logic/importPurchaseContractContent`, {data:data}, {resolveMsg: null, rejectMsg: '导入失败', silent: true}, 0)
565
+
566
+ console.log('----------解析内容--------------')
567
+ console.log(res.data)
568
+
569
+ let i = 1
570
+ for (const item of res.data) {
571
+ if (this.contract.f_contract_category === '物料') {
572
+ if (!item.material.f_material_name) {
573
+ this.$showAlert(`第${i}行数据材料名称不存在!!!`, 'warning', 3000)
574
+ this.closeFile()
575
+ return
576
+ }
577
+ if (!item.material.f_material_model) {
578
+ this.$showAlert(`第${i}行数据材料型号不存在!!!`, 'warning', 3000)
579
+ this.closeFile()
580
+ return
581
+ }
582
+ if (!item.material.f_material_norm) {
583
+ this.$showAlert(`第${i}行数据材料规格不存在!!!`, 'warning', 3000)
584
+ this.closeFile()
585
+ return
586
+ }
587
+ if (!item.material.f_unit) {
588
+ this.$showAlert(`第${i}行数据单位不存在!!!`, 'warning', 3000)
589
+ this.closeFile()
590
+ return
591
+ }
592
+ if (!item.material.f_price) {
593
+ this.$showAlert(`第${i}行数据单价不存在!!!`, 'warning', 3000)
594
+ this.closeFile()
595
+ return
596
+ }
597
+ this.material = item.material
598
+ }
599
+ if (this.contract.f_contract_category === '设备') {
600
+ if (!item.facility.f_facility_name) {
601
+ this.$showAlert(`第${i}行数据设备名称不存在!!!`, 'warning', 3000)
602
+ this.closeFile()
603
+ return
604
+ }
605
+ if (!item.facility.f_facility_model) {
606
+ this.$showAlert(`第${i}行数据设备型号不存在!!!`, 'warning', 3000)
607
+ this.closeFile()
608
+ return
609
+ }
610
+ if (!item.facility.f_facility_norm) {
611
+ this.$showAlert(`第${i}行数据设备规格不存在!!!`, 'warning', 3000)
612
+ this.closeFile()
613
+ return
614
+ }
615
+ if (!item.facility.f_facility_money) {
616
+ this.$showAlert(`第${i}行数据设备价格不存在!!!`, 'warning', 3000)
617
+ this.closeFile()
618
+ return
619
+ }
620
+ this.facility = item.facility
621
+ }
622
+
623
+ try {
624
+ this.saveOrUpdate(i)
625
+ } catch (e) {
626
+ this.$showAlert(e, 'danger', 3000)
627
+ this.closeFile()
628
+ return
629
+ }
630
+
631
+
632
+ i++
633
+ }
634
+ this.$showAlert(`成功导入${i}条数据`, 'success', 3000)
635
+ this.closeFile()
636
+ }
637
+ },
638
+ computed: {
639
+ getCondition() {
640
+ return {
641
+ tablename: `${this.contract.f_contract_category === '物料' ? 't_contract_material' : 't_contract_facility'}`,
642
+ condition: `f_contract_id = '${this.contract.id}'`
643
+ }
644
+ }
645
+ }
646
+ }
647
+ </script>
648
+
649
+ <style scoped>
650
+ .item{
651
+ height: 40px;
652
+ margin-bottom: 20px;
653
+ }
654
+
655
+ th{
656
+ font-size: 15px !important;
657
+ text-align: center !important;
658
+ background-color: #dfedfb!important;
659
+ color: #666666 !important;
660
+ font-family: PINGFANG-BOLD !important;
661
+ font-weight: normal!important;
662
+ }
663
+ /*清除model中的浮动*/
664
+ .clearfix:after,.clearfix:before{
665
+ display: table;
666
+ }
667
+ .clearfix:after{
668
+ clear: both;
669
+ }
670
+
671
+ .input_view{
672
+ padding: 8px;
673
+ background-color: #ffffff;
674
+ border-radius: 2px;
675
+ border: solid 1px #c7c7c7!important;
676
+ color: #333333!important;
677
+ font-size: 15px!important;
678
+ }
679
+
680
+ .input_view[readonly]{
681
+ border: 1px solid #DDD!important;
682
+ /*background-color: #F5F5F5;*/
683
+ color:#ACA899!important;
684
+ }
685
+ .input_view:disabled{
686
+ border: 1px solid #DDD!important;
687
+ /*background-color: #F5F5F5;*/
688
+ color:#ACA899!important;
689
+ }
690
+
691
+ .control-label-justify {
692
+ display: inline-block;
693
+ vertical-align: top;
694
+ width: 110px;
695
+ text-align: justify;
696
+ font-family: PingFang-SC-Bold;
697
+ }
698
+
699
+ .control-label-justify::after {
700
+ content: "";
701
+ display: inline-block;
702
+ width: 70px;
703
+ overflow: hidden;
704
+ height: 0;
705
+ }
706
+
707
+ input::-webkit-outer-spin-button,
708
+ input::-webkit-inner-spin-button {
709
+ -webkit-appearance: none;
710
+ }
711
+
712
+ input[type="number"] {
713
+ -moz-appearance: textfield;
714
+ }
715
+ </style>