zbcx_ckyc 1.0.0

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 (249) hide show
  1. package/README.md +3 -0
  2. package/package.json +90 -0
  3. package/src/plugins/app/com/CesiumTool.js +730 -0
  4. package/src/plugins/app/com/MapMethods.js +355 -0
  5. package/src/plugins/app/com/MapTool.vue +772 -0
  6. package/src/plugins/app/com/MenuRouter.vue +157 -0
  7. package/src/plugins/app/com/ParamsDes.vue +35 -0
  8. package/src/plugins/app/com/SelCoorSys.vue +235 -0
  9. package/src/plugins/app/com/WebProj4.js +32 -0
  10. package/src/plugins/app/com/measure.js +127 -0
  11. package/src/plugins/app/com/yx.js +238 -0
  12. package/src/plugins/app/modelmanagement/D3DrawGraph.js +708 -0
  13. package/src/plugins/app/modelmanagement/MineralGo.vue +241 -0
  14. package/src/plugins/app/modelmanagement/MineralModel.vue +1203 -0
  15. package/src/plugins/app/modelmanagement/ModelCloudmap.vue +69 -0
  16. package/src/plugins/app/modelmanagement/ModelMst.vue +60 -0
  17. package/src/plugins/app/modelmanagement/ModelSy.vue +173 -0
  18. package/src/plugins/app/modelmanagement/ModelTp.vue +51 -0
  19. package/src/plugins/app/modelmanagement/ModelUpload.vue +774 -0
  20. package/src/plugins/app/znycpjxt/Api.js +714 -0
  21. package/src/plugins/app/znycpjxt/Bf/AttFactory.js +25 -0
  22. package/src/plugins/app/znycpjxt/Bf/IAnomalyhandle.js +102 -0
  23. package/src/plugins/app/znycpjxt/Bf/IComposeanomaly.js +140 -0
  24. package/src/plugins/app/znycpjxt/Bf/IContinueanaly.js +138 -0
  25. package/src/plugins/app/znycpjxt/Bf/IContrastanaly.js +138 -0
  26. package/src/plugins/app/znycpjxt/Bf/ICustomNode.js +145 -0
  27. package/src/plugins/app/znycpjxt/Bf/IDerivanaly.js +139 -0
  28. package/src/plugins/app/znycpjxt/Bf/IFilterananly.js +141 -0
  29. package/src/plugins/app/znycpjxt/Bf/IMeananaly.js +137 -0
  30. package/src/plugins/app/znycpjxt/Bf/IModelNodeBase.js +135 -0
  31. package/src/plugins/app/znycpjxt/Bf/IMoveaverage.js +135 -0
  32. package/src/plugins/app/znycpjxt/Bf/IReducepole.js +141 -0
  33. package/src/plugins/app/znycpjxt/Bf/ISmoothanaly.js +135 -0
  34. package/src/plugins/app/znycpjxt/Bf/ITrendanaly.js +144 -0
  35. package/src/plugins/app/znycpjxt/Bf/IVector2grd.js +144 -0
  36. package/src/plugins/app/znycpjxt/Bf/IYcfj.js +84 -0
  37. package/src/plugins/app/znycpjxt/Bf/IYcxxjs.js +105 -0
  38. package/src/plugins/app/znycpjxt/Bf/IYgsbtq.js +112 -0
  39. package/src/plugins/app/znycpjxt/Bf/IYgtxrh.js +112 -0
  40. package/src/plugins/app/znycpjxt/Bf/Iinteranaly.js +135 -0
  41. package/src/plugins/app/znycpjxt/Bf/index.js +44 -0
  42. package/src/plugins/app/znycpjxt/Bf/input/InputData.js +21 -0
  43. package/src/plugins/app/znycpjxt/Bf/input/InputExcel.js +28 -0
  44. package/src/plugins/app/znycpjxt/Bf/input/InputKd.js +31 -0
  45. package/src/plugins/app/znycpjxt/Bqqd/Bqqd.vue +380 -0
  46. package/src/plugins/app/znycpjxt/Bqqd/BqqdMap.vue +1046 -0
  47. package/src/plugins/app/znycpjxt/Bqqd/SetOpacity.vue +101 -0
  48. package/src/plugins/app/znycpjxt/Bqqd/SjzxTree.vue +244 -0
  49. package/src/plugins/app/znycpjxt/Bqqd/YclsjjTree.vue +212 -0
  50. package/src/plugins/app/znycpjxt/Bqqd/api/DsjzxApi.js +37 -0
  51. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmx.vue +161 -0
  52. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxgl/CfgGloalParams.vue +92 -0
  53. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxgl/CfgNodeFlds.vue +102 -0
  54. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxgl/CfgNodeParams.vue +277 -0
  55. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxgl/Ckycmxgl.vue +303 -0
  56. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxgl/SetLabelParam.vue +68 -0
  57. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxgl/SetModelParam.vue +69 -0
  58. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Ckycmxtab.vue +107 -0
  59. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Dtzzylwl.vue +156 -0
  60. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Jjsjwl.vue +230 -0
  61. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Sjsl.vue +126 -0
  62. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Zcxlj.vue +128 -0
  63. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Zjq.vue +123 -0
  64. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Zstp.vue +271 -0
  65. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Zzylwl.vue +149 -0
  66. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/coms/ParamsData.vue +323 -0
  67. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/coms/ParamsDataNew.vue +336 -0
  68. package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/coms/QqtEcharts.vue +137 -0
  69. package/src/plugins/app/znycpjxt/Ckycmx/Ckycrwgl/Ckycrwgl.vue +290 -0
  70. package/src/plugins/app/znycpjxt/CusTools/CodeApi.js +83 -0
  71. package/src/plugins/app/znycpjxt/CusTools/CodeEditor/CodeEditor.md +36 -0
  72. package/src/plugins/app/znycpjxt/CusTools/CodeEditor/CodeEditor.vue +227 -0
  73. package/src/plugins/app/znycpjxt/CusTools/CodeEditor/PlugCodeEditor.vue +78 -0
  74. package/src/plugins/app/znycpjxt/CusTools/CodeEditor/demo/basic.png +0 -0
  75. package/src/plugins/app/znycpjxt/CusTools/CodeEditor/demo/basic.vue +27 -0
  76. package/src/plugins/app/znycpjxt/CusTools/DmbjForm.vue +76 -0
  77. package/src/plugins/app/znycpjxt/CusTools/DmfbForm.vue +351 -0
  78. package/src/plugins/app/znycpjxt/CusTools/GjForm.vue +206 -0
  79. package/src/plugins/app/znycpjxt/CusTools/Gjbjyfb.vue +200 -0
  80. package/src/plugins/app/znycpjxt/CusTools/ParamSelect.vue +222 -0
  81. package/src/plugins/app/znycpjxt/CusTools/ParamSelect2.vue +204 -0
  82. package/src/plugins/app/znycpjxt/CusTools/Zngjj.vue +105 -0
  83. package/src/plugins/app/znycpjxt/DataAnlyModel/DataAnlyModel.vue +134 -0
  84. package/src/plugins/app/znycpjxt/DataAnlyModel/Hgfx/HgfxEcharts.vue +98 -0
  85. package/src/plugins/app/znycpjxt/DataAnlyModel/Hgfx/HgfxTab.vue +73 -0
  86. package/src/plugins/app/znycpjxt/DataAnlyModel/Hgfx.vue +101 -0
  87. package/src/plugins/app/znycpjxt/DataAnlyModel/Jctj/JctjjgTab.vue +70 -0
  88. package/src/plugins/app/znycpjxt/DataAnlyModel/Jctj/Plzft.vue +154 -0
  89. package/src/plugins/app/znycpjxt/DataAnlyModel/Jctj.vue +118 -0
  90. package/src/plugins/app/znycpjxt/DataAnlyModel/Jlfx/JlfxImg.vue +80 -0
  91. package/src/plugins/app/znycpjxt/DataAnlyModel/Jlfx.vue +91 -0
  92. package/src/plugins/app/znycpjxt/DataAnlyModel/PCAfx/PcaTab.vue +161 -0
  93. package/src/plugins/app/znycpjxt/DataAnlyModel/PCAfx.vue +101 -0
  94. package/src/plugins/app/znycpjxt/DataAnlyModel/Qqt/QqtEcharts.vue +202 -0
  95. package/src/plugins/app/znycpjxt/DataAnlyModel/Qqt.vue +88 -0
  96. package/src/plugins/app/znycpjxt/DataAnlyModel/Xgxfx/XgxfxImg.vue +80 -0
  97. package/src/plugins/app/znycpjxt/DataAnlyModel/Xgxfx.vue +96 -0
  98. package/src/plugins/app/znycpjxt/DatasetMan/CreateDataset.vue +296 -0
  99. package/src/plugins/app/znycpjxt/DatasetMan/DatasetMan.vue +141 -0
  100. package/src/plugins/app/znycpjxt/DatasetMan/PreData.js +91 -0
  101. package/src/plugins/app/znycpjxt/DatasetMan/PreData.vue +545 -0
  102. package/src/plugins/app/znycpjxt/DatasetMan/PreDataApi.js +101 -0
  103. package/src/plugins/app/znycpjxt/DatasetMan/SelData.vue +186 -0
  104. package/src/plugins/app/znycpjxt/DatasetMan/SjTree.vue +130 -0
  105. package/src/plugins/app/znycpjxt/DatasetMan/Sjj.vue +478 -0
  106. package/src/plugins/app/znycpjxt/DatasetMan/Yclsjj.vue +445 -0
  107. package/src/plugins/app/znycpjxt/DatasetMan/Yssjj.vue +389 -0
  108. package/src/plugins/app/znycpjxt/DocList/DocList.vue +496 -0
  109. package/src/plugins/app/znycpjxt/DocList/unit/DocItem.vue +137 -0
  110. package/src/plugins/app/znycpjxt/ExceptHandlModel/AnomalyExtraction/Dchj.vue +107 -0
  111. package/src/plugins/app/znycpjxt/ExceptHandlModel/AnomalyExtraction/GeophysicalAnomaly.vue +115 -0
  112. package/src/plugins/app/znycpjxt/ExceptHandlModel/AnomalyExtraction/Jxyt.vue +98 -0
  113. package/src/plugins/app/znycpjxt/ExceptHandlModel/AnomalyExtraction/Lbjs.vue +127 -0
  114. package/src/plugins/app/znycpjxt/ExceptHandlModel/AnomalyExtraction/Pjcjs.vue +103 -0
  115. package/src/plugins/app/znycpjxt/ExceptHandlModel/AnomalyExtraction/Qdjs.vue +103 -0
  116. package/src/plugins/app/znycpjxt/ExceptHandlModel/ExceptHandlModel.vue +163 -0
  117. package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Cdjs.vue +102 -0
  118. package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Czfx.vue +163 -0
  119. package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/GetFormData.vue +343 -0
  120. package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Hdpj.vue +100 -0
  121. package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Pjtd.vue +90 -0
  122. package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Qsfx.vue +109 -0
  123. package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/ResultOnlyData.vue +121 -0
  124. package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/ResultTable.vue +231 -0
  125. package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/UniversalComputing.vue +139 -0
  126. package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Xgxsjs.vue +93 -0
  127. package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Xxsjs.vue +90 -0
  128. package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Ycfj.vue +116 -0
  129. package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Yhcl.vue +100 -0
  130. package/src/plugins/app/znycpjxt/ExceptHandlModel/extgeoanomalies/AnomalsGard.vue +91 -0
  131. package/src/plugins/app/znycpjxt/ExceptHandlModel/extgeoanomalies/Dqhxycht.vue +113 -0
  132. package/src/plugins/app/znycpjxt/ExceptHandlModel/extgeoanomalies/GeocAnomalies.vue +99 -0
  133. package/src/plugins/app/znycpjxt/ExceptHandlModel/extgeoanomalies/JgTableList.vue +203 -0
  134. package/src/plugins/app/znycpjxt/ExceptHandlModel/extgeoanomalies/Lszcl.vue +110 -0
  135. package/src/plugins/app/znycpjxt/ExceptHandlModel/extgeoanomalies/Ycxxjs.vue +116 -0
  136. package/src/plugins/app/znycpjxt/ExceptHandlModel/geoAnomalyExtraction/GeoAnomalyExtraction.vue +108 -0
  137. package/src/plugins/app/znycpjxt/ExceptHandlModel/geoAnomalyExtraction/coms/AttWeight.vue +99 -0
  138. package/src/plugins/app/znycpjxt/ExceptHandlModel/geoAnomalyExtraction/coms/Ckdctq.vue +98 -0
  139. package/src/plugins/app/znycpjxt/ExceptHandlModel/geoAnomalyExtraction/coms/LeftForm.vue +266 -0
  140. package/src/plugins/app/znycpjxt/ExceptHandlModel/ygyctq/Ygsbtq.vue +150 -0
  141. package/src/plugins/app/znycpjxt/ExceptHandlModel/ygyctq/Ygtxrh.vue +107 -0
  142. package/src/plugins/app/znycpjxt/ExceptHandlModel/ygyctq/ygyctq.vue +98 -0
  143. package/src/plugins/app/znycpjxt/Index/DataCard.vue +45 -0
  144. package/src/plugins/app/znycpjxt/Index/Index.vue +123 -0
  145. package/src/plugins/app/znycpjxt/Rzgl/Rzgl.vue +156 -0
  146. package/src/plugins/app/znycpjxt/coms/CmapColor.vue +70 -0
  147. package/src/plugins/app/znycpjxt/coms/CustomFileView.vue +343 -0
  148. package/src/plugins/app/znycpjxt/coms/CustomForm.vue +220 -0
  149. package/src/plugins/app/znycpjxt/coms/GrdView.vue +355 -0
  150. package/src/plugins/app/znycpjxt/coms/LeftForm.vue +195 -0
  151. package/src/plugins/app/znycpjxt/coms/MakeData.js +472 -0
  152. package/src/plugins/app/znycpjxt/coms/PreView.js +55 -0
  153. package/src/plugins/app/znycpjxt/coms/RightContent.vue +71 -0
  154. package/src/plugins/app/znycpjxt/coms/TableEarth.vue +259 -0
  155. package/src/plugins/app/znycpjxt/intellPred/ModelList.vue +200 -0
  156. package/src/plugins/app/znycpjxt/intellPred/coms/D3DrawGraph.js +634 -0
  157. package/src/plugins/app/znycpjxt/intellPred/coms/MineralGo.vue +249 -0
  158. package/src/plugins/app/znycpjxt/intellPred/coms/ModelCard.vue +298 -0
  159. package/src/plugins/app/znycpjxt/intellPred/coms/ModelEdit.vue +292 -0
  160. package/src/plugins/app/znycpjxt/intellPred/coms/ModelSpecif.vue +46 -0
  161. package/src/plugins/app/znycpjxt/intellPred/intellPred.vue +71 -0
  162. package/src/plugins/bf/BfApi.js +92 -0
  163. package/src/plugins/bf/BfColAdd.vue +78 -0
  164. package/src/plugins/bf/BfColEdit.vue +68 -0
  165. package/src/plugins/bf/BfColFilter.vue +112 -0
  166. package/src/plugins/bf/BfDataGroup.vue +80 -0
  167. package/src/plugins/bf/BfDataPreview.vue +118 -0
  168. package/src/plugins/bf/BfDataStat.vue +81 -0
  169. package/src/plugins/bf/BfDuplicateDel.vue +82 -0
  170. package/src/plugins/bf/BfProcCall.vue +82 -0
  171. package/src/plugins/bf/BfRunHis.vue +289 -0
  172. package/src/plugins/bf/BfRunParams.vue +94 -0
  173. package/src/plugins/bf/BfSaveFlow.vue +186 -0
  174. package/src/plugins/bf/BfSelFlow.vue +123 -0
  175. package/src/plugins/bf/BfTabCombine.vue +127 -0
  176. package/src/plugins/bf/BfTabJoin.vue +108 -0
  177. package/src/plugins/bf/BfTabMerge.vue +68 -0
  178. package/src/plugins/bf/BfTabReader.vue +126 -0
  179. package/src/plugins/bf/BfValFormat.vue +68 -0
  180. package/src/plugins/bf/BfValNumber.vue +68 -0
  181. package/src/plugins/bf/BfValProc.vue +78 -0
  182. package/src/plugins/bf/BfValSort.vue +78 -0
  183. package/src/plugins/bf/BiFlow.vue +1177 -0
  184. package/src/plugins/bf/IBfPlug.js +205 -0
  185. package/src/plugins/bf/coms/ColAdd.vue +75 -0
  186. package/src/plugins/bf/coms/ColEdit.vue +52 -0
  187. package/src/plugins/bf/coms/ColList.vue +91 -0
  188. package/src/plugins/bf/coms/DataGroup.vue +90 -0
  189. package/src/plugins/bf/coms/DataStat.vue +67 -0
  190. package/src/plugins/bf/coms/EditTable.vue +161 -0
  191. package/src/plugins/bf/coms/NodeTree.vue +105 -0
  192. package/src/plugins/bf/coms/PlugCmd.vue +95 -0
  193. package/src/plugins/bf/coms/RunParams.vue +68 -0
  194. package/src/plugins/bf/coms/TabCombine.vue +60 -0
  195. package/src/plugins/bf/coms/TabJoin.vue +69 -0
  196. package/src/plugins/bf/coms/ValFormat.vue +53 -0
  197. package/src/plugins/bf/coms/ValProc.vue +77 -0
  198. package/src/plugins/bf/coms/ValSort.vue +89 -0
  199. package/src/plugins/bf/parts/Icon.vue +105 -0
  200. package/src/plugins/bf/parts/Rect.vue +98 -0
  201. package/src/plugins/bf/parts/index.js +11 -0
  202. package/src/plugins/cxMixin/IAttBase.js +78 -0
  203. package/src/plugins/cxMixin/IAttDlg.js +45 -0
  204. package/src/plugins/cxMixin/IAttProc.js +98 -0
  205. package/src/plugins/cxMixin/IComBase.js +42 -0
  206. package/src/plugins/cxMixin/IContextMenu.js +74 -0
  207. package/src/plugins/cxMixin/IDataAcce.js +1106 -0
  208. package/src/plugins/cxMixin/IDataList.js +775 -0
  209. package/src/plugins/cxMixin/IDataMan.js +1670 -0
  210. package/src/plugins/cxMixin/IDataMan2.js +2561 -0
  211. package/src/plugins/cxMixin/IDataProc.js +379 -0
  212. package/src/plugins/cxMixin/IDatagrid.js +234 -0
  213. package/src/plugins/cxMixin/IEditableDg.js +477 -0
  214. package/src/plugins/cxMixin/IExpBase.js +51 -0
  215. package/src/plugins/cxMixin/IFormBase.js +29 -0
  216. package/src/plugins/cxMixin/IGridBpm.js +732 -0
  217. package/src/plugins/cxMixin/IGridData.js +109 -0
  218. package/src/plugins/cxMixin/IOperMore.js +323 -0
  219. package/src/plugins/cxMixin/IPlugBase.js +341 -0
  220. package/src/plugins/cxMixin/ISendCode.js +86 -0
  221. package/src/plugins/cxMixin/ISinglePage.js +112 -0
  222. package/src/plugins/cxMixin/ITags.js +81 -0
  223. package/src/plugins/cxe/CxeMap.vue +61 -0
  224. package/src/plugins/home/HeadNav.vue +194 -0
  225. package/src/plugins/home/Home.vue +59 -0
  226. package/src/plugins/home/HomePage.vue +237 -0
  227. package/src/plugins/home/Login.vue +139 -0
  228. package/src/plugins/zbcxCesium/coms/GraDrawBarWgt.vue +176 -0
  229. package/src/plugins/zbcxCesium/coms/baseMapSwitch/BaseMap.scss +42 -0
  230. package/src/plugins/zbcxCesium/coms/baseMapSwitch/BaseMap.vue +59 -0
  231. package/src/plugins/zbcxCesium/coms/dataPreview/DataPreview.vue +526 -0
  232. package/src/plugins/zbcxCesium/coms/dataPreview/DataPreviewPlug.vue +79 -0
  233. package/src/plugins/zbcxCesium/coms/dataPreview/ReadShpFile.js +42 -0
  234. package/src/plugins/zbcxCesium/coms/legend/Legend.vue +78 -0
  235. package/src/plugins/zbcxCesium/coms/popup/dialog-left-bg.png +0 -0
  236. package/src/plugins/zbcxCesium/coms/popup/index.js +88 -0
  237. package/src/plugins/zbcxCesium/coms/popup/index.vue +93 -0
  238. package/src/plugins/zbcxCesium/pub/LoadGeojson.js +44 -0
  239. package/src/plugins/zbcxCesium/pub/LoadModel.js +128 -0
  240. package/src/plugins/zbcxCesium/pub/LoadOgc.js +226 -0
  241. package/src/plugins/zbcxCesium/pub/Opacity.vue +139 -0
  242. package/src/plugins/zbcxCesium/pub/PubCxe.js +97 -0
  243. package/src/plugins/zbcxCesium/pub/SceneSet.vue +178 -0
  244. package/src/plugins/zbcxCesium/pub/ShowEffect.vue +216 -0
  245. package/src/plugins/zbcxCesium/pub/TMeasure.vue +122 -0
  246. package/src/plugins/zbcxCesium/pub/ToDefView3.vue +109 -0
  247. package/src/plugins/zbcxCesium/pub/getWmsGetCapabilities.js +127 -0
  248. package/src/plugins/zbcxCesium/utils/ShpToGeoJson.js +24 -0
  249. package/src/plugins/zbcxCesium/utils/WebProj4.js +32 -0
