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,496 @@
1
+ <style lang="scss" scoped>
2
+ </style>
3
+
4
+ <template>
5
+ <div class="cx-doclist" style="width: 100%; height: 100%;">
6
+ <Docitem v-for="doc in list"
7
+ :key="doc.id"
8
+ :doc="doc"
9
+ @doc-click="onDocClick"
10
+ @doc-view="onDocView"
11
+ @doc-download="onDocDownload"
12
+ @doc-edit="onDocEdit"
13
+ @doc-remove="onDocRemove"
14
+ />
15
+ <el-upload class="cx-uploader" style="width:fill-available"
16
+ v-if="showUpload"
17
+ drag
18
+ v-bind="uploadAttrs"
19
+ :action="url"
20
+ :multiple="multiple"
21
+ :show-file-list="false"
22
+ :before-upload="beforeUpload"
23
+ :on-success="onUpload"
24
+ >
25
+ <template v-slot:default>
26
+ <em>
27
+ <cx-icon :size="size" icon="cx-fi ic-upload upload-add" />
28
+ </em>
29
+ <div class="el-upload__text">
30
+ {{$loc('cx.uploader.dragOr')}}
31
+ <em>{{$loc('cx.uploader.clickToUpload')}}</em>
32
+ </div>
33
+ </template>
34
+ <template v-if="tip" v-slot:tip>
35
+ <div class="el-upload__tip">{{tip}}</div>
36
+ </template>
37
+ </el-upload>
38
+ </div>
39
+ </template>
40
+
41
+ <script>
42
+ /** 组件 - 附件列表(基于 HTTP)
43
+ *
44
+ * 调用说明:
45
+ * @prop {Boolean} [viewable = true] 是否可以浏览
46
+ * @prop {Boolean} [downloadable = true] 是否可以下载
47
+ * @prop {Boolean} [editable = false] 是否可以编辑
48
+ * @prop {Boolean} [removable = false] 是否可以删除
49
+ * @prop {Boolean} [uploadable = true] 是否可以上载
50
+ * @prop {String} [workflow = ''] 流程环节
51
+ * @prop {String} [bustype = ''] 文件的业务类型,对应cx_media表的bustype字段
52
+ * @prop {String} [saveto = FileSys] 文件存储(取值: FileSys - 文件系统, Doc - 存media表及后端确定存放方式(file / fastdfs / miniio))
53
+ * @prop {String} [dir] 存储的相对路径(当 saveto = FileSys 时生效,如果不设置,系统自动分配路径)(当 saveto = FileSys时,路径前面可以带文件系统根目录,不带则指向临时文件夹,如: data: tttt/, data: , :tttt/, : ,都是合法的)
54
+ * @prop {Function} [set-data] 设置参数 - function(data, file)
55
+ * @prop {Object} [uploadAttrs] 自定义传入el-upload组件的原生参数对象
56
+ *
57
+ * @event doc-click 点击文件-function(doc)
58
+ * @event doc-view 浏览文件-function(doc)
59
+ * @event doc-download 下载文件-function(doc)
60
+ * @event doc-edit 编辑文件-function(doc)
61
+ * @event doc-remove 删除文件-function(doc)
62
+ * @event doc-add 增加文件-function(doc)
63
+ *
64
+ * @param {Object} dir
65
+ * @param {String} dir.name 目录名
66
+ * @param {String} dir.to 面包屑的 to
67
+ */
68
+
69
+ /**
70
+ * 修改记录
71
+ * 22-06-20 张发勇 升级到 vue3/element-plus
72
+ * 23-08-14 高旭龙 新增uploadAttrs参数,用以传入el-upload组件的原生参数对象;支持根据传入的limit参数,动态控制文件多选状态和上传按钮显隐
73
+ * 23-08-15 张发勇 增加 event doc-add
74
+ * 23-09-02 张发勇 修改图标
75
+ * 23-09-09 张发勇 当临时文件保存之后,需要清除 isNew状态,否则有二次存的风险,增加函数 clearNew
76
+ * 23-11-16 高旭龙 新增bustype参数,支持对查询的附件根据bustype过滤,对应cx_media表的bustype字段
77
+ */
78
+
79
+ import Docitem from './unit/DocItem'
80
+
81
+ export default
82
+ {
83
+ components: { Docitem },
84
+ props:
85
+ {
86
+ viewable: { type: Boolean, default: true },
87
+ downloadable: { type: Boolean, default: true },
88
+ editable: { type: Boolean, default: false },
89
+ removable: { type: Boolean, default: false },
90
+ uploadable: { type: Boolean, default: true },
91
+ workflow: { type: String, default: '' },
92
+ bustype: { type: String, default: '' },
93
+ saveto: { type: String, default: cx.consts.SAVETO_FILESYS },
94
+ dir: { type: String, default: '' },
95
+ setData: { type: Function, default: null },
96
+ uploadAttrs: Object,
97
+ tip: { type: String, default: '' }
98
+ },
99
+
100
+ data()
101
+ {
102
+ return {
103
+ url: '', // 上载的URL
104
+ task: '', // 流程环节
105
+ tempFile: false, // 是否临时文件
106
+ list: [] // 文件列表
107
+ }
108
+ },
109
+
110
+ emits: ['doc-click', 'doc-edit', 'doc-remove', 'doc-add'],
111
+
112
+ computed:
113
+ {
114
+ // 限制上传文件的总数量
115
+ fileLimit()
116
+ {
117
+ return (this.uploadAttrs && this.uploadAttrs.limit) || 9999
118
+ },
119
+
120
+ // 根据传入的uploadAttrs参数对象中multiple和limit的值来确定是否支持多选
121
+ multiple()
122
+ {
123
+ return this.uploadAttrs && this.uploadAttrs.multiple && this.fileLimit !== 1
124
+ },
125
+
126
+ // 是否显示上传按钮
127
+ showUpload()
128
+ {
129
+ return this.uploadable && this.list.length < this.fileLimit
130
+ }
131
+ },
132
+
133
+ created()
134
+ {
135
+ // 增加属性
136
+ this.majDoc = cx.consts.SYSTAB
137
+ this.minDoc = cx.consts.TAB_MEDIA
138
+ this.major = 0
139
+ this.minor = 0
140
+ this.entityid = 0
141
+ this.task = this.workflow
142
+
143
+ // 临时文件
144
+ // eslint-disable-next-line
145
+ if (this.saveto == cx.consts.SAVETO_FILESYS && !this.dir)
146
+ this.tempFile = true
147
+ },
148
+
149
+ methods:
150
+ {
151
+ // 设置上载的URL
152
+ urlUpload(file)
153
+ {
154
+ const self = this
155
+ const params =
156
+ {
157
+ major: self.major,
158
+ minor: self.minor,
159
+ entityid: self.entityid,
160
+ saveto: self.saveto,
161
+ dir: self.dir ? self.dir : '',
162
+ memo: ''
163
+ }
164
+ if (self.task)
165
+ params.task = self.task
166
+ if (self.setData)
167
+ self.setData(params, file)
168
+ self.url = cx.svr.upload.url(params)
169
+ },
170
+
171
+ /**
172
+ * 初始化对象
173
+ * @method
174
+ * @param {Object} options 参数
175
+ * @param {Number} options.major 实体主类型
176
+ * @param {Number} options.minor 实体子类型
177
+ * @param {Number} options.entityid 实体id,为0时文件上传在临时目录
178
+ * @param {String} [options.task] 流程结点
179
+ * @param {String} [options.bustype] 流程中的业务类型
180
+ */
181
+ init(options)
182
+ {
183
+ const self = this
184
+ self.major = options.major
185
+ self.minor = options.minor
186
+ self.entityid = options.entityid
187
+ self.task = cx.base.defVal(options.task, self.task)
188
+ const bustype = cx.base.defVal(options.bustype, this.bustype)
189
+
190
+ // 取数据
191
+ if (options.entityid > 0)
192
+ {
193
+ // 构造条件查询表达式
194
+ const args = [['major', '=', options.major], ['minor', '=', options.minor, 'and'], ['entityid', '=', options.entityid, 'and']]
195
+
196
+ if (options.task)
197
+ args.push(['task', '=', options.task, 'and'])
198
+ if (bustype)
199
+ args.push(['bustype', '=', bustype, 'and'])
200
+
201
+ cx.svr.data.query(self.majDoc, self.minDoc, { args })
202
+ .then(ret =>
203
+ {
204
+ self.setFiles(ret)
205
+ })
206
+ .catch(self.onError)
207
+ }
208
+ },
209
+
210
+ /**
211
+ * 设置流程环节
212
+ * @method
213
+ * @param {String} task 流程环节
214
+ */
215
+ setTask(task)
216
+ {
217
+ this.task = task
218
+ },
219
+
220
+ /**
221
+ * 设置已有文件列表
222
+ * @method
223
+ * @param {Array} files 文件列表
224
+ */
225
+ setFiles(files)
226
+ {
227
+ // 排序
228
+ cx.util.sortNum(files, 'id')
229
+
230
+ // 把文件加进去
231
+ for (let i = 0; i < files.length; i++)
232
+ {
233
+ files[i].isNew = false
234
+ files[i].tempFile = false
235
+ files[i].viewable = this.viewable
236
+ files[i].downloadable = this.downloadable
237
+ files[i].editable = this.editable
238
+ files[i].removable = (!this.task || files[i].task === this.task)
239
+ this.add(files[i])
240
+ }
241
+ },
242
+
243
+ /**
244
+ * 增加一个文件
245
+ * @method
246
+ * @param {Object} doc 文件信息
247
+ * @param {Number} doc.id 文件ID
248
+ * @param {String} doc.title 文件标题
249
+ * @param {String} doc.filename 文件名
250
+ * @param {String} [doc.task] 流程环节
251
+ * @param {Boolean} [doc.isNew = false] 是否新文件
252
+ * @param {Boolean} [doc.tempFile = false] 是否临时文件
253
+ * @param {Boolean} [doc.viewable = false] 是否可预览
254
+ * @param {Boolean} [doc.downloadable = false] 是否可下载
255
+ * @param {Boolean} [doc.editable = false] 是否可编辑
256
+ * @param {Boolean} [doc.removable = false] 是否可删除
257
+ */
258
+ add(doc)
259
+ {
260
+ doc.isNew = !!doc.isNew
261
+ doc.tempFile = !!doc.tempFile
262
+ doc.viewable = this.viewable && !!doc.viewable
263
+ doc.downloadable = this.downloadable && !!doc.downloadable
264
+ doc.editable = this.editable && !!doc.editable
265
+ doc.removable = this.removable && !!doc.removable
266
+
267
+ this.list.push(doc)
268
+ },
269
+
270
+ /**
271
+ * 上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传。
272
+ * @method
273
+ * @param {file} file 文件对象
274
+ */
275
+ beforeUpload(file)
276
+ {
277
+ this.urlUpload(file)
278
+ },
279
+
280
+ /**
281
+ * 回调函数-上载成功
282
+ * @method
283
+ * @param {Object} response http返回对象
284
+ * @param {Object} file 文件信息
285
+ * @param {Array} fileList 文件列表
286
+ */
287
+ onUpload(response, file, fileList)
288
+ {
289
+ const self = this
290
+ const ret = response
291
+ if (ret.ret !== 0)
292
+ {
293
+ this.$showRet(ret)
294
+ return
295
+ }
296
+ if (ret.ret === 0)
297
+ {
298
+ const data = ret.data[0]
299
+ const doc =
300
+ {
301
+ filename: data.filename,
302
+ isNew: 1,
303
+ // eslint-disable-next-line
304
+ tempFile: self.saveto == cx.consts.SAVETO_FILESYS,
305
+ editable: self.editable,
306
+ downloadable: self.downloadable,
307
+ removable: 1,
308
+ viewable: self.viewable,
309
+ task: self.task,
310
+ bustype: this.bustype
311
+ }
312
+ let doc1
313
+
314
+ // 临时文件
315
+ if (self.tempFile)
316
+ {
317
+ doc1 =
318
+ {
319
+ id: cx.base.nextId(),
320
+ title: file.name,
321
+ filelength: file.size
322
+ }
323
+ }
324
+ else
325
+ {
326
+ doc1 =
327
+ {
328
+ id: data.id,
329
+ title: data.title,
330
+ filelength: data.filelength
331
+ }
332
+ }
333
+
334
+ cx.base.extend(doc, doc1)
335
+ self.list.push(doc)
336
+ this.$emit('doc-add', doc)
337
+ }
338
+ },
339
+
340
+ /**
341
+ * 消息响应函数-点击
342
+ * @method
343
+ * @param {Object} doc 文件信息
344
+ */
345
+ onDocClick(doc)
346
+ {
347
+ this.$emit('doc-click', doc)
348
+ },
349
+
350
+ /**
351
+ * 消息响应函数-浏览
352
+ * @method
353
+ * @param {Object} doc 文件信息
354
+ */
355
+ onDocView(doc)
356
+ {
357
+ const filetype = cx.file.getFileType(doc.filename)
358
+ const src = doc.tempFile ? cx.svr.file.urlStream({ filename: doc.filename }) : cx.svr.doc.urlStream({ id: doc.id })
359
+ cx.run.runPlug('FileView', { data: { src, filetype } })
360
+ },
361
+
362
+ /**
363
+ * 消息响应函数-下载
364
+ * @method
365
+ * @param {Object} doc 文件信息
366
+ */
367
+ onDocDownload(doc)
368
+ {
369
+ if (doc.tempFile)
370
+ cx.svr.file.download({ filename: doc.filename, saveas: doc.title })
371
+ else
372
+ cx.svr.doc.download({ id: doc.id, saveas: doc.title })
373
+ },
374
+
375
+ /**
376
+ * 消息响应函数-编辑
377
+ * @method
378
+ * @param {Object} doc 文件信息
379
+ */
380
+ onDocEdit(doc)
381
+ {
382
+ if (doc.tempFile)
383
+ return
384
+
385
+ const self = this
386
+ const fldMemo = $g.field.getFld2(self.majDoc, self.minDoc, 'memo')
387
+ const items =
388
+ [
389
+ {
390
+ isnum: 0,
391
+ colname: 'memo',
392
+ title: fldMemo ? fldMemo._label : 'memo',
393
+ value: doc.memo,
394
+ minlen: '1',
395
+ nullable: 0
396
+ }
397
+ ]
398
+
399
+ const onOk = values =>
400
+ {
401
+ const self = this
402
+ const params =
403
+ {
404
+ id: doc.id,
405
+ memo: values.memo
406
+ }
407
+ return cx.svr.data.update(self.majDoc, self.minDoc, params, 'memo')
408
+ .then(ret =>
409
+ {
410
+ doc.memo = params.memo
411
+ self.$emit('doc-edit', doc)
412
+
413
+ self.$showSuccess('edit')
414
+
415
+ return true
416
+ })
417
+ .catch(self.onError)
418
+ }
419
+
420
+ cx.run.runPlug('Input1', { items, onOk })
421
+ },
422
+
423
+ /**
424
+ * 消息响应函数-删除
425
+ * @method
426
+ * @param {Object} doc 文件信息
427
+ */
428
+ onDocRemove(doc)
429
+ {
430
+ const self = this
431
+ self.$cfm('del')
432
+ .then(() =>
433
+ {
434
+ const aftDel = () =>
435
+ {
436
+ cx.array.removeElement(self.list, doc)
437
+ self.$emit('doc-remove', doc)
438
+ }
439
+
440
+ // 归档文件,真的删除;临时文件,不需要处理,后台自动删除
441
+ if (!doc.tempFile)
442
+ {
443
+ // eslint-disable-next-line
444
+ if (self.saveto == cx.consts.SAVETO_FILESYS)
445
+ {
446
+ cx.svr.file.delFile({ filename: doc.filename })
447
+ .then(aftDel)
448
+ .catch(self.onError)
449
+ }
450
+ else
451
+ {
452
+ cx.svr.doc.del({ id: doc.id })
453
+ .then(aftDel)
454
+ .catch(self.onError)
455
+ }
456
+ }
457
+ else
458
+ aftDel()
459
+ })
460
+ .catch(() =>
461
+ {
462
+ })
463
+ },
464
+
465
+ /**
466
+ * 取所有新文件列表
467
+ * @method
468
+ * @returns {Array}
469
+ */
470
+ getFilesNew()
471
+ {
472
+ const ret = []
473
+
474
+ for (let doc of this.list)
475
+ {
476
+ if (doc.isNew)
477
+ ret.push(doc)
478
+ }
479
+ return ret
480
+ },
481
+
482
+ /**
483
+ * 清除文件的 isNew 状态
484
+ * @method
485
+ */
486
+ clearNew()
487
+ {
488
+ for (let doc of this.list)
489
+ {
490
+ if (doc.isNew)
491
+ doc.isNew = false
492
+ }
493
+ }
494
+ }
495
+ }
496
+ </script>
@@ -0,0 +1,137 @@
1
+ <style lang="scss" scoped>
2
+ </style>
3
+
4
+ <template>
5
+ <div class="doc-item" ref="item"
6
+ @click="onClick"
7
+ >
8
+ <div class="doc-title"
9
+ :class="{over: mouseover}"
10
+ >
11
+ {{titleTask}}
12
+ <br>
13
+ {{doc.title}}
14
+ </div>
15
+ <div class="doc-cmdbar" ref="cmdbar"
16
+ :class="{hide: !mouseover}"
17
+ >
18
+ <div v-if="doc.viewable" class="doc-cmd"><cx-icon icon="cx-fi ic-checkCircle" :size="size" @click="onView"/></div>
19
+ <div v-if="doc.downloadable" class="doc-cmd"><cx-icon icon="cx-fi ic-download" :size="size" @click="onDownload"/></div>
20
+ <div v-if="doc.editable && !doc.tempFile" class="doc-cmd"><cx-icon icon="cx-fi ic-edit" :size="size" @click="onEdit"/></div>
21
+ <div v-if="doc.removable" class="doc-cmd"><cx-icon icon="cx-fi ic-deleteCircle" :size="size" @click="onRemove"/></div>
22
+ </div>
23
+ </div>
24
+ </template>
25
+
26
+ <script>
27
+ /**
28
+ * 组件 - 附件项
29
+ *
30
+ * 调用说明:
31
+ * @prop {Object} doc 文件信息
32
+ *
33
+ * @event doc-click 点击文档 - function(doc)
34
+ * @event doc-view 预览文档 - function(doc)
35
+ * @event doc-download 下载文档 - function(doc)
36
+ * @event doc-edit 编辑文档 - function(doc)
37
+ * @event doc-remove 删除文档 - function(doc)
38
+ *
39
+ * 参数说明:
40
+ * @param {Object} doc 文件信息
41
+ * @param {String} doc.title 标题
42
+ * @param {String} [doc.task] 流程环节
43
+ * @param {Boolean} [doc.viewable = false] 是否可以浏览
44
+ * @param {Boolean} [doc.downloadable = false] 是否可以浏览
45
+ * @param {Boolean} [doc.editable = false] 是否可以编辑
46
+ * @param {Boolean} [doc.removable = false] 是否可以删除
47
+ */
48
+
49
+ /**
50
+ * 修改记录
51
+ * 22-06-20 张发勇 升级到 vue3/element-plus
52
+ */
53
+
54
+ export default
55
+ {
56
+ mixins: [cx.mixin.IComBase],
57
+ props:
58
+ {
59
+ doc: { Type: Object, required: true }
60
+ },
61
+
62
+ data()
63
+ {
64
+ return {
65
+ mouseover: false
66
+ }
67
+ },
68
+
69
+ emits: ['doc-click', 'doc-view', 'doc-download', 'doc-edit', 'doc-remove'],
70
+
71
+ computed:
72
+ {
73
+ titleTask()
74
+ {
75
+ let ret = ''
76
+
77
+ if (this.doc.task)
78
+ ret = this.doc.task
79
+ if (!ret && this.doc.memo)
80
+ ret = this.doc.memo
81
+
82
+ return ret ? '【' + ret + '】' : ''
83
+ }
84
+ },
85
+
86
+ mounted()
87
+ {
88
+ const item = this.$refs.item
89
+ const cmdbar = this.$refs.cmdbar
90
+
91
+ if (item && cmdbar)
92
+ {
93
+ item.onmouseenter = () =>
94
+ {
95
+ this.mouseover = true
96
+ }
97
+ item.onmouseleave = () =>
98
+ {
99
+ this.mouseover = false
100
+ }
101
+ }
102
+ },
103
+
104
+ methods:
105
+ {
106
+ // 点击
107
+ onClick()
108
+ {
109
+ this.$emit('doc-click', this.doc)
110
+ },
111
+
112
+ // 浏览
113
+ onView()
114
+ {
115
+ this.$emit('doc-view', this.doc)
116
+ },
117
+
118
+ // 下载
119
+ onDownload()
120
+ {
121
+ this.$emit('doc-download', this.doc)
122
+ },
123
+
124
+ // 编辑
125
+ onEdit()
126
+ {
127
+ this.$emit('doc-edit', this.doc)
128
+ },
129
+
130
+ // 删除
131
+ onRemove()
132
+ {
133
+ this.$emit('doc-remove', this.doc)
134
+ }
135
+ }
136
+ }
137
+ </script>