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,1203 @@
1
+ <style lang="scss" scoped>
2
+ .body {display: flex;width:100%; height: calc(94% - 0.4rem); padding-top: 0.16rem; padding-left: 0.12rem; color: var(--cx-colorText2);
3
+ .menu{position:absolute;width:100px;border:0.01rem solid var(--cx-colorBorder1);border-radius:0.05rem;background: var(--cx-colorBg5);} // 要放这个位置
4
+ .prj-tree {width: 17%; height: 100%; border: solid 0.01rem var(--cx-colorBorder1);border-radius: 0.08rem; background: var(--cx-colorBg5);;
5
+ .tree-top{display: flex;align-items: center;height: 5%;padding-left: 0.12rem;background: var(--cx-colorPrimary13);}
6
+ .tree-body {height: 95%;border-top: solid 0.01rem var(--cx-colorBorder1);
7
+ .tree-qry {display: flex;height: 0.6rem; padding-left: 0.1rem;}
8
+ .prj-node {font-size: 0.14rem;height: calc(100% - 0.7rem);overflow-y: auto;overflow-x:hidden;padding-left:0.16rem;padding-right:0.16rem;
9
+ }
10
+ .kz{position: absolute; bottom: 0.3rem;margin-left:0.75rem;}
11
+ .qryInpt {width: 2.25rem; top: 0.12rem; left: 0.06rem;}
12
+ .qry-btn {position: relative; top: 0.12rem;margin-left:0.12rem;}
13
+ }
14
+ }
15
+ .prj-data {width: calc(83% - 0.4rem); height: 100%; margin-left: 0.2rem;margin-right: 0.2rem;
16
+ .prj-jdt {position:relative;display: flex;align-items: center;height: 0.4rem;overflow: hidden;background: var(--cx-colorBg5);border-radius: 0.08rem;border-bottom-left-radius: 0;border-bottom-right-radius: 0; border: 0.01rem solid var(--cx-colorBorder2); box-shadow: var(--cx-boxShadow5);
17
+ .right-top-button{position: absolute;display: flex;align-items: center;right: 0.2rem;}
18
+ }
19
+ }
20
+ .prj-table {position:relative;height: calc(100% - 0.4rem);background-color:var(--cx-colorBg5);padding-left: 0.2rem;padding-right: 0.2rem;border: 0.01rem solid var(--cx-colorBorder2); box-shadow: var(--cx-boxShadow5);border-radius: 0.1rem;border-top-left-radius: 0rem;border-top-right-radius: 0rem;
21
+ .kp{display: flex;flex-wrap: wrap;align-content: flex-start;overflow-y: scroll;height:87%;width:100%;
22
+ .right-content{display: flex;position: relative;flex-direction: column;width: 2.6rem;height: 2.8rem;margin-top: 0.15rem;margin-right: 0.2rem;padding-left: 0.15rem; padding-top: 0.15rem;border-radius: 0.08rem;border: 0.01rem solid var(--cx-colorBorder2);
23
+ .gx{display: flex;align-items: center;margin-top:0.1rem;
24
+ .name{width: 2.3rem;color: var(--cx-colorText0);font-weight:700;margin-left: 0.05rem;white-space: nowrap;overflow-x: hidden;text-overflow: ellipsis}
25
+ }
26
+ .bzh{width: 2.5rem;margin-top: 0.05rem;white-space: nowrap;overflow-x: hidden;text-overflow: ellipsis}
27
+ .ckxq{position: absolute;display: flex;bottom: 0.15rem;cursor: pointer;}
28
+ .xz{position:absolute;display: flex;align-items: center;right:0.15rem;bottom: 0.15rem;
29
+ .el-icon{cursor:pointer;margin-left: 0.1rem}
30
+ }
31
+ }
32
+ }
33
+ .el-pagination{position: absolute;bottom: 0.1rem;width:98%;}
34
+ .filimg{display: flex;justify-content: center;align-items: center;height: 3.2rem;width: 2.8rem;margin-top: 0.2rem;border: 0.01rem solid var(--cx-colorBorder2); border-radius: 0.08rem;box-shadow: var(--cx-boxShadow5);cursor: pointer;
35
+ .filimg_add{display: flex;align-items: center;justify-content: center;border: 0.03rem dashed var(--cx-colorText5);border-radius: 0.05rem;width: 1rem;height: 1rem;
36
+ .add_icon{font-size: 0.4rem;color: var(--cx-colorText5);}
37
+ }
38
+ }
39
+ }
40
+ }
41
+ .right-top-qry{display: flex;align-items: center;margin-top: 0.15rem;
42
+ .topInpt{margin-right: 0.3rem;margin-left: 0.1rem;width: 1.8rem;}
43
+ }
44
+ .search_title{display: flex;position: relative;
45
+ .search_right{position: absolute;;display: flex;align-items: center;margin-top: 0.15rem;right: 0.15rem;}
46
+ }
47
+ .active-name{width: 98.8%; height: 6%; font-size: 0.18rem; font-weight: 400; box-sizing: border-box; padding-left: 0.1rem; padding-right: 0.1rem; margin: auto; margin-top: 0.12rem;line-height: 0.5rem; border-radius: 0.06rem; box-shadow: var(--cx-boxShadow5); border: .01rem solid var(--cx-colorBorder1); color: var(--cx-colorText3); background: var(--cx-colorBg5); display: flex;align-items: center;justify-content: space-between;}
48
+ .dialog_form{padding:.2rem;height:100%;display:flex;flex-direction:column;align-items:normal;}
49
+ .dialog_input{width:2rem;}
50
+ .menu_add{display: flex;align-items: center;justify-content: center;cursor: pointer;width:100%;height:0.3rem;}
51
+ .menu_add:hover{background-color: var(--cx-colorPrimary13);}
52
+ .dialog-footer{position: absolute;bottom: 0.1rem;left: 50%;transform: translateX(-50%);}
53
+ :deep(.el-dialog .el-dialog__body){position: relative;height: 1.4rem;}
54
+ :deep(.el-tabs.el-tabs--top > .el-tabs__header.is-top){margin-left: 0rem;}
55
+ </style>
56
+
57
+ <template>
58
+ <div class="active-name" v-if="syshow">
59
+ <span>{{activeName}}</span>
60
+ <el-popover
61
+ placement="right"
62
+ width="600"
63
+ trigger="click">
64
+ <p style="white-space: pre-wrap;" v-html="smData"></p>
65
+ <template #reference>
66
+ <el-button class="btn_sm" type="primary">功能说明</el-button>
67
+ </template>
68
+ </el-popover>
69
+ </div>
70
+ <div class="body" v-show="syshow">
71
+ <!-- 左侧树 -->
72
+ <div class="prj-tree">
73
+ <div class="tree-body">
74
+ <div class="tree-qry">
75
+ <el-input
76
+ class="qryInpt"
77
+ v-model="leftkeyword"
78
+ suffix-icon="el-icon-search"
79
+ size="mini"
80
+ placeholder="请输入关键字"
81
+ clearable="true"
82
+ @clear="qk"
83
+ @keyup.enter="onSearch">
84
+ </el-input>
85
+ <el-button class="qry-btn" type="primary" @click="onSearch">查询</el-button>
86
+ </div>
87
+ <div class="prj-node">
88
+ <!-- 树数据 -->
89
+ <el-tree
90
+ class="filter-tree"
91
+ highlight-current
92
+ :data="data"
93
+ node-key="id"
94
+ :props="defaultProps"
95
+ default-expand-all
96
+ @node-contextmenu ='doubleclick'
97
+ @node-click = "nodeclick"
98
+ :filter-node-method="filterNode"
99
+ :current-node-key="currentNodeKey"
100
+ ref="tree">
101
+ </el-tree>
102
+
103
+ <!-- 鼠标右击出现的新增和编辑内容 -->
104
+ <div class="menu" v-show="meunshow">
105
+ <!-- 节点新增 -->
106
+ <div class="menu_add" @click="nameadd" v-if="meunshow2">新增</div>
107
+ <!-- 卡片新增 -->
108
+ <div class="menu_add" @click="addHandle" v-if="kpshow && canUseBtn('add')" >新增</div>
109
+ <div class="menu_add" @click="nameedit" v-if="menushow3 && canUseBtn('edit')">编辑</div>
110
+ <div class="menu_add" @click="namedelete" v-if="menushow3 && canUseBtn('delete')">删除</div>
111
+ </div>
112
+ </div>
113
+ </div>
114
+ </div>
115
+
116
+ <!-- 右侧卡片信息 -->
117
+ <section class="prj-data">
118
+ <header class="prj-jdt">
119
+ <el-tabs type="card" v-model="editableTabsValue " closable @tab-remove="removeTab" @edit="tabEdit" @tab-click="tabClick">
120
+ <el-tab-pane
121
+ v-for="item in editableTabs"
122
+ :key="item.name"
123
+ :label="item.title"
124
+ :name="item.name"
125
+ >
126
+ {{item.content}}
127
+ </el-tab-pane>
128
+ </el-tabs>
129
+ </header>
130
+ <section class="prj-table" v-if="show">
131
+ <div class="search_title">
132
+ <div class="right-top-qry" v-for="item in cardSearch" :key="item">
133
+ <span>{{item.name}}</span>
134
+ <el-input
135
+ class="topInpt"
136
+ v-model="item.value"
137
+ suffix-icon="el-icon-search"
138
+ size="mini"
139
+ placeholder="请输入"
140
+ clearable="true"
141
+ @clear='item.value = ""'
142
+ @keyup.enter="onSearch2">
143
+ </el-input>
144
+ </div>
145
+ <div class="right-top-qry">
146
+ <span>排序设置:</span>
147
+ <el-select clearable
148
+ v-model="sortName"
149
+ @change="onSortChange"
150
+ class="topInpt"
151
+ >
152
+ <el-option v-for="opt in sortOption"
153
+ :key="opt.value"
154
+ :value="opt.value"
155
+ :label="opt.label"
156
+ />
157
+ </el-select>
158
+ </div>
159
+ <div class="search_right">
160
+ <cx-button class="top-btn" type="primary" @click="onUpload">新增</cx-button>
161
+ <cx-button class="top-btn" type="primary" @click="onSearch2">查询</cx-button>
162
+ <cx-button class="top-btn" @click="onResevel">重置</cx-button>
163
+ </div>
164
+ </div>
165
+ <div class = "kp">
166
+ <div class="right-content" v-for="obj in sj" :key="obj.id">
167
+ <img :src="obj.src" alt="" style="width:2.5rem;height:2rem">
168
+ <div class="gx">
169
+ <el-tooltip class="item" effect="dark" :content="obj.kc_name" placement="top">
170
+ <span class="name">{{obj.kc_name}}</span>
171
+ </el-tooltip>
172
+ </div>
173
+ <div class="ckxq">
174
+ <span @click="showGrp(obj)">查看详情</span>
175
+ </div>
176
+ <div class="xz">
177
+ <el-icon class="cx-fi ic-visible" @click="_view(obj)"/>
178
+ <el-icon class="cx-fi ic-edit" @click="_upd(obj)" v-if="canUseBtn('edit')"/>
179
+ <el-icon class="cx-fi ic-trash" @click="contentdelete(obj)" v-if="canUseBtn('delete')"/>
180
+ </div>
181
+ </div>
182
+ </div>
183
+ <el-pagination
184
+ @size-change="handleSizeChange"
185
+ @current-change="handleCurrentChange"
186
+ :page-sizes="pageSizes"
187
+ :page-size="pageSize"
188
+ layout="total, sizes, prev, pager, next, jumper"
189
+ :total="searchsjall.length">
190
+ </el-pagination>
191
+ <p style="position: absolute;top: 50%;left: 50%;transform:translate(-50%,-50%);" v-if='!this.sj.length'>暂无数据</p>
192
+ </section>
193
+ </section>
194
+
195
+ <!-- 对话框 -->
196
+ <cx-dialog v-if="dialogVisible" :dlg="dlg" @close="dialogVisible = false">
197
+ <el-form ref="ruleForm" label-width="1rem" class="dialog_form">
198
+ <el-form-item :label="`${title2}类型:`" required>
199
+ <el-input v-model="kcmc" class = "dialog_input"></el-input>
200
+ </el-form-item>
201
+ <el-form-item>
202
+ <cx-cmd-ok-cancel @ok-click="kcsubmit" @cancel-click="dialogVisible = false"/>
203
+ </el-form-item>
204
+ </el-form>
205
+ </cx-dialog>
206
+ </div>
207
+ <MineralGo v-if="!syshow" :obj="obj" @modelshow="syshow = true"/>
208
+ </template>
209
+ <script>
210
+ /**
211
+ * 组件: 矿床模型管理
212
+ */
213
+ import MineralGo from './MineralGo.vue'
214
+
215
+ export default {
216
+ mixins: [cx.mixin.IPlugBase],
217
+ components: { MineralGo },
218
+ data()
219
+ {
220
+ return {
221
+ smData: '',
222
+ leftkeyword: '',
223
+ obj: '',
224
+ show: true,
225
+ syshow: true,
226
+ sj: [],
227
+ kphcsj: [],
228
+ dlg: {
229
+ title: '',
230
+ width: '4rem',
231
+ height: '2.5rem',
232
+ pos: { zIndex: 12, top: '4rem', left: '7rem' }
233
+ },
234
+ currentpage: 1,
235
+ searchsjall: [],
236
+ pageSizes: [10, 20, 50, 100],
237
+ pageSize: 10,
238
+ admin: true,
239
+ addnmae: '',
240
+ editname: '',
241
+ title2: '',
242
+ title: '',
243
+ currentNodeKey: null,
244
+ kcmc: '',
245
+ meunshow: false,
246
+ meunshow2: false,
247
+ menushow3: true,
248
+ rightkeyword: '',
249
+ dialogVisible: false,
250
+ nodeclicksj: '',
251
+ nodeclickzt: false,
252
+ treezk: true,
253
+ kzname: '', // 矿种名称,自动带入
254
+ kclx: '', // 矿床类型,自动带入
255
+ nodeclickid: [],
256
+ doubleclicksj: '',
257
+ doubleclickzt: false,
258
+ theflds: '',
259
+ clickHandler: '',
260
+ data: [
261
+ ],
262
+ defaultProps: {
263
+ children: 'children',
264
+ label: 'name'
265
+ },
266
+ theflds2: [],
267
+ activeName: '矿床模型',
268
+ tabIndex: 1,
269
+ editableTabsValue: '',
270
+ editableTabs: [],
271
+ sortOption: [],
272
+ sortName: '',
273
+ cardSearch: [{ name: '矿床名称:', colname: 'kc_name', value: '' }, { name: '模式图名称:', colname: 'kc_mst', value: '' }, { name: '模式表:', colname: 'kc_msb', value: '' }]
274
+ }
275
+ },
276
+
277
+ beforeUnmount()
278
+ {
279
+ document.documentElement.removeEventListener('click', this.clickHandler)
280
+ // true 为所有用户可见,返回数据中心其他页面不是所有用户可见,所以需要改回去
281
+ window.pt_service = false
282
+ },
283
+
284
+ created()
285
+ {
286
+ this.smData = window.SmData['矿床模型']
287
+ this.initOption()
288
+ },
289
+
290
+ mounted()
291
+ {
292
+ this.inittree()
293
+ this.contextClick()
294
+ },
295
+
296
+ methods:
297
+ {
298
+ /**
299
+ * 初始化树
300
+ */
301
+ inittree()
302
+ {
303
+ this.data = []
304
+ cx.svr.data.query(window.$app.TabConst.kcflb.major, window.$app.TabConst.kcflb.minor, { args: [['id', '>', 0, null]], orderby: 'glid ASC' }).then(ret =>
305
+ {
306
+ if (ret.length)
307
+ {
308
+ // 按glid递增查询,第一个数据肯定是最外层数据
309
+ this.data.push(ret[0])
310
+ let mbsj = this.data // 定义要存放的目标数据父节点
311
+ for (let i = 1; i < ret.length; i++)
312
+ {
313
+ if (ret[i].glid === ret[i - 1].glid && mbsj) // 和前一个glid相同说明是一个父节点,直接存在目标数据父节点
314
+ mbsj.push(ret[i])
315
+ else
316
+ {
317
+ mbsj = this.getmbsj(ret[i], this.data)
318
+ if (mbsj)
319
+ mbsj.push(ret[i])
320
+ }
321
+ }
322
+ this.$nextTick(() =>
323
+ {
324
+ // 自动点击
325
+ if (this.data)
326
+ {
327
+ this.currentNodeKey = this.data[0].id
328
+ this.nodeclick(this.data[0])
329
+ }
330
+ })
331
+ }
332
+ })
333
+ },
334
+
335
+
336
+ /**
337
+ * 下拉值变化,根据下拉值对数据进行排序
338
+ */
339
+ onSortChange()
340
+ {
341
+ this.getsj()
342
+ },
343
+
344
+
345
+ /**
346
+ * 初始化下拉选项
347
+ */
348
+ initOption()
349
+ {
350
+ this.sortOption = [
351
+ {
352
+ value: 'kzname',
353
+ label: '矿种类型'
354
+ }, {
355
+ value: 'formation_time',
356
+ label: '形成时间'
357
+ }
358
+ ]
359
+ },
360
+
361
+
362
+ /**
363
+ * 矿床/矿种提交
364
+ */
365
+ kcsubmit()
366
+ {
367
+ if (this.kcmc)
368
+ {
369
+ if (this.title === '矿床编辑' || this.title === '矿种编辑')
370
+ this.kcedit(this.title)
371
+ else
372
+ this.kcadd()
373
+ }
374
+ else
375
+ this.$showMsg('表单请填写完整!', 'warning')
376
+ },
377
+
378
+ /**
379
+ * 判断按钮是否可用
380
+ * @param {String} name - 按钮名称
381
+ * @returns {Boolean} 是否可用
382
+ */
383
+ canUseBtn(name)
384
+ {
385
+ // return $g.access.canUseBtn('MineralModel', name)
386
+ return true
387
+ },
388
+
389
+
390
+ /**
391
+ * 新增卡片
392
+ */
393
+ addHandle()
394
+ {
395
+ // 参数
396
+ let params =
397
+ {
398
+ major: window.$app.TabConst.kcmxb.major,
399
+ minor: window.$app.TabConst.kcmxb.minor,
400
+ thethis: this,
401
+ att: { glid: this.doubleclicksj.id, kzname: this.kzname, kclx: this.kclx, uploader: $g.user.name, uploadunit: $g.user.organs.length ? $g.user.organs[0].namec : '' }
402
+ }
403
+ cx.run.runPlug('ModelUpload', params, { uicfg: { width: 0.4, height: 0.7, modal: 1 }, container: 'Home' })
404
+ },
405
+
406
+
407
+ /**
408
+ * 上传按钮点击事件
409
+ */
410
+ onUpload()
411
+ {
412
+ this.doubleclickzt = false
413
+ this.nodeclickzt = true
414
+ if (this.nodeclicksj.glid === 0)
415
+ {
416
+ this.addname = '矿种'
417
+ this.nameadd()
418
+ }
419
+ // 二级节点
420
+ else if (this.nodeclicksj.glid === this.data[0].id)
421
+ {
422
+ this.addname = '矿床'
423
+ this.nameadd()
424
+ }
425
+ // 三级节点新增卡片
426
+ else
427
+ {
428
+ for (let i = 0; i < this.data[0].children.length; i++)
429
+ {
430
+ if (this.data[0].children[i].id === this.nodeclicksj.glid)
431
+ {
432
+ this.kzname = this.data[0].children[i].name
433
+ this.kclx = this.nodeclicksj.name
434
+ break
435
+ }
436
+ }
437
+ // 参数
438
+ let params =
439
+ {
440
+ major: window.$app.TabConst.kcmxb.major,
441
+ minor: window.$app.TabConst.kcmxb.minor,
442
+ thethis: this,
443
+ att: { glid: this.nodeclicksj.id, kzname: this.kzname, kclx: this.kclx, uploader: $g.user.name, uploadunit: $g.user.organs.length ? $g.user.organs[0].namec : '' }
444
+ }
445
+ cx.run.runPlug('ModelUpload', params, { uicfg: { width: 0.4, height: 0.7, modal: 1 }, container: 'Home' })
446
+ }
447
+ },
448
+
449
+ /**
450
+ * 切换当前条数
451
+ * @param {Number} val - 每页条数
452
+ */
453
+ handleSizeChange(val)
454
+ {
455
+ this.pageSize = val
456
+ this.sj = this.searchsjall.slice(this.pageSize * (this.currentpage - 1), this.pageSize * this.currentpage)
457
+ },
458
+
459
+
460
+ /**
461
+ * 切换当前页码
462
+ * @param {Number} val - 当前页码
463
+ */
464
+ handleCurrentChange(val)
465
+ {
466
+ this.currentpage = val
467
+ this.sj = this.searchsjall.slice(this.pageSize * (this.currentpage - 1), this.pageSize * this.currentpage)
468
+ },
469
+
470
+
471
+ /**
472
+ * 左键点击节点获取当前节点的右侧模块所有卡片数据
473
+ */
474
+ async getsj()
475
+ {
476
+ this.$processing.show()
477
+
478
+ let params = {
479
+ args: [['id', '>', 0, null], ['glid', 'in', this.nodeclickid.join(','), 'and']]
480
+ }
481
+ if (this.sortName)
482
+ params.orderby = `${this.sortName} desc`
483
+ this.sj = []
484
+ await cx.svr.data.query(window.$app.TabConst.kcmxb.major, window.$app.TabConst.kcmxb.minor, params).then(data =>
485
+ {
486
+ this.sj = []
487
+ this.kphcsj = []
488
+ this.searchsjall = []
489
+ if (data.length)
490
+ {
491
+ cx.svr.data.query(cx.consts.SYSTAB, cx.consts.TAB_MEDIA,
492
+ {
493
+ args: [['entityid', 'in', data.map(el => el.id).toString(), null],
494
+ ['major', '=', window.$app.TabConst.kcmxb.major, 'and'],
495
+ ['minor', '=', window.$app.TabConst.kcmxb.minor, 'and']]
496
+ }).then(fjsj =>
497
+ {
498
+ data.forEach(thedata =>
499
+ {
500
+ let img = fjsj.find(item => (item.entityid === thedata.id && item.bustype === '2' && cx.file.isImage(item.filename)))
501
+ let excel = fjsj.find(item => (item.entityid === thedata.id && cx.file.isDoc(item.filename)))
502
+ if (img)
503
+ {
504
+ thedata.src = cx.svr.doc.streamThumbnail({ id: img.id, width: 595, height: 842 })
505
+ thedata.srcId = img.id
506
+ thedata.kc_mst = img.title
507
+ }
508
+ if (excel)
509
+ {
510
+ thedata.excelId = excel.id
511
+ thedata.kc_msb = excel.title
512
+ }
513
+ })
514
+ this.kphcsj = [...data]
515
+ this.searchsjall = [...data]
516
+ this.sj = this.kphcsj.slice(this.pageSize * (this.currentpage - 1), this.pageSize * this.currentpage)
517
+ this.$processing.close()
518
+ }).catch(err =>
519
+ {
520
+ this.$processing.close()
521
+ this.onError(err)
522
+ })
523
+ }
524
+ else
525
+ this.$processing.close()
526
+ }).catch(err =>
527
+ {
528
+ this.$processing.close()
529
+ this.onError(err)
530
+ })
531
+ },
532
+
533
+
534
+ /**
535
+ * 右侧卡片搜索
536
+ */
537
+ onSearch2()
538
+ {
539
+ let cardSearch = this.cardSearch.filter(item => item.value)
540
+ if (this.cardSearch.length)
541
+ {
542
+ this.currentpage = 1
543
+ this.searchsjall = this.kphcsj.filter(item =>
544
+ {
545
+ for (let i = 0; i < cardSearch.length; i++)
546
+ {
547
+ if (!item[cardSearch[i].colname].includes(cardSearch[i].value))
548
+ return false
549
+ }
550
+ return true
551
+ })
552
+ this.sj = [...this.searchsjall.slice(this.pageSize * 0, this.pageSize * 1)]
553
+ }
554
+ else
555
+ {
556
+ this.currentpage = 1
557
+ this.searchsjall = [...this.kphcsj]
558
+ this.sj = this.kphcsj.slice(this.pageSize * (this.currentpage - 1), this.pageSize * this.currentpage)
559
+ }
560
+ },
561
+
562
+
563
+ /**
564
+ * 重置搜索
565
+ */
566
+ onResevel()
567
+ {
568
+ this.cardSearch.forEach(item =>
569
+ {
570
+ item.value = ''
571
+ })
572
+ this.onSearch2()
573
+ },
574
+
575
+
576
+ /**
577
+ * 左侧树搜索
578
+ */
579
+ onSearch()
580
+ {
581
+ this.$refs.tree.filter(this.leftkeyword)
582
+ },
583
+
584
+ /**
585
+ * 搜索节点时过滤节点
586
+ * @param {String} value - 搜索值
587
+ * @param {Object} data - 节点数据
588
+ * @returns {Boolean} 是否匹配
589
+ */
590
+ filterNode(value, data)
591
+ {
592
+ if (!value)
593
+ return true
594
+ return data.name.indexOf(value) !== -1
595
+ },
596
+
597
+
598
+ /**
599
+ * 获取要添加的目标节点
600
+ * @param {Object} item - 目标节点
601
+ * @param {Array} thedata - 树数据
602
+ * @returns {Array} 子节点数组
603
+ */
604
+ getmbsj(item, thedata)
605
+ {
606
+ let obj = ''
607
+ for (let i = 0; i < thedata.length; i++)
608
+ {
609
+ if (thedata[i].id === item.glid)
610
+ {
611
+ if (thedata[i].children)
612
+ return thedata[i].children
613
+ else
614
+ {
615
+ thedata[i].children = []
616
+ return thedata[i].children
617
+ }
618
+ }
619
+ else
620
+ {
621
+ if (thedata[i].children) // 有children说明有子节点,递归子节点找是否是目标节点父节点
622
+ obj = this.getmbsj(item, thedata[i].children)
623
+ }
624
+ if (obj)
625
+ return obj
626
+ }
627
+ return obj
628
+ },
629
+
630
+
631
+ /**
632
+ * 获取要删除的目标节点父节点
633
+ * @param {Object} item - 目标节点
634
+ * @param {Array} thedata - 树数据
635
+ * @returns {Object} 父节点
636
+ */
637
+ getmbfother(item, thedata)
638
+ {
639
+ let obj = ''
640
+ for (let i = 0; i < thedata.length; i++)
641
+ {
642
+ if (thedata[i].id === item.glid)
643
+ return thedata[i]
644
+ else
645
+ {
646
+ if (thedata[i].children) // 有children说明有子节点,递归子节点找是否是目标节点父节点
647
+ obj = this.getmbfother(item, thedata[i].children)
648
+ }
649
+ if (obj)
650
+ return obj
651
+ }
652
+ return obj
653
+ },
654
+
655
+
656
+ /**
657
+ * 树节点左击事件
658
+ * @param {Object} data - 节点数据
659
+ */
660
+ nodeclick(data)
661
+ {
662
+ this.getTabs(data)
663
+ this.nodeclicksj = data
664
+ this.nodeclickid = []
665
+ this.nodeclickid.push(this.nodeclicksj.id)
666
+ this.getallid(this.nodeclicksj)
667
+ this.getsj()
668
+ },
669
+
670
+
671
+ /**
672
+ * 标签点击事件
673
+ * @param {Object} data - 标签数据
674
+ */
675
+ tabClick(data)
676
+ {
677
+ for (let i = 0; i < this.editableTabs.length; i++)
678
+ {
679
+ if (this.editableTabs[i].name === data.props.name)
680
+ {
681
+ this.editableTabsValue = this.editableTabs[i].name
682
+ this.nodeclicksj = this.editableTabs[i].data
683
+ this.nodeclickid = []
684
+ this.nodeclickid.push(this.nodeclicksj.id)
685
+ this.getallid(this.nodeclicksj)
686
+ this.getsj()
687
+ break
688
+ }
689
+ }
690
+ },
691
+
692
+ /**
693
+ * 标签编辑事件
694
+ * @param {String} id - 标签ID
695
+ */
696
+ tabEdit(id)
697
+ {
698
+ for (let i = 0; i < this.editableTabs.length; i++)
699
+ {
700
+ if (this.editableTabs[i].name === id)
701
+ {
702
+ this.editableTabs.splice(i, 1)
703
+ if (this.editableTabs.length && this.editableTabsValue !== this.editableTabs[this.editableTabs.length - 1].name)
704
+ {
705
+ this.editableTabsValue = this.editableTabs[this.editableTabs.length - 1].name
706
+ this.nodeclicksj = this.editableTabs[this.editableTabs.length - 1].data
707
+ this.nodeclickid = []
708
+ this.nodeclickid.push(this.nodeclicksj.id)
709
+ this.getallid(this.nodeclicksj)
710
+ this.getsj()
711
+ }
712
+ break
713
+ }
714
+ }
715
+ },
716
+
717
+
718
+ /**
719
+ * 点击左侧树节点获取tabs数据
720
+ * @param {Object} data - 节点数据
721
+ */
722
+ getTabs(data)
723
+ {
724
+ let i
725
+ for (i = 0; i < this.editableTabs.length; i++)
726
+ {
727
+ if (this.editableTabs[i].name === data.id)
728
+ {
729
+ this.editableTabsValue = data.id
730
+ break
731
+ }
732
+ }
733
+ if (i === this.editableTabs.length)
734
+ {
735
+ this.editableTabsValue = data.id
736
+ this.editableTabs.push({
737
+ name: data.id,
738
+ title: data.name,
739
+ data: data,
740
+ content: ''
741
+ })
742
+ }
743
+ },
744
+
745
+
746
+ /**
747
+ * 点击当前节点获取当前节点及所有子节点id
748
+ * @param {Object} thedata - 节点数据
749
+ */
750
+ getallid(thedata)
751
+ {
752
+ if (thedata.children)
753
+ {
754
+ for (let i = 0; i < thedata.children.length; i++)
755
+ {
756
+ this.nodeclickid.push(thedata.children[i].id)
757
+ if (thedata.children[i].children)
758
+ this.getallid(thedata.children[i])
759
+ }
760
+ }
761
+ },
762
+
763
+
764
+ /**
765
+ * 在树空白区域鼠标右击出现的编辑和新增
766
+ */
767
+ contextClick()
768
+ {
769
+ this.clickHandler = () =>
770
+ {
771
+ if (this.meunshow)
772
+ this.meunshow = false
773
+ }
774
+ document.documentElement.addEventListener('click', this.clickHandler)
775
+ },
776
+
777
+
778
+ /**
779
+ * 双击触发展示新页面
780
+ * @param {Object} obj - 卡片数据
781
+ */
782
+ showGrp(obj)
783
+ {
784
+ this.obj = { ...obj }
785
+ this.obj.src = cx.svr.doc.stream({ id: obj.srcId })
786
+ this.obj.src2 = cx.svr.doc.stream({ id: obj.excelId })
787
+ this.syshow = false
788
+ },
789
+
790
+
791
+ /**
792
+ * 点击新增按钮触发事件
793
+ */
794
+ nameadd()
795
+ {
796
+ this.meunshow = false
797
+ if (this.addname === '矿床')
798
+ {
799
+ this.title2 = '矿床'
800
+ this.title = '矿床新增'
801
+ }
802
+ else
803
+ {
804
+ this.title2 = '矿种'
805
+ this.title = '矿种新增'
806
+ }
807
+ this.dlg.title = this.title
808
+ this.kcmc = ''
809
+ this.dialogVisible = true
810
+ },
811
+
812
+
813
+ /**
814
+ * 矿种按钮新增
815
+ */
816
+ kzadd()
817
+ {
818
+ this.title2 = '矿种'
819
+ this.nameadd()
820
+ },
821
+
822
+
823
+ /**
824
+ * 右击树节点触发
825
+ * @param {Event} event - 事件对象
826
+ * @param {Object} data - 节点数据
827
+ */
828
+ doubleclick(event, data)
829
+ {
830
+ this.doubleclickzt = true
831
+ this.nodeclickzt = false
832
+ this.menushow3 = true
833
+ this.kpshow = false
834
+ this.doubleclicksj = data
835
+ this.title2 = '矿床'
836
+ this.meunshow2 = true
837
+ if (data.glid === 0)
838
+ {
839
+ this.menushow3 = false
840
+ this.title2 = '矿种'
841
+ this.addname = '矿种'
842
+ }
843
+ // 二级节点
844
+ else if (data.glid === this.data[0].id)
845
+ {
846
+ this.addname = '矿床'
847
+ this.editname = '矿种'
848
+ }
849
+ // 三级节点新增卡片
850
+ else
851
+ {
852
+ this.meunshow2 = false
853
+ this.editname = '矿床'
854
+ this.kpshow = true
855
+ for (let i = 0; i < this.data[0].children.length; i++)
856
+ {
857
+ if (this.data[0].children[i].id === data.glid)
858
+ {
859
+ this.kzname = this.data[0].children[i].name
860
+ this.kclx = data.name
861
+ break
862
+ }
863
+ }
864
+ }
865
+ const menu = document.getElementsByClassName('menu')[0]
866
+ this.meunshow = true
867
+ menu.style.left = event.pageX + 'px'
868
+ menu.style.top = data.glid === 0 ? event.pageY + 'px' : event.pageY - 90 + 'px'
869
+ },
870
+
871
+
872
+ /**
873
+ * 点击编辑按钮触发事件
874
+ */
875
+ nameedit()
876
+ {
877
+ this.meunshow = false
878
+ if (this.editname === '矿床')
879
+ {
880
+ this.title2 = '矿床'
881
+ this.title = '矿床编辑'
882
+ }
883
+ else
884
+ {
885
+ this.title2 = '矿种'
886
+ this.title = '矿种编辑'
887
+ }
888
+ this.dlg.title = this.title
889
+ if (this.doubleclicksj)
890
+ this.kcmc = this.doubleclicksj.name
891
+ this.dialogVisible = true
892
+ },
893
+
894
+
895
+ /**
896
+ * 树节点新增
897
+ */
898
+ async kcadd()
899
+ {
900
+ let glid = 0
901
+ // this.doubleclicksj 有数据说明在当前节点下新增子节点
902
+ if (this.doubleclickzt && this.doubleclicksj)
903
+ glid = this.doubleclicksj.id
904
+ else if (this.nodeclickzt && this.nodeclicksj)
905
+ glid = this.nodeclicksj.id
906
+ // let search = await cx.svr.data.query(window.$app.TabConst.kcflb.major, window.$app.TabConst.kcflb.minor, { args: [['name', '=', this.kcmc, null]] })
907
+ // if (search.length)
908
+ // return this.$showMsg(`该${this.title2}类型已存在`, 'warning')
909
+ cx.svr.data.add(window.$app.TabConst.kcflb.major, window.$app.TabConst.kcflb.minor, { glid: glid, name: this.kcmc }, 1).then(item =>
910
+ {
911
+ if (this.doubleclickzt)
912
+ {
913
+ if (this.doubleclicksj)
914
+ {
915
+ if (this.doubleclicksj.children)
916
+ this.doubleclicksj.children.push({ id: item.id, glid: item.glid, name: item.name })
917
+ else
918
+ this.doubleclicksj.children = [{ id: item.id, glid: item.glid, name: item.name }]
919
+ }
920
+ else
921
+ this.data.push({ id: item.id, glid: item.glid, name: item.name })
922
+ }
923
+ else
924
+ {
925
+ if (this.nodeclicksj)
926
+ {
927
+ if (this.nodeclicksj.children)
928
+ this.nodeclicksj.children.push({ id: item.id, glid: item.glid, name: item.name })
929
+ else
930
+ this.nodeclicksj.children = [{ id: item.id, glid: item.glid, name: item.name }]
931
+ }
932
+ else
933
+ this.data.push({ id: item.id, glid: item.glid, name: item.name })
934
+ }
935
+ this.$showMsg('新增成功!', 'success')
936
+ this.dialogVisible = false
937
+ }).catch(err =>
938
+ {
939
+ this.onError(err)
940
+ })
941
+ },
942
+
943
+ /**
944
+ * 获取删除节点的所有子节点及当前节点
945
+ */
946
+ getChildren(ret, children)
947
+ {
948
+ for (let i = 0; i < ret.length; i++)
949
+ {
950
+ children.push(ret[i].id)
951
+ if (ret[i].children && ret[i].children.length)
952
+ this.getChildren(ret[i].children, children)
953
+ }
954
+ },
955
+
956
+
957
+ /**
958
+ * 树节点编辑
959
+ * @param {String} title - 标题
960
+ */
961
+ kcedit(title)
962
+ {
963
+ cx.svr.data.update(window.$app.TabConst.kcflb.major, window.$app.TabConst.kcflb.minor, { id: this.doubleclicksj.id, name: this.kcmc }, 'name', 1).then(item =>
964
+ {
965
+ this.doubleclicksj.name = item.name
966
+ this.$showMsg('编辑成功!', 'success')
967
+ this.dialogVisible = false
968
+ if (title === '矿床编辑')
969
+ {
970
+ cx.svr.data.query(window.$app.TabConst.kcmxb.major, window.$app.TabConst.kcmxb.minor, { args: [['glid', '=', this.doubleclicksj.id]] }).then(ret =>
971
+ {
972
+ if (ret.length)
973
+ {
974
+ let param =
975
+ {
976
+ id: ret.map(item => item.id).toString(),
977
+ kclx: new Array(ret.length).fill(this.kcmc).toString()
978
+ }
979
+ cx.svr.data.updates(window.$app.TabConst.kcmxb.major, window.$app.TabConst.kcmxb.minor, param)
980
+ .then(() =>
981
+ {
982
+ this.getsj()
983
+ })
984
+ }
985
+ })
986
+ }
987
+ }).catch(err =>
988
+ {
989
+ this.onError(err)
990
+ })
991
+ },
992
+
993
+
994
+ /**
995
+ * 删除节点
996
+ */
997
+ namedelete()
998
+ {
999
+ this.$cfmMsg(`确定彻底删除这条内容吗?`).then(() =>
1000
+ {
1001
+ let delIds = []
1002
+ delIds.push(this.doubleclicksj.id)
1003
+ if (this.doubleclicksj.children && this.doubleclicksj.children.length)
1004
+ this.getChildren(this.doubleclicksj.children, delIds)
1005
+ cx.svr.data.dels(window.$app.TabConst.kcflb.major, window.$app.TabConst.kcflb.minor, delIds.toString(), 1).then(item =>
1006
+ {
1007
+ cx.svr.data.query(window.$app.TabConst.kcmxb.major, window.$app.TabConst.kcmxb.minor, { args: [['glid', 'in', delIds.toString(), null]] }).then(ret =>
1008
+ {
1009
+ if (ret.length)
1010
+ cx.svr.data.dels(window.$app.TabConst.kcmxb.major, window.$app.TabConst.kcmxb.minor, ret.map(item => item.id).toString())
1011
+ })
1012
+ // 为0说明删除最上面节点
1013
+ if (this.doubleclicksj.glid === 0)
1014
+ {
1015
+ this.data = this.data.filter(item =>
1016
+ {
1017
+ return item.id !== this.doubleclicksj.id
1018
+ })
1019
+ }
1020
+ else
1021
+ {
1022
+ // 找到当前节点的父节点
1023
+ let fathersj = this.getmbfother(this.doubleclicksj, this.data)
1024
+ fathersj.children = fathersj.children.filter(item =>
1025
+ {
1026
+ return item.id !== this.doubleclicksj.id
1027
+ })
1028
+ }
1029
+ this.$showMsg('删除成功!', 'success')
1030
+ let show = this.getmbdelete(this.doubleclicksj, this.nodeclicksj)
1031
+ this.$nextTick(() =>
1032
+ {
1033
+ const firstNode = this.$refs.tree.$el.querySelector('.el-tree-node')
1034
+ if (firstNode && show) // 当前删除的节点是左键选中的节点或者选中节点的父节点,则自动点击第一个父节点
1035
+ {
1036
+ this.currentNodeKey = null
1037
+ this.$nextTick(() =>
1038
+ {
1039
+ // 自动点击
1040
+ if (this.data)
1041
+ {
1042
+ this.currentNodeKey = this.data[0].id
1043
+ this.nodeclick(this.data[0])
1044
+ }
1045
+ })
1046
+ }
1047
+ })
1048
+ this.dialogVisible = false
1049
+ })
1050
+ }).catch(err =>
1051
+ {
1052
+ this.onError(err)
1053
+ })
1054
+ },
1055
+
1056
+
1057
+ /**
1058
+ * 判断当前删除的节点是否是左键选中的节点或者选中节点的父节点
1059
+ * @param {Object} doubleclicksj - 右击节点数据
1060
+ * @param {Object} nodeclicksj - 左击节点数据
1061
+ * @returns {Boolean} 是否自动选中树第一个父节点
1062
+ */
1063
+ getmbdelete(doubleclicksj, nodeclicksj)
1064
+ {
1065
+ let retult = false
1066
+ if (nodeclicksj.id === doubleclicksj.id)
1067
+ retult = true
1068
+ else
1069
+ {
1070
+ if (doubleclicksj.children)
1071
+ {
1072
+ for (let i = 0; i < doubleclicksj.children.length; i++)
1073
+ {
1074
+ if (this.getmbdelete(doubleclicksj.children[i], nodeclicksj))
1075
+ return true
1076
+ }
1077
+ }
1078
+ }
1079
+ return retult
1080
+ },
1081
+
1082
+ /**
1083
+ * 根据属性查看实体
1084
+ * @private
1085
+ * @method
1086
+ * @param {Object} att 属性
1087
+ */
1088
+ _view(att)
1089
+ {
1090
+ if (!att)
1091
+ return
1092
+
1093
+ const params =
1094
+ {
1095
+ major: window.$app.TabConst.kcmxb.major,
1096
+ minor: window.$app.TabConst.kcmxb.minor,
1097
+ att,
1098
+ title: '属性查看',
1099
+ editable: false,
1100
+ viewDoc: true,
1101
+ onOk: (attNew, attOld) =>
1102
+ {
1103
+ return true
1104
+ }
1105
+ }
1106
+ cx.run.runPlug('AttEdit', params, { container: 'Home' })
1107
+ },
1108
+
1109
+ /**
1110
+ * 根据属性编辑实体
1111
+ * @private
1112
+ * @method
1113
+ * @param {Object} att 属性
1114
+ */
1115
+ _upd(att)
1116
+ {
1117
+ if (!att)
1118
+ return
1119
+
1120
+ const params =
1121
+ {
1122
+ major: window.$app.TabConst.kcmxb.major,
1123
+ minor: window.$app.TabConst.kcmxb.minor,
1124
+ thethis: this,
1125
+ att
1126
+ }
1127
+ cx.run.runPlug('ModelUpload', params, { uicfg: { width: 0.4, height: 0.7, modal: 1 }, namec: '编辑', container: 'Home' })
1128
+ },
1129
+
1130
+ /**
1131
+ * 提交-修改
1132
+ * @method
1133
+ * @param {Object} attNew 新属性
1134
+ * @param {Object} attOld 旧属性
1135
+ */
1136
+ submitUpd(attNew, attOld)
1137
+ {
1138
+ if (attNew.kclx === attOld.kclx)
1139
+ {
1140
+ return new Promise((resolve) =>
1141
+ {
1142
+ this.getsj()
1143
+ resolve(true)
1144
+ })
1145
+ }
1146
+ else
1147
+ {
1148
+ return new Promise((resolve) =>
1149
+ {
1150
+ cx.svr.data.query(window.$app.TabConst.kcflb.major, window.$app.TabConst.kcflb.minor, { args: [['name', '=', attNew.kclx, null]] }).then(ret =>
1151
+ {
1152
+ if (ret.length)
1153
+ {
1154
+ cx.svr.data.update(window.$app.TabConst.kcmxb.major, window.$app.TabConst.kcmxb.minor, { id: attNew.id, glid: ret[0].id }, 'glid', 1).then(() =>
1155
+ {
1156
+ this.getsj()
1157
+ resolve(true)
1158
+ })
1159
+ }
1160
+ else
1161
+ {
1162
+ this.getsj()
1163
+ resolve(true)
1164
+ }
1165
+ })
1166
+ })
1167
+ }
1168
+ },
1169
+
1170
+
1171
+ /**
1172
+ * 操作列按钮删除
1173
+ * @param {Object} obj - 卡片数据
1174
+ */
1175
+ contentdelete(obj)
1176
+ {
1177
+ this.$cfmMsg('确定删除选中数据吗?').then(() =>
1178
+ {
1179
+ this.$processing.show()
1180
+ cx.svr.data.dels(window.$app.TabConst.kcmxb.major, window.$app.TabConst.kcmxb.minor, obj.id).then(async ret =>
1181
+ {
1182
+ cx.svr.data.query(cx.consts.SYSTAB, cx.consts.TAB_MEDIA,
1183
+ {
1184
+ args: [['entityid', 'in', obj.id, null],
1185
+ ['major', '=', this.major, 'and'],
1186
+ ['minor', '=', this.minor, 'and']]
1187
+ }).then(res =>
1188
+ {
1189
+ if (res.length)
1190
+ cx.svr.data.dels(cx.consts.SYSTAB, cx.consts.TAB_MEDIA, res.map(el => el.id).toString())
1191
+ })
1192
+ await this.getsj()
1193
+ this.$processing.close()
1194
+ cx.base.showMsg('删除成功!', 'success')
1195
+ }).catch(err =>
1196
+ {
1197
+ this.onError(err)
1198
+ })
1199
+ })
1200
+ }
1201
+ }
1202
+ }
1203
+ </script>