@@ -0,0 +1,1106 @@
1
+ /**
2
+ * 修改记录:
3
+ * 20-08-21 张发勇 增加一个函数 setAttOper(operCol),用于派生类自定义属性相关的操作按钮,简化派生类的代码
4
+ * 20-08-21 张发勇 增加一个函数 initAtt(att),用于输入属性之前,在派生类初始化属性(特殊情况下修改字段值)
5
+ * 21-03-22 张发勇 增加 maxColWidth = 250, fontSize = 13, padding = 15 便于派生类修改
6
+ * 21-04-04 张发勇 增加函数 operView, operEdit, operDel 便于定制
7
+ * 21-06-09 张发勇 去掉前端直接传递表达式给后端,增加参数 sqlCfg, 支持 query
8
+ * 22-06-11 张发勇 js -> vue
9
+ * 23-07-31 张发勇 _upd()函数,增加数据修改标记,否则可输入的数据没有修改,保存按钮不可点击
10
+ * 23-08-12 张发勇 sqlexp.querPara()修改了参数,去掉major,minor
11
+ * 24-04-23 张发勇 修改列排序方式,对于使用排序的列,同时点击排序进行数据请求的,必须把sortable = custom,否则使用显示文本排序
12
+ */
13
+
14
+ /**
15
+ * cx.mixin.IDataAcce
16
+ * 混淆类 - 附属设施管理
17
+ *
18
+ * @module cx.mixin.IDataAcce
19
+ * @memberof cx.mixin
20
+ */
21
+
22
+ export default
23
+ {
24
+ data()
25
+ {
26
+ return {
27
+ major: 0,
28
+ minor: 0,
29
+ id0: 0,
30
+ prompt: null,
31
+ flds: null,
32
+ editable: false,
33
+ fixedExp: null,
34
+ retAtt: 0,
35
+ maxColWidth: 250,
36
+ fontSize: 13,
37
+ padding: 15,
38
+ sqlCfg: { key: '', vals: '', orderby: '' },
39
+ entity: null,
40
+ attObj: null,
41
+ attExp: null,
42
+ orderby: '',
43
+ queryPara: {},
44
+ list: [],
45
+ opers: [],
46
+ selected: null,
47
+ selection: [],
48
+ dg:
49
+ {
50
+ pages: false, // 是否使用分页
51
+ table:
52
+ {
53
+ elAtts:
54
+ {
55
+ border: true, // 是否带有纵向边框
56
+ showSummary: false, // 是否在表尾显示合计行
57
+ stripe: true, // 是否为斑马纹 table
58
+ 'row-style': ({ row, rowIndex }) => this.onRowStyle({ row, rowIndex }), // 行的 style 的回调方法,也可以使用一个固定的 Object 为所有行设置一样的 Style。
59
+ 'cell-style': ({ row, column, rowIndex, columnIndex }) => this.onCellStyle({ row, column, rowIndex, columnIndex }) // 单元格的 style 的回调方法,也可以使用一个固定的 Object 为所有单元格设置一样的 Style。
60
+ },
61
+ fitWidth: true, // 宽度自适应
62
+ multiple: false, // 是否支持多选'
63
+ operFix: 'right', // 操作列固定右边
64
+ list: [], // 数据列表
65
+ cols: [], // 列信息
66
+ operCols: [] // 操作列信息
67
+ },
68
+ page:
69
+ {
70
+ total: 0, // 数据量
71
+ pageSize: cx.consts.PAGE_SIZE, // 每页记录数
72
+ pageSizes: cx.consts.PAGE_SIZES // 分页标准
73
+ }
74
+ }
75
+ }
76
+ },
77
+
78
+ /** @member {Boolean} enable1 选中一行数据 */
79
+ /** @member {Object} dgAtts DataGrid 属性 */
80
+ /** @member {Object} dgEvts DataGrid 事件 */
81
+ computed:
82
+ {
83
+ // 选中一行数据
84
+ enable1()
85
+ {
86
+ return !!this.selected
87
+ },
88
+
89
+ // DataGrid 属性
90
+ dgAtts()
91
+ {
92
+ return {
93
+ size: this.size,
94
+ datagrid: this.dg
95
+ }
96
+ },
97
+
98
+ // DataGrid 事件
99
+ dgEvts()
100
+ {
101
+ return {
102
+ 'sort-change': (name, sort) => this.onSortChange(name, sort),
103
+ 'row-click': (att) => this.onRowClick(att),
104
+ 'row-dblclick': (att) => this.onRowDblClick(att),
105
+ 'selection-change': (selection) => this.onSelectionChange(selection),
106
+ 'button-click': (btn, att) => this.onButtonClick(btn, att),
107
+ 'edit-row': (oldRowIndex, newRowIndwx) => this.onEditRow(oldRowIndex, newRowIndwx),
108
+ 'pagesize-change': (pagesize) => this.onPagesizeChage(pagesize),
109
+ 'page-change': (pageno) => this.onPageChange(pageno)
110
+ }
111
+ }
112
+ },
113
+
114
+ /**
115
+ * mounted 钩子
116
+ * @method
117
+ */
118
+ mounted()
119
+ {
120
+ this.init()
121
+ },
122
+
123
+ /**
124
+ * 混合方法
125
+ * @class
126
+ */
127
+ methods:
128
+ {
129
+ /**
130
+ * 行样式
131
+ * @method
132
+ * @abstract
133
+ * @param {Object} row 行数据
134
+ * @param {Number} rowIndex 行索引
135
+ */
136
+ onRowStyle({ row, rowIndex })
137
+ {
138
+ },
139
+
140
+ /**
141
+ * 单元格样式
142
+ * @method
143
+ * @param {Object} opts 参数对象
144
+ * @param {Object} opts.att 行数据
145
+ * @param {Object} opts.column 列数据
146
+ * @param {Number} opts.rowIndex 行索引
147
+ * @param {Number} opts.columnIndex 列索引
148
+ * @returns {Object} 样式对象
149
+ */
150
+ onCellStyle({ row, column, rowIndex, columnIndex })
151
+ {
152
+ },
153
+
154
+ /**
155
+ * 按列头排序
156
+ * @method
157
+ * @param {String} name 排序字段
158
+ * @param {String} order 排序方式
159
+ */
160
+ onSortChange(name, order)
161
+ {
162
+ if (name && order)
163
+ {
164
+ // eslint-disable-next-line
165
+ if (name[0] == '_')
166
+ name = name.substring(1)
167
+ this.orderby = name + ' ' + order
168
+ }
169
+ else
170
+ this.orderby = ''
171
+ this.query()
172
+ },
173
+
174
+ /**
175
+ * 点击行
176
+ * @method
177
+ * @abstract
178
+ * @param {Object} att 行数据
179
+ */
180
+ onRowClick(att)
181
+ {
182
+ this.selected = att
183
+ },
184
+
185
+ /**
186
+ * 双击行
187
+ * @method
188
+ * @abstract
189
+ * @param {Object} att 行数据
190
+ */
191
+ onRowDblClick(att)
192
+ {
193
+ this.selected = att
194
+ },
195
+
196
+ /**
197
+ * 选择发生变化
198
+ * @method
199
+ * @abstract
200
+ * @param {Array} selection 选中的行数据
201
+ */
202
+ onSelectionChange(selection)
203
+ {
204
+ this.selection = selection
205
+ },
206
+
207
+ /**
208
+ * 点击按钮
209
+ * @method
210
+ * @param {Object} btn 点击的按钮
211
+ * @param {Object} att 行数据
212
+ */
213
+ onButtonClick(btn, att)
214
+ {
215
+ cx.base.call(btn.onClick, att)
216
+ },
217
+
218
+ /**
219
+ * 消息响应函数-每页数据量变化
220
+ * @method
221
+ * @param {Number} pagesize 选中的页码
222
+ */
223
+ onPagesizeChage(pagesize)
224
+ {
225
+ if (this.dg.page.pageSize !== pagesize)
226
+ this.dg.page.pageSize = pagesize
227
+ this.queryPara.pagesize = pagesize
228
+ this.queryPara.pageno = 1
229
+ this.query()
230
+ },
231
+
232
+ /**
233
+ * 消息响应函数-选中某页
234
+ * @method
235
+ * @param {Number} pageNo 选中的页码
236
+ */
237
+ onPageChange(pageNo)
238
+ {
239
+ if (this.queryPara.pageno !== pageNo)
240
+ {
241
+ this.queryPara.pageno = pageNo < 1 ? 1 : pageNo
242
+ this.query()
243
+ }
244
+ },
245
+
246
+ /**
247
+ * 消息响应函数-刷新
248
+ * @method
249
+ */
250
+ onRefresh()
251
+ {
252
+ this.$refs.datagrid.$refs.gridtable.$refs.table.clearSelection()
253
+ this.refresh()
254
+ },
255
+
256
+ /**
257
+ * 消息响应函数-刷新一条记录
258
+ * @method
259
+ */
260
+ onRefreshA()
261
+ {
262
+ this.refreshA()
263
+ },
264
+
265
+ /**
266
+ * 事件 edit-row 响应函数
267
+ * @param {Number} oldRowIndex 旧行
268
+ * @param {Number} newRowIndex 新行
269
+ */
270
+ onEditRow(oldRowIndex, newRowIndex)
271
+ {
272
+ },
273
+
274
+ /**
275
+ * 初始化
276
+ * @method
277
+ */
278
+ async init()
279
+ {
280
+ // DataGrid赋值
281
+ this.dg.table.list = this.list
282
+
283
+ if (!this.fixedExp && !this.attExp && !this.sqlCfg.key)
284
+ this.attExp = cx.sqlexp.getExpGlid(this.id0) // 默认条件
285
+
286
+ // 实体信息
287
+ this.entity = $g.entity.byMajMin(this.major, this.minor)
288
+
289
+ // 取表对象
290
+ this.attObj = await $g.attFactory.byMajMin(this.major, this.minor, { flds: this.flds })
291
+
292
+ // 构造操作列
293
+ const operCols = this.getOpers()
294
+ cx.array.appendArr(this.dg.table.operCols, operCols)
295
+ this.makeOpers(operCols)
296
+
297
+ // 构造DataGrid列
298
+ let cols = this.getCols()
299
+ const colInfs = this.getColInfs()
300
+ cx.datagrid.makeCols(cols, colInfs, this.attObj.flds)
301
+ if (this.getEditCols)
302
+ this.attObj.makeEdit(cols, this.getEditCols())
303
+
304
+ // 修改组件排序方式,否则用内存字符串排序
305
+ for (let col of cols)
306
+ {
307
+ if (col.sortable)
308
+ col.sortable = 'custom'
309
+ }
310
+
311
+ this.cols = cols
312
+ this.dg.table.cols = cols
313
+
314
+ // 发起默认查询
315
+ this.makeQueryPara()
316
+ this.refresh()
317
+ },
318
+
319
+ /**
320
+ * 取当前选中的行
321
+ * @method
322
+ */
323
+ getSelected()
324
+ {
325
+ return this.selected
326
+ },
327
+
328
+ /**
329
+ * 获取缺省的datagrid列字段信息
330
+ * @method
331
+ * @returns {Array} 返回datagrid列字段
332
+ */
333
+ getDefCols()
334
+ {
335
+ return cx.datagrid.getDefCols(this.attObj.flds, true)
336
+ },
337
+
338
+ /**
339
+ * 获取datagrid列字段信息
340
+ * @abstract
341
+ * @method
342
+ * @returns {Array} 返回datagrid列字段
343
+ */
344
+ getCols()
345
+ {
346
+ return this.getDefCols()
347
+ },
348
+
349
+ /**
350
+ * 获取datagrid列信息
351
+ * @abstract
352
+ * @method
353
+ * @returns {Array}
354
+ * @example
355
+ * [{colname: String, [title: String], width: Number, [align: Number = cx.consts.ALIGN_CENTER], [sortable: Boolean = true]}]
356
+ */
357
+ getColInfs()
358
+ {
359
+ return []
360
+ },
361
+
362
+ /**
363
+ * 重新计算opers
364
+ * @method
365
+ * @param {Array} operCols 操作列
366
+ * @returns {Object} this
367
+ */
368
+ makeOpers(operCols)
369
+ {
370
+ this.opers = []
371
+ for (let operCol of operCols)
372
+ {
373
+ for (let btn of operCol.btns)
374
+ {
375
+ btn.keyAble = btn.name + 'able_'
376
+ btn.keyShow = btn.name + 'show_'
377
+ this.opers.push(btn)
378
+ }
379
+ }
380
+ },
381
+
382
+ /**
383
+ * @method
384
+ * 计算各种操作的状态
385
+ * @param {Object} att 属性
386
+ * @returns {Object} this
387
+ */
388
+ calcOpers(att)
389
+ {
390
+ for (let oper of this.opers)
391
+ {
392
+ att[oper.keyAble] = oper.enable(att)
393
+ att[oper.keyShow] = oper.show(att)
394
+ }
395
+ },
396
+
397
+ /**
398
+ * 取操作按钮信息
399
+ * @abstract
400
+ * @method
401
+ * @returns {Array}
402
+ * @example
403
+ * [{colname: String,
404
+ * title: String,
405
+ * width: Number,
406
+ * [align: String = 'center']
407
+ * btns: [{name: String, title: String, onClick: Function}]
408
+ * }]
409
+ */
410
+ getOpers()
411
+ {
412
+ let operCol
413
+
414
+ // 增/删/改/查操作
415
+ operCol = this.getColOper()
416
+ this.addOperView(operCol)
417
+ .addOperEdit(operCol)
418
+ .addOperDel(operCol)
419
+ .setAttOper(operCol)
420
+
421
+ return [operCol]
422
+ },
423
+
424
+ /**
425
+ * 设置属性相关的按钮
426
+ * @method
427
+ * @abstract
428
+ * @param {Object} operCol 操作列
429
+ * @returns {Object} this
430
+ */
431
+ setAttOper(operCol)
432
+ {
433
+ return this
434
+ },
435
+
436
+ /**
437
+ * 操作列
438
+ * @method
439
+ * @returns {Object}
440
+ */
441
+ getColOper()
442
+ {
443
+ return { colname: 'rud_', title: this.$locBase('oper'), width: this.editable ? 125 : 60, align: 'center', btns: [] }
444
+ },
445
+
446
+ /**
447
+ * 增加操作-浏览
448
+ * @method
449
+ * @param {Object} operCol 操作列
450
+ * @returns {Object} this
451
+ */
452
+ addOperView(operCol)
453
+ {
454
+ const oper = cx.datagrid.getOper('view_', this.$locBase('view'), '')
455
+
456
+ oper.enable = (att) => true
457
+ oper.show = (att) => !this.editable
458
+ oper.onClick = (att) =>
459
+ {
460
+ this._view(att)
461
+ }
462
+
463
+ this.operView(oper)
464
+ operCol.btns.push(oper)
465
+ return this
466
+ },
467
+
468
+ /**
469
+ * 增加操作-编辑
470
+ * @method
471
+ * @param {Object} operCol 操作列
472
+ * @returns {Object} this
473
+ */
474
+ addOperEdit(operCol)
475
+ {
476
+ const oper = cx.datagrid.getOper('edit_', this.$locBase('edit'), '')
477
+
478
+ oper.enable = (att) => true
479
+ oper.show = (att) => !!this.editable
480
+ oper.onClick = (att) =>
481
+ {
482
+ this._upd(att)
483
+ }
484
+
485
+ this.operEdit(oper)
486
+ operCol.btns.push(oper)
487
+ return this
488
+ },
489
+
490
+ /**
491
+ * 增加操作-删除
492
+ * @method
493
+ * @param {Object} operCol 操作列
494
+ * @returns {Object} this
495
+ */
496
+ addOperDel(operCol)
497
+ {
498
+ const oper = cx.datagrid.getOper('del_', this.$locBase('del'), '')
499
+
500
+ oper.type = 'danger'
501
+ oper.enable = (att) => true
502
+ oper.show = (att) => !!this.editable
503
+ oper.onClick = (att) =>
504
+ {
505
+ this._del(att)
506
+ }
507
+
508
+ this.operDel(oper)
509
+ operCol.btns.push(oper)
510
+ return this
511
+ },
512
+
513
+ /**
514
+ * 增加操作-假删除
515
+ * @method
516
+ * @param {Object} operCol 操作列
517
+ * @returns {Object} this
518
+ */
519
+ addOperDelFake(operCol)
520
+ {
521
+ const oper = cx.datagrid.getOper('del_', this.$locBase('del'), '')
522
+
523
+ oper.type = 'warning'
524
+ oper.enable = (att) => !!this.editable
525
+ oper.show = (att) => true
526
+ oper.onClick = (att) =>
527
+ {
528
+ this._delFake(att)
529
+ }
530
+
531
+ operCol.btns.push(oper)
532
+ return this
533
+ },
534
+
535
+ /**
536
+ * 定制函数-操作/查看
537
+ * @method
538
+ * @param {Object} oper 操作对象
539
+ */
540
+ operView(oper)
541
+ {
542
+ },
543
+
544
+ /**
545
+ * 定制函数-操作/编辑
546
+ * @method
547
+ * @param {Object} oper 操作对象
548
+ */
549
+ operEdit(oper)
550
+ {
551
+ },
552
+
553
+ /**
554
+ * 定制函数-操作/删除
555
+ * @method
556
+ * @param {Object} oper 操作对象
557
+ */
558
+ operDel(oper)
559
+ {
560
+ },
561
+
562
+ /**
563
+ * 消息响应函数-刷新
564
+ * @method
565
+ */
566
+ refresh()
567
+ {
568
+ this.query()
569
+ },
570
+
571
+ /**
572
+ * 更新列的宽度
573
+ */
574
+ updColsWidth()
575
+ {
576
+ cx.datagrid.makeColsFitWidth(this.dg.table.cols, this.list, this.maxColWidth, this.fontSize, this.padding)
577
+ },
578
+
579
+ /**
580
+ * 向数据库发查询请求
581
+ * @method
582
+ */
583
+ query()
584
+ {
585
+ const self = this
586
+
587
+ // 回调函数
588
+ const onSuccess = ret =>
589
+ {
590
+ cx.array.clear(self.dg.table.list)
591
+ cx.array.appendArr(self.list, ret)
592
+
593
+ // 当前选中行还在不在?
594
+ if (self.selected)
595
+ {
596
+ if (!cx.array.get1(self.list, { id: self.selected }))
597
+ self.selected = null
598
+ }
599
+
600
+ // 显示数据
601
+ for (let att of self.list)
602
+ self.getDisp(att)
603
+
604
+ self.afterQuery()
605
+
606
+ // 根据数据和字段更新列宽度
607
+ self.updColsWidth()
608
+ }
609
+
610
+ // 装配参数
611
+ if (self.sqlCfg.key)
612
+ {
613
+ self.queryPara._key = self.sqlCfg.key
614
+
615
+ // eslint-disable-next-line
616
+ if (self.sqlCfg.vals != undefined && self.sqlCfg.vals != null && self.sqlCfg.vals !== '')
617
+ self.queryPara.vals = self.sqlCfg.vals
618
+
619
+ if (self.sqlCfg.orderby)
620
+ self.queryPara.orderby = self.sqlCfg.orderby
621
+ }
622
+ if (self.orderby)
623
+ self.queryPara.orderby = self.orderby
624
+
625
+ // 发起调用
626
+ cx.svr.data.query(self.major, self.minor, self.queryPara)
627
+ .then(onSuccess)
628
+ .catch(self.onError)
629
+ },
630
+
631
+ /**
632
+ * 产生查询参数
633
+ * @method
634
+ */
635
+ makeQueryPara()
636
+ {
637
+ let exp = cx.sqlexp.getDefExp() // 空表达式
638
+
639
+ cx.sqlexp.merge(exp, this.fixedExp, this.attExp)
640
+ this.queryPara = cx.sqlexp.queryPara(exp, 0)
641
+ },
642
+
643
+ /**
644
+ * 取对象的显示信息
645
+ * @method
646
+ * @param {Object} att 属性对象
647
+ * @returns {Object} this
648
+ */
649
+ getDisp(att)
650
+ {
651
+ this._getDisp(att)
652
+ return this
653
+ },
654
+
655
+ /**
656
+ * 取对象的显示信息
657
+ * @method
658
+ * @private
659
+ * @param {Object} att 属性对象
660
+ * @returns {Object} this
661
+ */
662
+ _getDisp(att)
663
+ {
664
+ this.attObj.numberize(att)
665
+ if (this.attObj.decode)
666
+ this.attObj.decode(att)
667
+ this.attObj.getDisp(att)
668
+ if (att.completed !== undefined)
669
+ {
670
+ if (att.completed)
671
+ att._completed = cx.consts.TEXT_COMPLETED
672
+ else
673
+ att._completed = ''
674
+ }
675
+ this.calcOpers(att)
676
+ return this
677
+ },
678
+
679
+ /**
680
+ * 添加新项到datagrid列表
681
+ * @method
682
+ * @param {Object} attNew 新属性
683
+ */
684
+ gridAdd(attNew)
685
+ {
686
+ this.getDisp(attNew)
687
+ cx.array.insert(this.list, attNew)
688
+ },
689
+
690
+ /**
691
+ * 从datagrid删除项
692
+ * @method
693
+ * @param {Object} attOld 旧属性
694
+ */
695
+ gridDel(attOld)
696
+ {
697
+ cx.array.remove(this.list, { id: attOld.id })
698
+ // eslint-disable-next-line
699
+ if (this.selected && this.selected.id == attOld.id)
700
+ this.selected = null
701
+ },
702
+
703
+ /**
704
+ * 更新datagrid项
705
+ * @method
706
+ * @param {Object} attNew 新属性
707
+ * @param {Object} attOld 旧属性
708
+ */
709
+ gridUpd(attNew, attOld)
710
+ {
711
+ let item, i
712
+
713
+ for (item of this.list)
714
+ {
715
+ // eslint-disable-next-line
716
+ if (item.id == attNew.id)
717
+ {
718
+ for (i in attNew)
719
+ item[i] = attNew[i]
720
+ this.getDisp(item)
721
+ }
722
+ }
723
+ },
724
+
725
+ /**
726
+ * 提交-增加
727
+ * @method
728
+ * @param {Object} att 新属性
729
+ * @param {Object} plugin 插件对象
730
+ */
731
+ submitAdd(att, plugin)
732
+ {
733
+ if (this.id0 > 0)
734
+ att.id0 = this.id0
735
+ if (!this.beforeAdd(att))
736
+ {
737
+ return new Promise((resolve) =>
738
+ {
739
+ resolve(false)
740
+ })
741
+ }
742
+ return cx.svr.attOper.insert(this.major, this.minor, att, this.retAtt)
743
+ .then(ret =>
744
+ {
745
+ this.attObj.numberize(att)
746
+ this.afterAdd(att)
747
+ this.gridAdd(att)
748
+ return true
749
+ })
750
+ .catch(this.onError)
751
+ },
752
+
753
+ /**
754
+ * 提交-删除
755
+ * @method
756
+ * @param {Object} att 属性
757
+ */
758
+ submitDel(att)
759
+ {
760
+ if (!att)
761
+ return
762
+ if (!this.beforeDel(att))
763
+ return
764
+
765
+ cx.svr.doc.delEntity({ major: this.major, minor: this.minor, entityid: att.id }).then(ret =>
766
+ {
767
+ cx.svr.attOper.del(this.major, this.minor, att)
768
+ .then(ret =>
769
+ {
770
+ this.afterDel(att)
771
+ this.gridDel(att)
772
+ })
773
+ .catch(this.onError)
774
+ })
775
+ .catch(this.onError)
776
+ },
777
+
778
+ /**
779
+ * 提交-删除(假删除)
780
+ * @method
781
+ * @param {Object} att 属性
782
+ */
783
+ submitDelFake(att)
784
+ {
785
+ this.beforeUpd(att)
786
+ att.inuse = 0
787
+ cx.svr.attOper.update(this.major, this.minor, att, att)
788
+ .then(ret =>
789
+ {
790
+ this.afterUpd(att)
791
+ this.gridDel(att)
792
+ })
793
+ .catch(this.onError)
794
+ },
795
+
796
+ /**
797
+ * 提交-修改
798
+ * @method
799
+ * @param {Object} attNew 新属性
800
+ * @param {Object} attOld 旧属性
801
+ */
802
+ submitUpd(attNew, attOld)
803
+ {
804
+ return new Promise((resolve) =>
805
+ {
806
+ // 20-08-27 张发勇 在属性编辑里面调用了 beforeUpd(att),以下的代码屏蔽
807
+ // if (!this.beforeUpd(attNew))
808
+ // return
809
+
810
+ this.afterUpd(attNew)
811
+ this.gridUpd(attNew, attOld)
812
+ resolve(true)
813
+ })
814
+ },
815
+
816
+ /**
817
+ * 根据属性删除实体
818
+ * @private
819
+ * @method
820
+ * @param {Object} att 属性
821
+ */
822
+ _del(att)
823
+ {
824
+ if (att)
825
+ {
826
+ this.$cfm('del')
827
+ .then(() =>
828
+ {
829
+ this.submitDel(att)
830
+ })
831
+ .catch(() =>
832
+ {
833
+ })
834
+ }
835
+ },
836
+
837
+ /**
838
+ * 根据属性删除实体(假删除)
839
+ * @private
840
+ * @method
841
+ * @param {Object} att 属性
842
+ */
843
+ _delFake(att)
844
+ {
845
+ if (att)
846
+ {
847
+ this.$cfm('del')
848
+ .then(() =>
849
+ {
850
+ this.submitDelFake(att)
851
+ })
852
+ .catch(() =>
853
+ {
854
+ })
855
+ }
856
+ },
857
+
858
+ /**
859
+ * 根据属性查看实体
860
+ * @private
861
+ * @method
862
+ * @param {Object} att 属性
863
+ */
864
+ _view(att)
865
+ {
866
+ if (att)
867
+ {
868
+ const params =
869
+ {
870
+ major: this.major,
871
+ minor: this.minor,
872
+ att,
873
+ editable: false,
874
+ title: this.getEntityName(),
875
+ retAtt: this.retAtt,
876
+ onOk: (attNew, attOld) => this.submitUpd(attNew, attOld)
877
+ }
878
+ cx.run.runPlug(this.getPluginName(cx.consts.ATT_VIEW, att), params, {})
879
+ }
880
+ },
881
+
882
+ /**
883
+ * 根据属性编辑实体
884
+ * @private
885
+ * @method
886
+ * @param {Object} att 属性
887
+ * @param {Boolean} [changed = false] 数据改变标记
888
+ */
889
+ _upd(att, changed)
890
+ {
891
+ if (att)
892
+ {
893
+ const params =
894
+ {
895
+ major: this.major,
896
+ minor: this.minor,
897
+ att,
898
+ editable: true,
899
+ title: this.getEntityName(),
900
+ form: this.entity.form,
901
+ onOk: (newAtt, oldAtt) => this.submitUpd(newAtt, oldAtt),
902
+ beforeUpd: (att) => this.beforeUpd(att)
903
+ }
904
+ if (changed)
905
+ params.changed = !!changed
906
+ cx.run.runPlug(this.getPluginName(cx.consts.ATT_EDIT, att), params, {})
907
+ }
908
+ },
909
+
910
+ /**
911
+ * 根据ID删除实体
912
+ * @method
913
+ * @param {Number} id ID
914
+ */
915
+ del(id)
916
+ {
917
+ this._del(cx.array.get1(this.list, { id: parseInt(id) }))
918
+ },
919
+
920
+ /**
921
+ * 根据ID删除实体
922
+ * @method
923
+ * @param {Number} id ID
924
+ */
925
+ view(id)
926
+ {
927
+ this._view(cx.array.get1(this.list, { id: parseInt(id) }))
928
+ },
929
+
930
+ /**
931
+ * 根据ID修改实体
932
+ * @method
933
+ * @param {Number} id ID
934
+ */
935
+ upd(id)
936
+ {
937
+ this._upd(cx.array.get1(this.list, { id: parseInt(id) }))
938
+ },
939
+
940
+ /**
941
+ * 消息响应函数-添加
942
+ * @method
943
+ */
944
+ onAdd()
945
+ {
946
+ // 弹出输入界面
947
+ const params =
948
+ {
949
+ major: this.major,
950
+ minor: this.minor,
951
+ att: this.defVal(),
952
+ title: this.getEntityName(),
953
+ retAtt: this.retAtt,
954
+ beforeUpd: (att) => this.beforeUpd(att),
955
+ onOk: (att) => this.submitAdd(att)
956
+ }
957
+ cx.run.runPlug(this.getPluginName(cx.consts.ATT_ADD, null), params, {})
958
+ },
959
+
960
+ /**
961
+ * 消息响应函数-删除
962
+ * @method
963
+ */
964
+ onDel()
965
+ {
966
+ this._del(this.getSelected())
967
+ },
968
+
969
+ /**
970
+ * 消息响应函数-修改
971
+ * @method
972
+ */
973
+ onUpd()
974
+ {
975
+ this._upd(this.getSelected())
976
+ },
977
+
978
+ /**
979
+ * 取默认值
980
+ * @abstract
981
+ * @method
982
+ * @returns {Object} 默认属性(如果没有缓存数据,则返回NULL)
983
+ */
984
+ defVal()
985
+ {
986
+ const att = this.attObj.getDefVal()
987
+ cx.att.getCacheAtt(this.major, this.minor, att)
988
+ this.initAtt(att)
989
+ return att
990
+ },
991
+
992
+ /**
993
+ * 用于输入属性之前,在派生类初始化属性(特殊情况下修改字段值)
994
+ * @method
995
+ * @param {Object} att 属性对象
996
+ */
997
+ initAtt(att)
998
+ {
999
+ },
1000
+
1001
+ /**
1002
+ * 添加属性之前的接口
1003
+ * @abstract
1004
+ * @method
1005
+ * @param {Object} att 属性对象
1006
+ * @returns {Boolean} true-没有问题,false-不通过
1007
+ */
1008
+ beforeAdd(att)
1009
+ {
1010
+ return true
1011
+ },
1012
+
1013
+ /**
1014
+ * 添加属性之后的接口
1015
+ * @abstract
1016
+ * @method
1017
+ * @param {Object} att 属性对象
1018
+ */
1019
+ afterAdd(att)
1020
+ {
1021
+ },
1022
+
1023
+ /**
1024
+ * 删除属性之前的接口
1025
+ * @abstract
1026
+ * @method
1027
+ * @param {Object} att 属性对象
1028
+ * @returns {Boolean} true-没有问题,false-不通过
1029
+ */
1030
+ beforeDel(att)
1031
+ {
1032
+ return true
1033
+ },
1034
+
1035
+ /**
1036
+ * 删除属性之后的接口
1037
+ * @abstract
1038
+ * @method
1039
+ * @param {Object} att 属性对象
1040
+ */
1041
+ afterDel(att)
1042
+ {
1043
+ },
1044
+
1045
+ /**
1046
+ * 修改属性之前的接口
1047
+ * @abstract
1048
+ * @method
1049
+ * @param {Object} att 属性对象
1050
+ * @returns {Boolean} true-没有问题,false-不通过
1051
+ */
1052
+ beforeUpd(att)
1053
+ {
1054
+ return true
1055
+ },
1056
+
1057
+ /**
1058
+ * 修改属性之后的接口
1059
+ * @abstract
1060
+ * @method
1061
+ * @param {Object} att 属性对象
1062
+ */
1063
+ afterUpd(att)
1064
+ {
1065
+ },
1066
+
1067
+ /**
1068
+ * 查询之后的接口
1069
+ * @abstract
1070
+ * @method
1071
+ */
1072
+ afterQuery()
1073
+ {
1074
+ },
1075
+
1076
+ /**
1077
+ * 取实体名称
1078
+ * @method
1079
+ * @returns {String} 返回实体信息
1080
+ */
1081
+ getEntityName()
1082
+ {
1083
+ cx.i18n.locEntity(this.entity)
1084
+ },
1085
+
1086
+ /**
1087
+ * 取插件名
1088
+ * @method
1089
+ * @param {Number} type 类型
1090
+ * @param {Object} [att] 属性(当前需要发起流程的属性)
1091
+ * @returns {String}
1092
+ */
1093
+ getPluginName(type, att)
1094
+ {
1095
+ switch (type)
1096
+ {
1097
+ case cx.consts.ATT_ADD:
1098
+ return 'AttInput'
1099
+ case cx.consts.ATT_EDIT:
1100
+ case cx.consts.ATT_VIEW:
1101
+ return 'AttEdit'
1102
+ }
1103
+ return ''
1104
+ }
1105
+ }
1106
+ }