n20-common-lib 1.3.8 → 1.3.11

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 (263) hide show
  1. package/nstc-g6/assets/svg/404.svg +1 -0
  2. package/nstc-g6/assets/svg/addFile.svg +32 -0
  3. package/nstc-g6/assets/svg/bug.svg +1 -0
  4. package/nstc-g6/assets/svg/chart.svg +1 -0
  5. package/nstc-g6/assets/svg/clipboard.svg +1 -0
  6. package/nstc-g6/assets/svg/component.svg +1 -0
  7. package/nstc-g6/assets/svg/dashboard.svg +1 -0
  8. package/nstc-g6/assets/svg/deleteFile.svg +28 -0
  9. package/nstc-g6/assets/svg/documentation.svg +1 -0
  10. package/nstc-g6/assets/svg/drag.svg +1 -0
  11. package/nstc-g6/assets/svg/edit.svg +1 -0
  12. package/nstc-g6/assets/svg/education.svg +1 -0
  13. package/nstc-g6/assets/svg/email.svg +1 -0
  14. package/nstc-g6/assets/svg/example.svg +1 -0
  15. package/nstc-g6/assets/svg/excel.svg +1 -0
  16. package/nstc-g6/assets/svg/exit-fullscreen.svg +1 -0
  17. package/nstc-g6/assets/svg/eye-open.svg +1 -0
  18. package/nstc-g6/assets/svg/eye.svg +1 -0
  19. package/nstc-g6/assets/svg/favorite.svg +1 -0
  20. package/nstc-g6/assets/svg/favorite_active.svg +1 -0
  21. package/nstc-g6/assets/svg/favorite_x400.svg +1 -0
  22. package/nstc-g6/assets/svg/favorite_x400_active.svg +1 -0
  23. package/nstc-g6/assets/svg/favorite_x400_blank.svg +1 -0
  24. package/nstc-g6/assets/svg/filter.svg +16 -0
  25. package/nstc-g6/assets/svg/filter@2x.png +0 -0
  26. package/nstc-g6/assets/svg/filterActive.svg +16 -0
  27. package/nstc-g6/assets/svg/filterClose@2x.png +0 -0
  28. package/nstc-g6/assets/svg/form.svg +1 -0
  29. package/nstc-g6/assets/svg/fullscreen.svg +1 -0
  30. package/nstc-g6/assets/svg/guide.svg +1 -0
  31. package/nstc-g6/assets/svg/hourglass.svg +19 -0
  32. package/nstc-g6/assets/svg/icon.svg +1 -0
  33. package/nstc-g6/assets/svg/international.svg +1 -0
  34. package/nstc-g6/assets/svg/language.svg +1 -0
  35. package/nstc-g6/assets/svg/left-dis.svg +1 -0
  36. package/nstc-g6/assets/svg/left.svg +1 -0
  37. package/nstc-g6/assets/svg/link.svg +1 -0
  38. package/nstc-g6/assets/svg/list.svg +1 -0
  39. package/nstc-g6/assets/svg/lock.svg +1 -0
  40. package/nstc-g6/assets/svg/message-t.svg +1 -0
  41. package/nstc-g6/assets/svg/money.svg +1 -0
  42. package/nstc-g6/assets/svg/money3.svg +1 -0
  43. package/nstc-g6/assets/svg/money4.svg +1 -0
  44. package/nstc-g6/assets/svg/moneyTwo.svg +1 -0
  45. package/nstc-g6/assets/svg/msg_white.svg +1 -0
  46. package/nstc-g6/assets/svg/nested.svg +1 -0
  47. package/nstc-g6/assets/svg/newsearch.svg +19 -0
  48. package/nstc-g6/assets/svg/password.svg +1 -0
  49. package/nstc-g6/assets/svg/pdf.svg +1 -0
  50. package/nstc-g6/assets/svg/people.svg +1 -0
  51. package/nstc-g6/assets/svg/peoples.svg +1 -0
  52. package/nstc-g6/assets/svg/phone.svg +1 -0
  53. package/nstc-g6/assets/svg/phone_msg.svg +1 -0
  54. package/nstc-g6/assets/svg/qq.svg +1 -0
  55. package/nstc-g6/assets/svg/right-dis.svg +1 -0
  56. package/nstc-g6/assets/svg/right.svg +1 -0
  57. package/nstc-g6/assets/svg/search.svg +1 -0
  58. package/nstc-g6/assets/svg/searchActive.svg +19 -0
  59. package/nstc-g6/assets/svg/shopping.svg +1 -0
  60. package/nstc-g6/assets/svg/size.svg +1 -0
  61. package/nstc-g6/assets/svg/skill.svg +1 -0
  62. package/nstc-g6/assets/svg/star.svg +1 -0
  63. package/nstc-g6/assets/svg/steam.svg +1 -0
  64. package/nstc-g6/assets/svg/tab.svg +1 -0
  65. package/nstc-g6/assets/svg/table.svg +1 -0
  66. package/nstc-g6/assets/svg/theme.svg +1 -0
  67. package/nstc-g6/assets/svg/tree-table.svg +1 -0
  68. package/nstc-g6/assets/svg/tree.svg +1 -0
  69. package/nstc-g6/assets/svg/user.svg +1 -0
  70. package/nstc-g6/assets/svg/wechat.svg +1 -0
  71. package/nstc-g6/assets/svg/z-left-2-dis.svg +1 -0
  72. package/nstc-g6/assets/svg/z-left-2.svg +1 -0
  73. package/nstc-g6/assets/svg/z-right-2-dis.svg +1 -0
  74. package/nstc-g6/assets/svg/z-right-2.svg +1 -0
  75. package/nstc-g6/assets/svg/z-right.svg +1 -0
  76. package/nstc-g6/assets/svg/zip.svg +1 -0
  77. package/nstc-g6/components/Calendar/index.js +8 -0
  78. package/nstc-g6/components/Calendar/src/basic/month-table.vue +129 -0
  79. package/nstc-g6/components/Calendar/src/basic/year-table.vue +126 -0
  80. package/nstc-g6/components/Calendar/src/main.vue +442 -0
  81. package/nstc-g6/components/DialogForm/index.js +8 -0
  82. package/nstc-g6/components/DialogForm/src/demo/index.vue +56 -0
  83. package/nstc-g6/components/DialogForm/src/main.vue +189 -0
  84. package/nstc-g6/components/Form/A_DEMO/component/originalForm.vue +281 -0
  85. package/nstc-g6/components/Form/A_DEMO/config/config_3.js +1222 -0
  86. package/nstc-g6/components/Form/A_DEMO/index.vue +803 -0
  87. package/nstc-g6/components/Form/AutocompleteCustom/index.vue +72 -0
  88. package/nstc-g6/components/Form/BusinessSpecific/InputMultiple.vue +191 -0
  89. package/nstc-g6/components/Form/BusinessSpecific/InputWithUnit.vue +128 -0
  90. package/nstc-g6/components/Form/BusinessSpecific/SelectTreeDialog.vue +233 -0
  91. package/nstc-g6/components/Form/BusinessSpecific/readme.md +7 -0
  92. package/nstc-g6/components/Form/CascaderCustom/index.vue +101 -0
  93. package/nstc-g6/components/Form/CheckboxCustom/index.vue +84 -0
  94. package/nstc-g6/components/Form/Component.vue +661 -0
  95. package/nstc-g6/components/Form/ComponentSecond.vue +650 -0
  96. package/nstc-g6/components/Form/DatepickerCustom/index.vue +130 -0
  97. package/nstc-g6/components/Form/InputAndDialog/index.js +15 -0
  98. package/nstc-g6/components/Form/InputAndDialog/src/main.vue +395 -0
  99. package/nstc-g6/components/Form/InputCustom/demo/index.vue +65 -0
  100. package/nstc-g6/components/Form/InputCustom/index.vue +307 -0
  101. package/nstc-g6/components/Form/IntervalinputCustom/demo/index.vue +31 -0
  102. package/nstc-g6/components/Form/IntervalinputCustom/index.vue +118 -0
  103. package/nstc-g6/components/Form/Item.vue +330 -0
  104. package/nstc-g6/components/Form/ItemSecond.vue +269 -0
  105. package/nstc-g6/components/Form/List.vue +146 -0
  106. package/nstc-g6/components/Form/ListSecond.vue +130 -0
  107. package/nstc-g6/components/Form/RadioCustom/index.vue +73 -0
  108. package/nstc-g6/components/Form/SelectAccount/index.js +15 -0
  109. package/nstc-g6/components/Form/SelectAccount/src/demo/index.vue +58 -0
  110. package/nstc-g6/components/Form/SelectAccount/src/main.vue +283 -0
  111. package/nstc-g6/components/Form/SelectAndDialog/index.js +15 -0
  112. package/nstc-g6/components/Form/SelectAndDialog/src/main.vue +384 -0
  113. package/nstc-g6/components/Form/SelectCashFlow/index.js +15 -0
  114. package/nstc-g6/components/Form/SelectCashFlow/src/demo/index.vue +42 -0
  115. package/nstc-g6/components/Form/SelectCashFlow/src/main.vue +126 -0
  116. package/nstc-g6/components/Form/SelectCustom/demo/index.vue +82 -0
  117. package/nstc-g6/components/Form/SelectCustom/index.vue +488 -0
  118. package/nstc-g6/components/Form/SelectSubject/index.js +15 -0
  119. package/nstc-g6/components/Form/SelectSubject/src/demo/index.vue +85 -0
  120. package/nstc-g6/components/Form/SelectSubject/src/main.vue +182 -0
  121. package/nstc-g6/components/Form/SelectindialogCustom/demo/index.vue +188 -0
  122. package/nstc-g6/components/Form/SelectindialogCustom/index.vue +650 -0
  123. package/nstc-g6/components/Form/SelectindialogCustom/install.js +7 -0
  124. package/nstc-g6/components/Form/TableRadioCustom/demo/index.vue +53 -0
  125. package/nstc-g6/components/Form/TableRadioCustom/index.vue +183 -0
  126. package/nstc-g6/components/Form/TextCustom/index.vue +38 -0
  127. package/nstc-g6/components/Form/UploadCustom/demo/index.vue +31 -0
  128. package/nstc-g6/components/Form/UploadCustom/iconxitongshezhi-yichu.png +0 -0
  129. package/nstc-g6/components/Form/UploadCustom/index.vue +506 -0
  130. package/nstc-g6/components/Form/configs.js +191 -0
  131. package/nstc-g6/components/Form/configsSecond.js +161 -0
  132. package/nstc-g6/components/Form/index.js +8 -0
  133. package/nstc-g6/components/Form/index.scss +29 -0
  134. package/nstc-g6/components/Form/payeePersonSelect/index.js +15 -0
  135. package/nstc-g6/components/Form/payeePersonSelect/src/demo/index.vue +164 -0
  136. package/nstc-g6/components/Form/payeePersonSelect/src/main.vue +185 -0
  137. package/nstc-g6/components/Form/readme.txt +4 -0
  138. package/nstc-g6/components/FormGroup/index.js +8 -0
  139. package/nstc-g6/components/FormGroup/src/demo/config.js +23 -0
  140. package/nstc-g6/components/FormGroup/src/demo/index.vue +85 -0
  141. package/nstc-g6/components/FormGroup/src/main.vue +639 -0
  142. package/nstc-g6/components/FormGroup/src/validate.js +23 -0
  143. package/nstc-g6/components/InputTag/InputTag.vue +270 -0
  144. package/nstc-g6/components/NstcApprovel/NstcApprovel.vue +24 -0
  145. package/nstc-g6/components/NstcBackToTop/NstcBackToTop.vue +150 -0
  146. package/nstc-g6/components/NstcBranchLazyLoad/NstcBranchLazyLoad.vue +123 -0
  147. package/nstc-g6/components/NstcCharts/NstcCharts.vue +162 -0
  148. package/nstc-g6/components/NstcCharts/define.js +74 -0
  149. package/nstc-g6/components/NstcCharts/mixins/resize.js +56 -0
  150. package/nstc-g6/components/NstcConfirm/NstcConfirm.vue +152 -0
  151. package/nstc-g6/components/NstcConfirm/index.js +25 -0
  152. package/nstc-g6/components/NstcDialog/NstcDialog.vue +185 -0
  153. package/nstc-g6/components/NstcDialogForm/NstcDialogForm.vue +176 -0
  154. package/nstc-g6/components/NstcDialogTable/NstcDialogTable.vue +280 -0
  155. package/nstc-g6/components/NstcDropdown/NstcDropdown.vue +52 -0
  156. package/nstc-g6/components/NstcDropdownTree/NstcDropdownTree.vue +396 -0
  157. package/nstc-g6/components/NstcElectronicFile/NstcElectronicFile.vue +591 -0
  158. package/nstc-g6/components/NstcExcelCustomImport/NstcExcelCustomImport.vue +475 -0
  159. package/nstc-g6/components/NstcExcelCustomImport/img/upload@2x.png +0 -0
  160. package/nstc-g6/components/NstcExcelExport/NstcExcelExport.vue +145 -0
  161. package/nstc-g6/components/NstcExcelImport/NstcExcelImport.vue +1074 -0
  162. package/nstc-g6/components/NstcExcelImport/img/upload@2x.png +0 -0
  163. package/nstc-g6/components/NstcExcelImportN/NstcExcelImportN.vue +1166 -0
  164. package/nstc-g6/components/NstcExpandCollapse/NstcExpandCollapse.vue +130 -0
  165. package/nstc-g6/components/NstcExpandCollapse/index.scss +77 -0
  166. package/nstc-g6/components/NstcFileUpload/NstcFileUpload.vue +989 -0
  167. package/nstc-g6/components/NstcFileUpload/img/addFile.svg +32 -0
  168. package/nstc-g6/components/NstcFileUpload/img/delete.svg +24 -0
  169. package/nstc-g6/components/NstcFileUpload/img/deleteFile.svg +28 -0
  170. package/nstc-g6/components/NstcFileUpload/img/download.svg +24 -0
  171. package/nstc-g6/components/NstcFileUpload/img/inputUpload.svg +30 -0
  172. package/nstc-g6/components/NstcFileUpload/img/look-diabled.svg +24 -0
  173. package/nstc-g6/components/NstcFileUpload/img/look.svg +24 -0
  174. package/nstc-g6/components/NstcForm/A_DEMO/component/originalForm.vue +281 -0
  175. package/nstc-g6/components/NstcForm/A_DEMO/config/config_3.js +1222 -0
  176. package/nstc-g6/components/NstcForm/A_DEMO/index.vue +796 -0
  177. package/nstc-g6/components/NstcForm/AutocompleteCustom/index.vue +68 -0
  178. package/nstc-g6/components/NstcForm/BusinessSpecific/InputMultiple.vue +189 -0
  179. package/nstc-g6/components/NstcForm/BusinessSpecific/InputWithUnit.vue +128 -0
  180. package/nstc-g6/components/NstcForm/BusinessSpecific/SelectTreeDialog.vue +233 -0
  181. package/nstc-g6/components/NstcForm/BusinessSpecific/readme.md +7 -0
  182. package/nstc-g6/components/NstcForm/CascaderCustom/index.vue +101 -0
  183. package/nstc-g6/components/NstcForm/CheckboxCustom/index.vue +84 -0
  184. package/nstc-g6/components/NstcForm/Component.vue +684 -0
  185. package/nstc-g6/components/NstcForm/ComponentSecond.vue +650 -0
  186. package/nstc-g6/components/NstcForm/DatepickerCustom/index.vue +130 -0
  187. package/nstc-g6/components/NstcForm/InputAndDialog/NstcInputAndDialog.vue +389 -0
  188. package/nstc-g6/components/NstcForm/InputCustom/index.vue +314 -0
  189. package/nstc-g6/components/NstcForm/IntervalInputCustom/index.vue +116 -0
  190. package/nstc-g6/components/NstcForm/Item.vue +327 -0
  191. package/nstc-g6/components/NstcForm/ItemSecond.vue +269 -0
  192. package/nstc-g6/components/NstcForm/List.vue +146 -0
  193. package/nstc-g6/components/NstcForm/ListSecond.vue +130 -0
  194. package/nstc-g6/components/NstcForm/RadioCustom/index.vue +73 -0
  195. package/nstc-g6/components/NstcForm/SelectAccount/NstcSelectAccount.vue +334 -0
  196. package/nstc-g6/components/NstcForm/SelectAndDialog/NstcSelectAndDialog.vue +377 -0
  197. package/nstc-g6/components/NstcForm/SelectCashFlow/NstcSelectCashFlow.vue +123 -0
  198. package/nstc-g6/components/NstcForm/SelectCustom/index.vue +460 -0
  199. package/nstc-g6/components/NstcForm/SelectSubject/NstcSelectSubject.vue +185 -0
  200. package/nstc-g6/components/NstcForm/SelectindialogCustom/index.vue +648 -0
  201. package/nstc-g6/components/NstcForm/TableRadioCustom/index.vue +183 -0
  202. package/nstc-g6/components/NstcForm/TextCustom/index.vue +38 -0
  203. package/nstc-g6/components/NstcForm/UploadCustom/iconxitongshezhi-yichu.png +0 -0
  204. package/nstc-g6/components/NstcForm/UploadCustom/index.vue +500 -0
  205. package/nstc-g6/components/NstcForm/configs.js +191 -0
  206. package/nstc-g6/components/NstcForm/configsSecond.js +161 -0
  207. package/nstc-g6/components/NstcForm/index.js +8 -0
  208. package/nstc-g6/components/NstcForm/index.scss +29 -0
  209. package/nstc-g6/components/NstcForm/payeePersonSelect/NstcPayeePerson.vue +188 -0
  210. package/nstc-g6/components/NstcForm/readme.txt +4 -0
  211. package/nstc-g6/components/NstcPagination/NstcPagination.vue +428 -0
  212. package/nstc-g6/components/NstcPagination/setPageNum.png +0 -0
  213. package/nstc-g6/components/NstcPagination/setpagedefault.png +0 -0
  214. package/nstc-g6/components/NstcScreenFull/NstcScreenFull.vue +70 -0
  215. package/nstc-g6/components/NstcSelectTree/NstcSelectTree.vue +729 -0
  216. package/nstc-g6/components/NstcSelectTreeList/NstcSelectTreeList.vue +676 -0
  217. package/nstc-g6/components/NstcSticky/NstcSticky.vue +97 -0
  218. package/nstc-g6/components/NstcSvgIcon/NstcSvgIcon.vue +72 -0
  219. package/nstc-g6/components/NstcTab/NstcTab.vue +80 -0
  220. package/nstc-g6/components/NstcTabWithBadge/NstcTabWithBadge.vue +45 -0
  221. package/nstc-g6/components/NstcTabWithBadge/index.scss +31 -0
  222. package/nstc-g6/components/NstcTable/ElTableColumnCustom/index.vue +292 -0
  223. package/nstc-g6/components/NstcTable/NstcTable.vue +460 -0
  224. package/nstc-g6/components/NstcTableSet/NstcTableSet.vue +801 -0
  225. package/nstc-g6/components/NstcThemePicker/NstcThemePicker.vue +186 -0
  226. package/nstc-g6/components/NstcUploadCustomExcel/NstcUploadCustomExcel.vue +330 -0
  227. package/nstc-g6/components/NstcUploadExcel/NstcUploadExcel.vue +145 -0
  228. package/nstc-g6/components/NstcWorkBench/NstcWorkBench.vue +176 -0
  229. package/nstc-g6/components/Search/NstcSearch.vue +583 -0
  230. package/nstc-g6/components/Search/src/demo/index copy.vue +101 -0
  231. package/nstc-g6/components/Search/src/demo/index.vue +103 -0
  232. package/nstc-g6/components/Search/src/main copy.vue +607 -0
  233. package/nstc-g6/components/approvelTwo/main.vue +220 -0
  234. package/nstc-g6/components/approvelTwo/progress.vue +154 -0
  235. package/nstc-g6/directives/VCopy/index.js +60 -0
  236. package/nstc-g6/directives/VNstcNumber/index.js +14 -0
  237. package/nstc-g6/directives/VNstcNumber/temp.js +446 -0
  238. package/nstc-g6/index.js +193 -0
  239. package/nstc-g6/utils/auth.js +2 -0
  240. package/nstc-g6/utils/axios.js +2 -0
  241. package/nstc-g6/utils/dateAndValidator.js +649 -0
  242. package/nstc-g6/utils/debounce.js +40 -0
  243. package/nstc-g6/utils/parseTime.js +48 -0
  244. package/nstc-g6/utils/validate/index.js +7 -0
  245. package/nstc-g6/utils/vendor/Export2Excel.js +229 -0
  246. package/nstc-g6/utils/vendor/Export2Zip.js +24 -0
  247. package/nstc-g6/utils/vue-bus.js +5 -0
  248. package/package.json +8 -2
  249. package/src/assets/css/_coreLib.scss +9 -1
  250. package/src/components/ChildRange/index.vue +28 -64
  251. package/src/components/ChildRange/style.scss +34 -0
  252. package/src/components/FileImport/index.vue +3 -1
  253. package/src/components/PageHeader/index.vue +3 -47
  254. package/src/components/PageHeader/style.scss +39 -0
  255. package/src/components/Search/index.vue +1 -97
  256. package/src/components/Search/style.scss +93 -0
  257. package/src/components/Table/ThSelectHeader.vue +28 -33
  258. package/src/components/Table/index.vue +4 -2
  259. package/src/directives/VTitle/index.js +14 -17
  260. package/style/css/normalize.scss +6 -6
  261. package/style/index.css +3 -3
  262. package/style/index.css.map +1 -1
  263. package/style/server-config.jsonc +527 -410
@@ -0,0 +1,583 @@
1
+ <!--
2
+ 功能: 自定义查询条件
3
+ 作者: nstc
4
+ 创建时间: 2021-02-05
5
+ -->
6
+
7
+ <template>
8
+ <div class="filter-custom-box">
9
+ <el-popover
10
+ ref="popover"
11
+ v-model="popoverShowFlag"
12
+ :placement="placement"
13
+ trigger="click"
14
+ popper-class="search-common-popper"
15
+ >
16
+ <div class="filter-custom-box-main">
17
+ <div class="filter-custom-box-main-header">
18
+ <div class="filter-text">筛选</div>
19
+ <div class="filter-close-img" @click="closePopover">
20
+ <img :src="filterCloseImg" alt="" />
21
+ </div>
22
+ </div>
23
+ <div v-loading="loadingFlag" class="filter-custom-box-main-condition">
24
+ <NstcForm
25
+ v-model="formModel"
26
+ :form-data="formModel"
27
+ :config="formConfig"
28
+ :mount-and-query="false"
29
+ :reset.sync="reset"
30
+ :label-width="labelWidth"
31
+ @tree-node-click="clickTreeNode"
32
+ />
33
+ </div>
34
+ <div class="filter-custom-box-main-more">
35
+ <span @click="moreCondition">更多条件</span>
36
+ </div>
37
+ <div class="filter-custom-box-main-footer">
38
+ <el-button
39
+ type="primary"
40
+ class="nstc-g6-common-btn-1 nstc-g6-common-btn-size-b"
41
+ @click="confirmAction"
42
+ >确定</el-button
43
+ >
44
+ <el-tooltip
45
+ class="item"
46
+ effect="dark"
47
+ content="重置本次操作"
48
+ placement="top-start"
49
+ >
50
+ <el-button
51
+ class="nstc-g6-common-btn-3 nstc-g6-common-btn-size-b"
52
+ @click="resetAction"
53
+ >重置</el-button
54
+ >
55
+ </el-tooltip>
56
+ </div>
57
+ </div>
58
+ <div slot="reference" class="filter-opt">
59
+ <div class="filter-opt-temp" @click.stop="init">
60
+ <SvgIcon class="svg-box is-svg-default" icon-class="hourglass" />
61
+ <SvgIcon class="svg-box is-svg-hover" icon-class="searchActive" />
62
+ </div>
63
+ </div>
64
+ </el-popover>
65
+
66
+ <!-- 查询条件 -->
67
+ <NstcTableSet
68
+ v-model="conditionSetFlag"
69
+ :type="defaultType"
70
+ :config="config"
71
+ :title="setTitle"
72
+ @confirm="handleConfirm"
73
+ />
74
+ </div>
75
+ </template>
76
+
77
+ <script>
78
+ import filterImg from '../../assets/svg/filter.svg'
79
+ import filterImgActive from '../../assets/svg/filterActive.svg'
80
+ import filterCloseImg from '../../assets/svg/filterClose@2x.png'
81
+ import searchImg from '../../assets/svg/hourglass.svg'
82
+ import searchImgActive from '../../assets/svg/searchActive.svg'
83
+ import NstcTableSet from '../NstcTableSet/NstcTableSet'
84
+ import NstcForm from '../NstcForm/Component'
85
+ import SvgIcon from '../NstcSvgIcon/NstcSvgIcon'
86
+ import axios from '../../utils/axios'
87
+
88
+ export default {
89
+ name: 'NstcSearch',
90
+
91
+ components: {
92
+ NstcTableSet,
93
+ NstcForm,
94
+ SvgIcon
95
+ },
96
+
97
+ props: {
98
+ defaultConfig: {
99
+ type: Object,
100
+ default: () => {
101
+ return {}
102
+ }
103
+ },
104
+ config: {
105
+ type: Object,
106
+ default: () => {
107
+ return {
108
+ pageUUID: '',
109
+ moduleNo: '',
110
+ queryType: ''
111
+ }
112
+ }
113
+ },
114
+ defaultValue: {
115
+ type: Object,
116
+ default: () => {
117
+ return {}
118
+ }
119
+ },
120
+ valueConfig: {
121
+ type: Object,
122
+ default: () => {
123
+ return {}
124
+ }
125
+ }
126
+ },
127
+
128
+ data() {
129
+ return {
130
+ placement: 'bottom',
131
+ filterImg,
132
+ filterCloseImg,
133
+ filterImgActive,
134
+ searchImg,
135
+ searchImgActive,
136
+ conditionSetFlag: false,
137
+ defaultType: 'condition',
138
+ formModel: {},
139
+ reset: false,
140
+ defaultSet: [],
141
+ setTitle: '筛选条件',
142
+ popoverShowFlag: false,
143
+ queryTypeObj: {
144
+ all: 1, // 全部
145
+ columnSet: 2, // 表格设置
146
+ condition: 3 // 条件设置
147
+ },
148
+ loadingFlag: false,
149
+ hasLoad: false,
150
+ formConfig: [],
151
+ oldFormModel: {}
152
+ }
153
+ },
154
+
155
+ computed: {
156
+ labelWidth() {
157
+ let l = 0
158
+ this.defaultSet.map((i) => {
159
+ l = Math.max(i[`name`].length, l)
160
+ })
161
+ return l === 0 ? '120' : l * 16 + 12
162
+ }
163
+ },
164
+ watch: {
165
+ defaultSet: {
166
+ handler(value) {
167
+ if (value && Array.isArray(value) && value.length) {
168
+ const that = this
169
+ this.formConfig = that.defaultSet.map((item) => {
170
+ let mold = that.typeConversion(item.type)
171
+ let options = []
172
+ try {
173
+ options = JSON.parse(item.options)
174
+ } catch (error) {
175
+ options = []
176
+ }
177
+ // item.multiple 添加默认配置
178
+ const customConfig = that.defaultConfig[item.id] || {}
179
+ let data = [
180
+ {
181
+ mold: mold.type, // 组件名称
182
+ name: item.name, // 表单选项的名称
183
+ prop:
184
+ item.type == 'select' && item.multiple
185
+ ? item.id + 's'
186
+ : item.id, // 绑定的key值
187
+ options: options, //item.options ? JSON.parse(item.options):[], // 下拉选择框的选项
188
+ url: that.removeQuotation(item.url), // 远程查询的url
189
+ formConfig: item.formConfig || [], // 弹窗查询的 选择表单
190
+ columns: item.columns || [], // 弹框查询: 的表格配置
191
+ valueKey: that.removeQuotation(item.valueKey),
192
+ labelKey: that.removeQuotation(item.labelKey),
193
+ httpMethod: item.httpMethod || 'get', // 请求方式
194
+ lazyLoad: item.lazyLoad || false, // 请求方式
195
+ placeholder: item.placeholder,
196
+ width: item.width || 224,
197
+ disabled: item.disabled,
198
+ params: item.params,
199
+ multiple: item.multiple,
200
+ defaultProps: item.defaultProps,
201
+ remote: item.remote,
202
+ filterable: item.filterable,
203
+ query: item.query,
204
+ onlyClickLeaf: item.onlyClickLeaf, //item.onlyClickLeaf,
205
+ disableUnclickLeaf: item.disableUnclickLeaf, //下拉树是否禁用非子节点,默认false,不禁用
206
+ clearable: item.clearable,
207
+ checkStrictly: item.checkStrictly,
208
+ resProp: item.resProp || null,
209
+ isCache: item.isCache,
210
+ dateType: item.dateType, // 时间选择框 时间范围限制
211
+ class: {
212
+ 'filter-condition-input': [
213
+ 'input',
214
+ 'nstcSelectTree'
215
+ ].includes(mold.type), // 用于控制组件长度
216
+ [item.className || 'null-custom-class']: true
217
+ },
218
+ ...customConfig,
219
+ isInitRequest: item.name === '融资单位' && item.id // 特殊处理
220
+ }
221
+ ]
222
+
223
+ // 判断是否设置默认值
224
+ if (!['', null, undefined].includes(this.defaultValue[item.id])) {
225
+ data[0].default = this.defaultValue[item.id]
226
+ }
227
+
228
+ if (mold.attr) {
229
+ data[0].type = mold.attr
230
+ }
231
+
232
+ if (item.bind && item.bind instanceof Object) {
233
+ // 不能改变原来的属性
234
+ const bindKey = Object.keys(item.bind)
235
+ const dataKey = Object.keys(data[0])
236
+ const tempKey = bindKey.filter((k) => !dataKey.includes(k))
237
+
238
+ tempKey.map((k) => {
239
+ data[0][k] = item.bind[k]
240
+ })
241
+ }
242
+
243
+ /**
244
+ * 特殊自定义组件属性处理
245
+ */
246
+ if (
247
+ item.type === 'nstcSelectTree' ||
248
+ item.type === 'nstcSelectTreeList'
249
+ ) {
250
+ data[0].defaultProps = item.defaultProps
251
+ data[0].tagProps = item.tagProps
252
+ data[0].nodeKey = item.nodeKey
253
+ data[0].params = item.params
254
+ data[0].queryKey = item.queryKey
255
+ data[0].label = item.label
256
+ }
257
+ if (item.id === 'branchBankNo') {
258
+ data[0].defaultProps = item.defaultProps
259
+ data[0].nodeKey = item.nodeKey
260
+ data[0].params = item.params
261
+ data[0].queryKey = item.queryKey
262
+ data[0].filterable = item.filterable
263
+ data[0].httpMethod = item.httpMethod
264
+ data[0].queryKey = item.queryKey
265
+ data[0].lazyLoad = item.lazyLoad
266
+ data[0].pageMode = item.pageMode
267
+ data[0].pageCurrentKey = item.pageCurrentKey
268
+ data[0].pageSizeKey = item.pageSizeKey
269
+ data[0].remote = item.remote
270
+ }
271
+ return data
272
+ })
273
+ setTimeout(() => {
274
+ this.setValue()
275
+ }, 0)
276
+ }
277
+ },
278
+ immediate: true,
279
+ deep: true
280
+ },
281
+
282
+ /**
283
+ * 下拉等组件联动,修改组件配置
284
+ * 监听form-change,并使用updateFormConfig更新表单配置
285
+ */
286
+ formModel: {
287
+ deep: true,
288
+ handler(data) {
289
+ this.$emit('form-change', data, this.formConfig)
290
+ }
291
+ }
292
+ },
293
+ mounted() {
294
+ console.log(444)
295
+ },
296
+ methods: {
297
+ /**
298
+ * 组件联动,避免多次触发nstcform.watch.config
299
+ */
300
+ updateFormConfig(newConfig) {
301
+ this.formConfig = newConfig
302
+ },
303
+
304
+ clickTreeNode(queryKey, data) {
305
+ if (queryKey) {
306
+ this.formModel[queryKey] = data[queryKey]
307
+ }
308
+ },
309
+ /**
310
+ * 提交保存成功
311
+ */
312
+ handleConfirm() {
313
+ console.log('查询条件设置成功', this.formModel)
314
+ // 缓存下之前的数据
315
+ const cache = JSON.parse(JSON.stringify(this.formModel))
316
+ this.init('update', () => {
317
+ this.formModel = cache
318
+ })
319
+ this.popoverShowFlag = true
320
+ },
321
+
322
+ async init(flag, cb) {
323
+ this.popoverShowFlag = !this.popoverShowFlag
324
+ if (this.hasLoad && flag !== 'update') {
325
+ this.changeDefaultSet()
326
+
327
+ this.$nextTick(() => {
328
+ this.$forceUpdate()
329
+ })
330
+ return
331
+ }
332
+ this.loadingFlag = true
333
+ this.defaultSet = []
334
+ const res = await axios.get(`/bems/1.0/dynamicUnit`, {
335
+ ...this.config,
336
+ queryType: 3
337
+ })
338
+ this.loadingFlag = false
339
+ this.hasLoad = true
340
+ this.defaultSet = res.data
341
+ this.changeDefaultSet()
342
+ this.$nextTick(() => {
343
+ this.updatePop()
344
+ this.$forceUpdate()
345
+ cb && cb()
346
+ })
347
+ },
348
+ changeDefaultSet(type) {
349
+ this.defaultSet = this.defaultSet.map((item) => {
350
+ let nItem = Object.assign({}, item)
351
+ nItem.disabled = this.valueConfig[item.id]
352
+ ? this.valueConfig[item.id].disabled || false
353
+ : false
354
+ this.valueConfig[item.id] &&
355
+ (nItem.label = this.valueConfig[item.id].label)
356
+ nItem.options = this.valueConfig[item.id]
357
+ ? JSON.stringify(this.valueConfig[item.id].options) || []
358
+ : item.options
359
+ nItem.time = new Date().getTime()
360
+ nItem.clearable = this.valueConfig[item.id]
361
+ ? this.valueConfig[item.id].clearable
362
+ : true
363
+ return nItem
364
+ })
365
+ console.log(this.defaultSet, 123)
366
+ },
367
+ setValue() {
368
+ let newObj = {}
369
+ for (let key1 in this.valueConfig) {
370
+ let item = this.valueConfig[key1]
371
+ let keyObj = this.defaultSet.find(
372
+ (item) => item.id === key1 && item.type === 'select' && item.multiple
373
+ )
374
+ if (item.hasOwnProperty('value')) {
375
+ this.$set(
376
+ newObj,
377
+ keyObj ? key1 + 's' : key1,
378
+ this.reset ? '' : item.value
379
+ )
380
+ }
381
+ }
382
+ // this.formModel = {...this.formModel,...this.oldFormModel, ...newObj}
383
+ if (JSON.stringify(this.oldFormModel) !== '{}') {
384
+ // 旧配置中的字段不在新的配置中,则需要移除对应的缓存值
385
+ this.defaultSet.forEach(({ id, multiple, type, queryKey }) => {
386
+ const isExist =
387
+ Reflect.has(this.oldFormModel, id) ||
388
+ Reflect.has(this.oldFormModel, id + 's')
389
+ // 在缓存中存在,则取缓存的值
390
+ if (isExist) {
391
+ if (type === 'select' && multiple) {
392
+ this.formModel[id + 's'] = this.oldFormModel[id + 's']
393
+ } else {
394
+ this.formModel[id] = this.oldFormModel[id]
395
+ }
396
+ } else {
397
+ this.formModel[id] = this.defaultSet[id]
398
+ }
399
+ })
400
+ // 新配置中移除了某些字段,需要将缓存中的字段移除
401
+ Object.keys(this.oldFormModel).forEach((k) => {
402
+ const isExist = this.defaultSet.find((item) => {
403
+ return item.id === k || item.id + 's' === k || item.queryKey == k
404
+ })
405
+ if (!isExist) {
406
+ delete this.formModel[k]
407
+ }
408
+ })
409
+ }
410
+ this.formModel = { ...this.formModel, ...newObj }
411
+ this.reset = false
412
+ },
413
+ /**
414
+ * 类型转化方法
415
+ */
416
+ typeConversion(type) {
417
+ // 属性合集
418
+ const mold = [
419
+ {
420
+ // 时间
421
+ type: 'datepicker',
422
+ attr: 'daterange'
423
+ }
424
+ ]
425
+ // 筛选对应需要添加属性的数据
426
+ // eg:
427
+ let isAddAttr = mold.filter((x) => x.attr === type)
428
+
429
+ return isAddAttr.length !== 0
430
+ ? {
431
+ type: isAddAttr[0].type,
432
+ attr: isAddAttr[0].attr
433
+ }
434
+ : {
435
+ type: type,
436
+ attr: null
437
+ }
438
+ },
439
+
440
+ /**
441
+ * 查询更多条件
442
+ */
443
+ moreCondition() {
444
+ this.conditionSetFlag = true
445
+ },
446
+
447
+ /**
448
+ * 确认查询
449
+ */
450
+ confirmAction() {
451
+ this.popoverShowFlag = false
452
+ this.oldFormModel = JSON.parse(JSON.stringify(this.formModel))
453
+ // 格式化金额
454
+ this.$emit('search', this.formModel)
455
+ },
456
+
457
+ /**
458
+ * 去掉后台返回字段的”
459
+ */
460
+ removeQuotation(str) {
461
+ return str ? str.replace(/"/g, '') : ''
462
+ },
463
+
464
+ /**
465
+ * 重置
466
+ */
467
+ resetAction() {
468
+ this.reset = true
469
+ this.oldFormModel = {}
470
+ this.changeDefaultSet('reset')
471
+ this.$emit('reset', this.formModel)
472
+ },
473
+
474
+ /**
475
+ * 关闭
476
+ */
477
+ closePopover() {
478
+ this.reset = true
479
+ this.$nextTick(() => {
480
+ this.popoverShowFlag = false
481
+ })
482
+ },
483
+
484
+ /**
485
+ * 手动打开
486
+ */
487
+ openPopover() {},
488
+
489
+ updatePop() {
490
+ this.$refs.popover.updatePopper()
491
+ }
492
+ }
493
+ }
494
+ </script>
495
+
496
+ <style lang="scss">
497
+ .filter-custom-box {
498
+ .interval-input-custom {
499
+ }
500
+ .filter-btn {
501
+ height: 34px !important;
502
+ width: 90px !important;
503
+ }
504
+ .filter-opt {
505
+ display: inline-block;
506
+ cursor: pointer;
507
+ &-temp {
508
+ border: 1px solid #dddddd;
509
+ // width: 26px;
510
+ // height: 26px;
511
+ padding: 5px;
512
+ border-radius: 4px;
513
+ display: flex;
514
+ align-items: center;
515
+ overflow: hidden;
516
+ .is-svg-default {
517
+ display: block;
518
+ }
519
+ .is-svg-hover {
520
+ display: none;
521
+ }
522
+ }
523
+
524
+ &-temp:hover {
525
+ border: 1px solid #007aff;
526
+ .is-svg-default {
527
+ display: none;
528
+ }
529
+ .is-svg-hover {
530
+ display: block;
531
+ }
532
+ }
533
+ }
534
+
535
+ &-main {
536
+ display: flex;
537
+ flex-direction: column;
538
+ min-width: 360px;
539
+ &-header {
540
+ display: flex;
541
+ justify-content: space-between;
542
+ align-items: center;
543
+ padding-right: 16px;
544
+ .filter-text {
545
+ color: #262d34;
546
+ font-size: 16px;
547
+ }
548
+ .filter-close-img {
549
+ cursor: pointer;
550
+ }
551
+ img {
552
+ width: 16px;
553
+ height: 16px;
554
+ }
555
+ }
556
+ &-condition {
557
+ flex: 1;
558
+ //border: 1px solid #000;
559
+ overflow-y: auto;
560
+ margin-top: 11px;
561
+ max-height: 300px !important;
562
+ padding-top: 3px;
563
+ // 13 剧中
564
+ width: calc(100%);
565
+ .el-form-item {
566
+ margin-bottom: 16px;
567
+ }
568
+ }
569
+ &-more {
570
+ margin: 10px 0 6px 0;
571
+ font-size: 14px;
572
+ span {
573
+ color: #007aff;
574
+ cursor: pointer;
575
+ }
576
+ }
577
+ &-footer {
578
+ text-align: center;
579
+ }
580
+ }
581
+ }
582
+ </style>
583
+
@@ -0,0 +1,101 @@
1
+ <!--
2
+ * @Author: your name
3
+ * @Date: 2021-06-02 09:07:16
4
+ * @LastEditTime: 2021-12-26 14:43:05
5
+ * @LastEditors: Please set LastEditors
6
+ * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
7
+ * @FilePath: \base-copye:\nstc\gcm-front-base-temp\code\nstc_g6_common\packages\Search\src\demo\index.vue
8
+ -->
9
+ <template>
10
+ <div class="filter-custom-demo">
11
+ <div style="height: 300px"></div>
12
+ <NstcSearch
13
+ ref="ddddd"
14
+ :config="conditionSetConfig"
15
+ :default-value="defaultValue"
16
+ @search="searchAction"
17
+ :width="'374px'"
18
+ />
19
+ <el-button @click="change">变化</el-button>
20
+ </div>
21
+ </template>
22
+
23
+ <script>
24
+ import NstcSearch from "../main.vue";
25
+ export default {
26
+ name: "Demo",
27
+ components: {
28
+ NstcSearch,
29
+ },
30
+ data() {
31
+ return {
32
+ conditionSetConfig: {
33
+ pageUUID: encodeURIComponent("53db4bad-6724-4537-b73a-0a3c5e24ec34"),
34
+ moduleNo: "PTMS",
35
+ queryType: 1,
36
+ },
37
+ defaultValue: {
38
+ recordDate: ["2021-03-30", "2021-03-30"],
39
+ // unitNo: { label: "3423", value: "rewrwe" },
40
+ },
41
+ valueConfig: {
42
+ // payCltNos: {
43
+ // value: "126",
44
+ // label: "单位111111111",
45
+ // disabled: true,
46
+ // },
47
+ // payStates: {
48
+ // value: ["1", "2"],
49
+ // disabled: true,
50
+ // options: [
51
+ // { label: "待支付", value: "1" },
52
+ // { label: "全部已付", value: "2" },
53
+ // ],
54
+ // },
55
+ // recCltNameLike: {
56
+ // value: "dd",
57
+ // },
58
+ },
59
+ };
60
+ },
61
+ mounted() {
62
+ this.$nextTick(() => {
63
+ console.log(32132);
64
+ this.$refs.ddddd.placement = "left";
65
+ this.valueConfig.unitNo = {
66
+ // disabled: true,
67
+ label: "总部",
68
+ value: "001",
69
+ };
70
+ });
71
+ },
72
+ methods: {
73
+ searchAction(val) {
74
+ console.log("远程查询条件", val);
75
+ },
76
+ change() {
77
+ this.valueConfig = {
78
+ payCltNos: {
79
+ value: "44444",
80
+ label: "单位1122211",
81
+ disabled: false,
82
+ },
83
+ payStates: {
84
+ value: ["1"],
85
+ disabled: false,
86
+ options: [
87
+ { label: "待支付", value: "1" },
88
+ { label: "全部已付", value: "2" },
89
+ ],
90
+ },
91
+ };
92
+ },
93
+ },
94
+ };
95
+ </script>
96
+
97
+ <style scoped>
98
+ .filter-custom-demo {
99
+ padding: 10px;
100
+ }
101
+ </style>