tplus-components-touch 3.28.2 → 3.28.3

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 (236) hide show
  1. package/dist/components/acCitySelect/CitySelect.js +541 -0
  2. package/dist/components/acCitySelect/CitySelect.js.map +1 -0
  3. package/dist/components/acCitySelect/CitySelect.less +10 -0
  4. package/dist/components/acCitySelect/citys.js +1270 -0
  5. package/dist/components/acCitySelect/citys.js.map +1 -0
  6. package/dist/components/acCitySelect/index.js +18 -0
  7. package/dist/components/acCitySelect/index.js.map +1 -0
  8. package/dist/components/acCitySelect/provinceData.js +40 -0
  9. package/dist/components/acCitySelect/provinceData.js.map +1 -0
  10. package/dist/components/addLog/AddLogProcessor.js +49 -0
  11. package/dist/components/addLog/AddLogProcessor.js.map +1 -0
  12. package/dist/components/addLog/OperationLogApi.js +125 -0
  13. package/dist/components/addLog/OperationLogApi.js.map +1 -0
  14. package/dist/components/autoComplete/index.js +245 -0
  15. package/dist/components/autoComplete/index.js.map +1 -0
  16. package/dist/components/autoComplete/index.less +89 -0
  17. package/dist/components/autoComplete/option.js +75 -0
  18. package/dist/components/autoComplete/option.js.map +1 -0
  19. package/dist/components/autoCompleteWithKeyboard/index.js +231 -0
  20. package/dist/components/autoCompleteWithKeyboard/index.js.map +1 -0
  21. package/dist/components/autoCompleteWithKeyboard/index.less +8 -0
  22. package/dist/components/billSearch/api.js +465 -0
  23. package/dist/components/billSearch/api.js.map +1 -0
  24. package/dist/components/billSearch/index.js +2201 -0
  25. package/dist/components/billSearch/index.js.map +1 -0
  26. package/dist/components/billSearch/index.less +376 -0
  27. package/dist/components/cloudPrint/BTPrintFormatUtil.js +568 -0
  28. package/dist/components/cloudPrint/BTPrintFormatUtil.js.map +1 -0
  29. package/dist/components/cloudPrint/api.js +391 -0
  30. package/dist/components/cloudPrint/api.js.map +1 -0
  31. package/dist/components/cloudPrint/index.js +727 -0
  32. package/dist/components/cloudPrint/index.js.map +1 -0
  33. package/dist/components/cloudPrint/printDispatch.js +324 -0
  34. package/dist/components/cloudPrint/printDispatch.js.map +1 -0
  35. package/dist/components/commonForm/addressPicker/index.js +232 -0
  36. package/dist/components/commonForm/addressPicker/index.js.map +1 -0
  37. package/dist/components/commonForm/addressPicker/style.less +11 -0
  38. package/dist/components/commonForm/autoComplete/index.js +241 -0
  39. package/dist/components/commonForm/autoComplete/index.js.map +1 -0
  40. package/dist/components/commonForm/autoComplete/style.less +3 -0
  41. package/dist/components/commonForm/datePicker/index.js +89 -0
  42. package/dist/components/commonForm/datePicker/index.js.map +1 -0
  43. package/dist/components/commonForm/datePicker/style.less +5 -0
  44. package/dist/components/commonForm/formControl/index.js +143 -0
  45. package/dist/components/commonForm/formControl/index.js.map +1 -0
  46. package/dist/components/commonForm/formControl/style.less +0 -0
  47. package/dist/components/commonForm/index.js +225 -0
  48. package/dist/components/commonForm/index.js.map +1 -0
  49. package/dist/components/commonForm/inputNumber/index.js +272 -0
  50. package/dist/components/commonForm/inputNumber/index.js.map +1 -0
  51. package/dist/components/commonForm/inputNumber/style.less +11 -0
  52. package/dist/components/commonForm/radio/index.js +132 -0
  53. package/dist/components/commonForm/radio/index.js.map +1 -0
  54. package/dist/components/commonForm/radio/style.less +0 -0
  55. package/dist/components/commonForm/style.less +2 -0
  56. package/dist/components/deliverySearch/api.js +355 -0
  57. package/dist/components/deliverySearch/api.js.map +1 -0
  58. package/dist/components/deliverySearch/index.js +1218 -0
  59. package/dist/components/deliverySearch/index.js.map +1 -0
  60. package/dist/components/deliverySearch/index.less +554 -0
  61. package/dist/components/form/index.js +310 -0
  62. package/dist/components/form/index.js.map +1 -0
  63. package/dist/components/hardwareAPI/index.js +181 -0
  64. package/dist/components/hardwareAPI/index.js.map +1 -0
  65. package/dist/components/hotKey/config.js +306 -0
  66. package/dist/components/hotKey/config.js.map +1 -0
  67. package/dist/components/hotKey/hotKeyModal.js +479 -0
  68. package/dist/components/hotKey/hotKeyModal.js.map +1 -0
  69. package/dist/components/hotKey/index.js +785 -0
  70. package/dist/components/hotKey/index.js.map +1 -0
  71. package/dist/components/hotKey/localConfig.js +1021 -0
  72. package/dist/components/hotKey/localConfig.js.map +1 -0
  73. package/dist/components/hotKey/style.less +96 -0
  74. package/dist/components/hotKey/utils.js +135 -0
  75. package/dist/components/hotKey/utils.js.map +1 -0
  76. package/dist/components/input/index.js +251 -0
  77. package/dist/components/input/index.js.map +1 -0
  78. package/dist/components/input/scanInput.js +98 -0
  79. package/dist/components/input/scanInput.js.map +1 -0
  80. package/dist/components/input/scanInput.less +28 -0
  81. package/dist/components/input/style.less +99 -0
  82. package/dist/components/input/tplusInput/index.js +81 -0
  83. package/dist/components/input/tplusInput/index.js.map +1 -0
  84. package/dist/components/input/tplusInput/inputContent.js +128 -0
  85. package/dist/components/input/tplusInput/inputContent.js.map +1 -0
  86. package/dist/components/input/tplusInput/inputs.js +151 -0
  87. package/dist/components/input/tplusInput/inputs.js.map +1 -0
  88. package/dist/components/input/tplusInput/style.less +132 -0
  89. package/dist/components/input/utils/index.js +26 -0
  90. package/dist/components/input/utils/index.js.map +1 -0
  91. package/dist/components/inventorySearch/api.js +214 -0
  92. package/dist/components/inventorySearch/api.js.map +1 -0
  93. package/dist/components/inventorySearch/index.js +303 -0
  94. package/dist/components/inventorySearch/index.js.map +1 -0
  95. package/dist/components/inventorySearch/index.less +120 -0
  96. package/dist/components/inventorySearch/store.js +363 -0
  97. package/dist/components/inventorySearch/store.js.map +1 -0
  98. package/dist/components/inventorySearch/tab.js +273 -0
  99. package/dist/components/inventorySearch/tab.js.map +1 -0
  100. package/dist/components/keyboard/index.js +255 -0
  101. package/dist/components/keyboard/index.js.map +1 -0
  102. package/dist/components/keyboard/index.less +470 -0
  103. package/dist/components/keyboard/letterKeyboard.js +210 -0
  104. package/dist/components/keyboard/letterKeyboard.js.map +1 -0
  105. package/dist/components/keyboard/numKeyboard.js +459 -0
  106. package/dist/components/keyboard/numKeyboard.js.map +1 -0
  107. package/dist/components/keyboard/numKeyboardScan.js +195 -0
  108. package/dist/components/keyboard/numKeyboardScan.js.map +1 -0
  109. package/dist/components/keyboard/numberButton_input.js +303 -0
  110. package/dist/components/keyboard/numberButton_input.js.map +1 -0
  111. package/dist/components/keyboard/numkeyboardPassword.js +460 -0
  112. package/dist/components/keyboard/numkeyboardPassword.js.map +1 -0
  113. package/dist/components/keyboard/onlyKeyboard.js +90 -0
  114. package/dist/components/keyboard/onlyKeyboard.js.map +1 -0
  115. package/dist/components/keyboard/onlyLetterButton.js +187 -0
  116. package/dist/components/keyboard/onlyLetterButton.js.map +1 -0
  117. package/dist/components/keyboard/onlyLetterButton2.js +235 -0
  118. package/dist/components/keyboard/onlyLetterButton2.js.map +1 -0
  119. package/dist/components/keyboard/onlyLetterButton2.less +162 -0
  120. package/dist/components/keyboard/onlyNumberButton.js +128 -0
  121. package/dist/components/keyboard/onlyNumberButton.js.map +1 -0
  122. package/dist/components/keyboard/onlyNumberButton2.js +115 -0
  123. package/dist/components/keyboard/onlyNumberButton2.js.map +1 -0
  124. package/dist/components/keyboard/textKeyboard.js +50 -0
  125. package/dist/components/keyboard/textKeyboard.js.map +1 -0
  126. package/dist/components/layout/hamburger.js +29 -0
  127. package/dist/components/layout/hamburger.js.map +1 -0
  128. package/dist/components/layout/index.js +31 -0
  129. package/dist/components/layout/index.js.map +1 -0
  130. package/dist/components/layout/layout.js +182 -0
  131. package/dist/components/layout/layout.js.map +1 -0
  132. package/dist/components/layout/sider.js +165 -0
  133. package/dist/components/layout/sider.js.map +1 -0
  134. package/dist/components/layout/style.less +82 -0
  135. package/dist/components/loading/index.js +198 -0
  136. package/dist/components/loading/index.js.map +1 -0
  137. package/dist/components/loading/loadingContent.js +185 -0
  138. package/dist/components/loading/loadingContent.js.map +1 -0
  139. package/dist/components/loading/style.less +70 -0
  140. package/dist/components/loading/utils.js +29 -0
  141. package/dist/components/loading/utils.js.map +1 -0
  142. package/dist/components/message/index.js +311 -0
  143. package/dist/components/message/index.js.map +1 -0
  144. package/dist/components/message/index.less +101 -0
  145. package/dist/components/modal/index.js +93 -0
  146. package/dist/components/modal/index.js.map +1 -0
  147. package/dist/components/modal/index.less +19 -0
  148. package/dist/components/modalVertical/index.js +325 -0
  149. package/dist/components/modalVertical/index.js.map +1 -0
  150. package/dist/components/modalVertical/style.less +60 -0
  151. package/dist/components/modalWraper/index.js +470 -0
  152. package/dist/components/modalWraper/index.js.map +1 -0
  153. package/dist/components/modalWraper/style.less +257 -0
  154. package/dist/components/modalWraper/utils.js +48 -0
  155. package/dist/components/modalWraper/utils.js.map +1 -0
  156. package/dist/components/notification/index.js +119 -0
  157. package/dist/components/notification/index.js.map +1 -0
  158. package/dist/components/notification/index.less +52 -0
  159. package/dist/components/overflowTip/index.js +269 -0
  160. package/dist/components/overflowTip/index.js.map +1 -0
  161. package/dist/components/overflowTip/style.less +66 -0
  162. package/dist/components/page/index.js +49 -0
  163. package/dist/components/page/index.js.map +1 -0
  164. package/dist/components/page/index.less +22 -0
  165. package/dist/components/product/detail.js +148 -0
  166. package/dist/components/product/detail.js.map +1 -0
  167. package/dist/components/product/getCard.js +145 -0
  168. package/dist/components/product/getCard.js.map +1 -0
  169. package/dist/components/product/index.less +128 -0
  170. package/dist/components/progressState/EmptyAndErrorView.js +143 -0
  171. package/dist/components/progressState/EmptyAndErrorView.js.map +1 -0
  172. package/dist/components/progressState/ProgressState.js +157 -0
  173. package/dist/components/progressState/ProgressState.js.map +1 -0
  174. package/dist/components/progressState/index.js +14 -0
  175. package/dist/components/progressState/index.js.map +1 -0
  176. package/dist/components/progressState/style.less +65 -0
  177. package/dist/components/scan/index.js +219 -0
  178. package/dist/components/scan/index.js.map +1 -0
  179. package/dist/components/scan/index.less +34 -0
  180. package/dist/components/select/index.js +28 -0
  181. package/dist/components/select/index.js.map +1 -0
  182. package/dist/components/select/index.less +12 -0
  183. package/dist/components/settlement/asyncModal.js +204 -0
  184. package/dist/components/settlement/asyncModal.js.map +1 -0
  185. package/dist/components/settlement/index.js +16 -0
  186. package/dist/components/settlement/index.js.map +1 -0
  187. package/dist/components/settlement/prototypeTable/index.js +349 -0
  188. package/dist/components/settlement/prototypeTable/index.js.map +1 -0
  189. package/dist/components/settlement/prototypeTable/style.less +59 -0
  190. package/dist/components/settlement/prototypeTable/utils.js +14 -0
  191. package/dist/components/settlement/prototypeTable/utils.js.map +1 -0
  192. package/dist/components/settlement/settlement.js +5474 -0
  193. package/dist/components/settlement/settlement.js.map +1 -0
  194. package/dist/components/settlement/settlement.less +1595 -0
  195. package/dist/components/settlement/settlementStore.js +2117 -0
  196. package/dist/components/settlement/settlementStore.js.map +1 -0
  197. package/dist/components/settlement/utils.js +249 -0
  198. package/dist/components/settlement/utils.js.map +1 -0
  199. package/dist/components/socket/index.js +221 -0
  200. package/dist/components/socket/index.js.map +1 -0
  201. package/dist/components/spin/index.js +95 -0
  202. package/dist/components/spin/index.js.map +1 -0
  203. package/dist/components/spin/spin-style.less +436 -0
  204. package/dist/components/test/index.js +330 -0
  205. package/dist/components/test/index.js.map +1 -0
  206. package/dist/components/ticon/iconfont/demo.css +539 -0
  207. package/dist/components/ticon/iconfont/demo_index.html +5202 -0
  208. package/dist/components/ticon/iconfont/iconfont.css +887 -0
  209. package/dist/components/ticon/iconfont/iconfont.eot +0 -0
  210. package/dist/components/ticon/iconfont/iconfont.js +35 -0
  211. package/dist/components/ticon/iconfont/iconfont.js.map +1 -0
  212. package/dist/components/ticon/iconfont/iconfont.json +1535 -0
  213. package/dist/components/ticon/iconfont/iconfont.svg +593 -0
  214. package/dist/components/ticon/iconfont/iconfont.ttf +0 -0
  215. package/dist/components/ticon/iconfont/iconfont.woff +0 -0
  216. package/dist/components/ticon/iconfont/iconfont.woff2 +0 -0
  217. package/dist/components/ticon/index.js +60 -0
  218. package/dist/components/ticon/index.js.map +1 -0
  219. package/dist/components/touchScroll/index.js +182 -0
  220. package/dist/components/touchScroll/index.js.map +1 -0
  221. package/dist/components/touchTable/AuthProcess.js +42 -0
  222. package/dist/components/touchTable/AuthProcess.js.map +1 -0
  223. package/dist/components/touchTable/generateWater.js +59 -0
  224. package/dist/components/touchTable/generateWater.js.map +1 -0
  225. package/dist/components/touchTable/index.js +1110 -0
  226. package/dist/components/touchTable/index.js.map +1 -0
  227. package/dist/components/touchTable/index.less +370 -0
  228. package/dist/components/touchTable/utils.js +14 -0
  229. package/dist/components/touchTable/utils.js.map +1 -0
  230. package/dist/demo/PopOverDemo.js +126 -0
  231. package/dist/demo/PopOverDemo.js.map +1 -0
  232. package/dist/index.js +266 -0
  233. package/dist/index.js.map +1 -0
  234. package/dist/util/tools.js +200 -0
  235. package/dist/util/tools.js.map +1 -0
  236. package/package.json +1 -1
@@ -0,0 +1,541 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _stringify = require('babel-runtime/core-js/json/stringify');
8
+
9
+ var _stringify2 = _interopRequireDefault(_stringify);
10
+
11
+ var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
12
+
13
+ var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
14
+
15
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
16
+
17
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
18
+
19
+ var _createClass2 = require('babel-runtime/helpers/createClass');
20
+
21
+ var _createClass3 = _interopRequireDefault(_createClass2);
22
+
23
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
24
+
25
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
26
+
27
+ var _inherits2 = require('babel-runtime/helpers/inherits');
28
+
29
+ var _inherits3 = _interopRequireDefault(_inherits2);
30
+
31
+ var _select = require('antd/es/select');
32
+
33
+ var _select2 = _interopRequireDefault(_select);
34
+
35
+ var _class, _temp, _initialiseProps; /*
36
+ * @Descripttion:
37
+ * @version:
38
+ * @Author: chenlongad
39
+ * @Date: 2021-01-06 15:40:39
40
+ * @LastEditors: chenlongad
41
+ * @LastEditTime: 2021-01-06 16:16:27
42
+ */
43
+
44
+ require('antd/es/select/style');
45
+
46
+ var _react = require('react');
47
+
48
+ var _react2 = _interopRequireDefault(_react);
49
+
50
+ var _propTypes = require('prop-types');
51
+
52
+ var _propTypes2 = _interopRequireDefault(_propTypes);
53
+
54
+ var _classnames = require('classnames');
55
+
56
+ var _classnames2 = _interopRequireDefault(_classnames);
57
+
58
+ var _lodash = require('lodash.findindex');
59
+
60
+ var _lodash2 = _interopRequireDefault(_lodash);
61
+
62
+ var _provinceData = require('./provinceData');
63
+
64
+ require('./CitySelect.less');
65
+
66
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
67
+
68
+ var Option = _select2.default.Option;
69
+
70
+ var propTypes = {
71
+ defaultValue: _propTypes2.default.object,
72
+ value: _propTypes2.default.object,
73
+ onChange: _propTypes2.default.func,
74
+ provinceData: _propTypes2.default.array,
75
+ lang: _propTypes2.default.string,
76
+ disabled: _propTypes2.default.bool, //设置组件是否被禁用;
77
+ disabledProvinceArr: _propTypes2.default.array, //设置禁用的省份
78
+ disabledCityArr: _propTypes2.default.array, //设置禁用的地级市
79
+ disabledAreaObj: _propTypes2.default.object, //设置不可用的区域;
80
+ allowClear: _propTypes2.default.bool //设置城市选择框是否可以被清除;
81
+ };
82
+ var defaultProps = {
83
+ defaultValue: _provinceData.zh.defaultValue,
84
+ value: _provinceData.zh.defaultValue,
85
+ onChange: function onChange() {},
86
+ provinceData: _provinceData.zh.provinceData,
87
+ lang: 'zh_CN',
88
+ disabled: false,
89
+ allowClear: false,
90
+ disabledProvinceArr: [],
91
+ disabledCityArr: [],
92
+ disabledAreaObj: null
93
+ };
94
+ var CitySelect = (_temp = _class = function (_Component) {
95
+ (0, _inherits3.default)(CitySelect, _Component);
96
+
97
+ function CitySelect(props) {
98
+ (0, _classCallCheck3.default)(this, CitySelect);
99
+
100
+ var _this = (0, _possibleConstructorReturn3.default)(this, (CitySelect.__proto__ || (0, _getPrototypeOf2.default)(CitySelect)).call(this, props));
101
+
102
+ _initialiseProps.call(_this);
103
+
104
+ var provinceData = props.provinceData,
105
+ disabledProvinceArr = props.disabledProvinceArr,
106
+ disabledCityArr = props.disabledCityArr,
107
+ disabledAreaObj = props.disabledAreaObj,
108
+ lang = props.lang;
109
+ // if (props.lang === 'zh_TW') {
110
+ // provinceData = tw.provinceData;
111
+ // } else if (props.lang === 'en_US') {
112
+ // provinceData = en.provinceData
113
+ // }
114
+
115
+ _this.state = {
116
+ provinceIndex: 0,
117
+ cityIndex: 0,
118
+ province: '北京',
119
+ secondCity: provinceData[0].city[0].name,
120
+ secondArea: provinceData[0].city[0].area[0],
121
+ provinceData: _this.buildInitDataArr(provinceData, disabledProvinceArr, lang),
122
+ cities: _this.buildInitDataArr(provinceData[0].city, disabledCityArr, lang),
123
+ areas: _this.buildAreaInitData(provinceData[0].city[0].area, provinceData[0].name, disabledAreaObj, lang)
124
+ };
125
+ return _this;
126
+ }
127
+
128
+ (0, _createClass3.default)(CitySelect, [{
129
+ key: 'componentDidMount',
130
+ value: function componentDidMount() {
131
+ var _props = this.props,
132
+ _defaultValue = _props.defaultValue,
133
+ value = _props.value,
134
+ lang = _props.lang,
135
+ disabledProvinceArr = _props.disabledProvinceArr,
136
+ disabledCityArr = _props.disabledCityArr,
137
+ disabledAreaObj = _props.disabledAreaObj;
138
+
139
+ var provinceData = this.state.provinceData;
140
+ // if (lang === 'zh_TW') {
141
+ // provinceData = tw.provinceData;
142
+ // _defaultValue = tw.defaultValue;
143
+ // } else if (lang === 'en_US') {
144
+ // provinceData = en.provinceData;
145
+ // _defaultValue = en.defaultValue;
146
+ // }
147
+ var defaultValue = value ? value : _defaultValue;
148
+ var province = defaultValue.province;
149
+ var provinceIndex = this.getIndex('province', defaultValue.province);
150
+ var cityIndex = this.getIndex('city', defaultValue.city, provinceIndex);
151
+
152
+ provinceIndex = provinceIndex < 0 ? 0 : provinceIndex;
153
+ cityIndex = cityIndex < 0 ? 0 : cityIndex;
154
+
155
+ var secondCity = defaultValue.city;
156
+ var secondArea = defaultValue.area;
157
+ var provinceInitData = this.buildInitDataArr(provinceData, disabledProvinceArr, lang);
158
+ var citiesInitData = this.buildInitDataArr(provinceInitData[provinceIndex].city, disabledCityArr, lang);
159
+ var areasInitData = this.buildAreaInitData(citiesInitData[cityIndex].area, citiesInitData[cityIndex].name, disabledAreaObj, lang);
160
+
161
+ this.setState({
162
+ province: province,
163
+ provinceIndex: provinceIndex, //被选中省的下标
164
+ cityIndex: cityIndex, //被选中市的下标
165
+ cities: citiesInitData,
166
+ secondCity: secondCity,
167
+ areas: areasInitData,
168
+ secondArea: secondArea,
169
+ provinceData: provinceInitData
170
+ });
171
+ }
172
+ }, {
173
+ key: 'componentWillReceiveProps',
174
+ value: function componentWillReceiveProps(nextProps) {
175
+ if (!nextProps.value) return;
176
+ var _props$value = this.props.value,
177
+ oldProvince = _props$value.province,
178
+ oldCity = _props$value.city,
179
+ oldArea = _props$value.area;
180
+ var _nextProps$value = nextProps.value,
181
+ province = _nextProps$value.province,
182
+ city = _nextProps$value.city,
183
+ area = _nextProps$value.area;
184
+ var preLang = nextProps.preLang,
185
+ lang = nextProps.lang;
186
+
187
+ if (province !== oldProvince) {
188
+ var _getCurrentValue = this.getCurrentValue(province, city, area, preLang, lang),
189
+ newProvince = _getCurrentValue.newProvince,
190
+ newCity = _getCurrentValue.newCity,
191
+ newArea = _getCurrentValue.newArea;
192
+
193
+ this.setState({
194
+ province: newProvince
195
+ });
196
+ return this.handleProvinceChange(newProvince, newCity, newArea);
197
+ }
198
+ if (city !== oldCity) {
199
+ var _getCurrentValue2 = this.getCurrentValue(province, city, area, preLang, lang),
200
+ _newCity = _getCurrentValue2.newCity,
201
+ _newArea = _getCurrentValue2.newArea;
202
+
203
+ this.setState({
204
+ secondCity: _newCity
205
+ });
206
+ return this.handleCityChange(_newCity, _newArea);
207
+ }
208
+ if (area !== oldArea) {
209
+ var _getCurrentValue3 = this.getCurrentValue(province, city, area, preLang, lang),
210
+ _newArea2 = _getCurrentValue3.newArea;
211
+
212
+ this.setState({
213
+ secondArea: _newArea2
214
+ });
215
+ this.onSecondAreaChange(_newArea2);
216
+ }
217
+ }
218
+ // 切换语种后,要自动翻译value
219
+
220
+ }, {
221
+ key: 'getCurrentValue',
222
+ value: function getCurrentValue(province, city, area, preLang, lang) {
223
+ var result = {
224
+ newProvince: province,
225
+ newCity: city,
226
+ newArea: area
227
+ };
228
+ if (!preLang || preLang === lang) return result;
229
+ var newValue = this.translateValue(province, city, area, preLang);
230
+ if (newValue) {
231
+ result.newProvince = newValue.province;
232
+ result.newCity = newValue.city;
233
+ result.newArea = newValue.area;
234
+ }
235
+ return result;
236
+ }
237
+
238
+ /**
239
+ * 函数功能:重新构建 省市和区域的初始值;
240
+ * @param originalArr 原始数据;
241
+ * @param disabledCityArr 对应禁用的数据;
242
+ * @param lang 获取语言类型;
243
+ * */
244
+
245
+
246
+ /**
247
+ * 构建区域所在的基本数据;
248
+ * @param areaArr 当前区域原始数据;
249
+ * @param cityName 当前区域所在的城市;
250
+ * @param disabledAreaObj 设置的不可选中的地域数据;
251
+ * @param lang 获取语言类型;
252
+ * */
253
+
254
+ }, {
255
+ key: 'render',
256
+ value: function render() {
257
+ var _this2 = this;
258
+
259
+ var _state = this.state,
260
+ provinceData = _state.provinceData,
261
+ cities = _state.cities,
262
+ areas = _state.areas;
263
+ var notFoundContent = this.props.notFoundContent;
264
+
265
+
266
+ var provinceOptions = provinceData.map(function (province, index) {
267
+ if (province.disabled) {
268
+ return _react2.default.createElement(
269
+ Option,
270
+ { key: province.name, disabled: true },
271
+ province.name
272
+ );
273
+ } else {
274
+ return _react2.default.createElement(
275
+ Option,
276
+ { key: province.name },
277
+ province.name
278
+ );
279
+ }
280
+ });
281
+ var cityOptions = cities.map(function (city, index) {
282
+ if (city.disabled) {
283
+ return _react2.default.createElement(
284
+ Option,
285
+ { key: city.name, disabled: true },
286
+ city.name
287
+ );
288
+ } else {
289
+ return _react2.default.createElement(
290
+ Option,
291
+ { key: city.name },
292
+ city.name
293
+ );
294
+ }
295
+ });
296
+
297
+ var areaOptions = areas.map(function (area, index) {
298
+ if (area.disabled) {
299
+ return _react2.default.createElement(
300
+ Option,
301
+ { key: area.name, disabled: true },
302
+ area.name
303
+ );
304
+ } else {
305
+ return _react2.default.createElement(
306
+ Option,
307
+ { key: area.name },
308
+ area.name
309
+ );
310
+ }
311
+ });
312
+ return _react2.default.createElement(
313
+ 'div',
314
+ { className: (0, _classnames2.default)("city-select", this.props.className) },
315
+ _react2.default.createElement(
316
+ _select2.default,
317
+ {
318
+ value: this.state.province,
319
+ className: 'province',
320
+ disabled: this.props.disabled,
321
+ notFoundContent: notFoundContent,
322
+ allowClear: this.state.province && this.props.allowClear,
323
+ onChange: function onChange(value) {
324
+ return _this2.handleProvinceChange(value);
325
+ } },
326
+ provinceOptions
327
+ ),
328
+ _react2.default.createElement(
329
+ _select2.default,
330
+ {
331
+ value: this.state.secondCity,
332
+ disabled: this.props.disabled,
333
+ notFoundContent: notFoundContent,
334
+ allowClear: this.state.secondCity && this.props.allowClear,
335
+ className: 'city',
336
+ onChange: function onChange(value) {
337
+ return _this2.handleCityChange(value);
338
+ } },
339
+ cityOptions
340
+ ),
341
+ _react2.default.createElement(
342
+ _select2.default,
343
+ {
344
+ value: this.state.secondArea,
345
+ className: 'area',
346
+ allowClear: this.state.secondArea && this.props.allowClear,
347
+ disabled: this.props.disabled,
348
+ notFoundContent: notFoundContent,
349
+ onChange: function onChange(value) {
350
+ return _this2.onSecondAreaChange(value);
351
+ } },
352
+ areaOptions
353
+ )
354
+ );
355
+ }
356
+ }]);
357
+ return CitySelect;
358
+ }(_react.Component), _initialiseProps = function _initialiseProps() {
359
+ var _this3 = this;
360
+
361
+ this.buildInitDataArr = function (originalArr, disabledCityArr, lang) {
362
+ var newDataArr = JSON.parse((0, _stringify2.default)(originalArr));
363
+ disabledCityArr = JSON.parse((0, _stringify2.default)(disabledCityArr));
364
+ newDataArr.forEach(function (newDataArr, index, obj) {
365
+ newDataArr.disabled = false;
366
+ var provinceName = newDataArr.name;
367
+ if (disabledCityArr.length > 0) {
368
+ for (var i = 0; i < disabledCityArr.length; i++) {
369
+ if (lang === "en_US") {
370
+ if (provinceName.toLowerCase() === disabledCityArr[i].toLowerCase()) {
371
+ newDataArr.disabled = true;
372
+ }
373
+ } else {
374
+ if (provinceName === disabledCityArr[i]) {
375
+ newDataArr.disabled = true;
376
+ }
377
+ }
378
+ }
379
+ }
380
+ });
381
+ return newDataArr;
382
+ };
383
+
384
+ this.buildAreaInitData = function (areaArr, cityName, disabledAreaObj, lang) {
385
+ var newArr = [];
386
+ for (var i = 0; i < areaArr.length; i++) {
387
+ var jsonItem = {};
388
+ jsonItem.name = areaArr[i];
389
+ jsonItem.disabled = false;
390
+ if (disabledAreaObj != undefined && disabledAreaObj[cityName] != undefined) {
391
+ var disabledAreaArr = disabledAreaObj[cityName];
392
+ for (var j = 0; j < disabledAreaArr.length; j++) {
393
+ if (lang === "en_US") {
394
+ if (areaArr[i].toLowerCase() === disabledAreaArr[j].toLowerCase()) {
395
+ jsonItem.disabled = true;
396
+ }
397
+ } else {
398
+ if (areaArr[i] === disabledAreaArr[j]) {
399
+ jsonItem.disabled = true;
400
+ }
401
+ }
402
+ }
403
+ }
404
+ newArr.push(jsonItem);
405
+ }
406
+ return newArr;
407
+ };
408
+
409
+ this.getIndex = function (type, name, provinceIndex, targetData) {
410
+ var provinceData = targetData || _this3.state.provinceData;
411
+ var provinceI = provinceIndex || _this3.state.provinceIndex;
412
+ provinceI = provinceI < 0 ? 0 : provinceI;
413
+ switch (type) {
414
+ case 'province':
415
+ return (0, _lodash2.default)(provinceData, function (province) {
416
+ return province.name === name;
417
+ });
418
+ case 'city':
419
+ return (0, _lodash2.default)(provinceData[provinceI].city, function (city) {
420
+ return city.name === name;
421
+ });
422
+ }
423
+ };
424
+
425
+ this.handleProvinceChange = function (value, cityValue, areaValue) {
426
+ value = value ? value : '';
427
+ var city = '',
428
+ area = '',
429
+ index = 0,
430
+ citesInitArr = [],
431
+ areasInitData = [];
432
+ if (value !== '') {
433
+ var _state2 = _this3.state,
434
+ provinceData = _state2.provinceData,
435
+ provinceIndex = _state2.provinceIndex;
436
+ var _props2 = _this3.props,
437
+ disabledCityArr = _props2.disabledCityArr,
438
+ disabledAreaObj = _props2.disabledAreaObj,
439
+ lang = _props2.lang;
440
+
441
+ index = _this3.getIndex('province', value);
442
+ if (index > -1) {
443
+ citesInitArr = _this3.buildInitDataArr(provinceData[index].city, disabledCityArr, lang);
444
+ areasInitData = _this3.buildAreaInitData(citesInitArr[0].area, citesInitArr[0].name, disabledAreaObj, lang);
445
+ city = cityValue ? cityValue : citesInitArr[0].name;
446
+ area = areaValue ? areaValue : areasInitData[0].name;
447
+ }
448
+ }
449
+ _this3.setState({
450
+ province: value,
451
+ cities: citesInitArr,
452
+ secondCity: city,
453
+ provinceIndex: index,
454
+ areas: areasInitData,
455
+ secondArea: area
456
+ });
457
+ _this3.onChange(value, city, area);
458
+ };
459
+
460
+ this.handleCityChange = function (value, areaValue) {
461
+ value = value ? value : '';
462
+ var index = '',
463
+ area = '',
464
+ areasInitData = [];
465
+ var _state3 = _this3.state,
466
+ province = _state3.province,
467
+ cities = _state3.cities,
468
+ cityIndex = _state3.cityIndex;
469
+ var _props3 = _this3.props,
470
+ disabledAreaObj = _props3.disabledAreaObj,
471
+ lang = _props3.lang;
472
+
473
+ if (value !== '') {
474
+ index = _this3.getIndex('city', value);
475
+ if (index > -1) {
476
+ areasInitData = _this3.buildAreaInitData(cities[index].area, cities[index].name, disabledAreaObj, lang);
477
+ area = areaValue ? areaValue : areasInitData[0].name;
478
+ }
479
+ }
480
+ _this3.setState({
481
+ secondCity: value,
482
+ areas: areasInitData,
483
+ secondArea: area,
484
+ cityIndex: value
485
+ });
486
+ _this3.onChange(province, value, area);
487
+ };
488
+
489
+ this.onSecondAreaChange = function (value) {
490
+ value = value ? value : '';
491
+ var _state4 = _this3.state,
492
+ province = _state4.province,
493
+ secondCity = _state4.secondCity;
494
+
495
+ _this3.setState({
496
+ secondArea: value
497
+ });
498
+ _this3.onChange(province, secondCity, value);
499
+ };
500
+
501
+ this.onChange = function (province, city, area) {
502
+ _this3.props.onChange({
503
+ province: province,
504
+ city: city,
505
+ area: area
506
+ });
507
+ };
508
+
509
+ this.translateValue = function (province, secondCity, secondArea, preLang) {
510
+ var provinceData = _this3.state.provinceData;
511
+
512
+ var lastData = void 0;
513
+ // if (preLang === 'zh_TW') {
514
+ // lastData = tw.provinceData;
515
+ // } else if (preLang === 'en_US') {
516
+ // lastData = en.provinceData;
517
+ // } else if (preLang === 'zh_CN') {
518
+ lastData = _provinceData.zh.provinceData;
519
+ // }
520
+ var provinceIndex = _this3.getIndex('province', province, undefined, lastData);
521
+ var cityIndex = _this3.getIndex('city', secondCity, provinceIndex, lastData);
522
+ if (provinceIndex > -1 && cityIndex > -1) {
523
+ var areaIndex = (0, _lodash2.default)(lastData[provinceIndex].city[cityIndex].area, function (item) {
524
+ return item === secondArea;
525
+ });
526
+ if (areaIndex < 0) return;
527
+ var newProvince = provinceData[provinceIndex];
528
+ var newCity = newProvince.city[cityIndex];
529
+ return {
530
+ province: newProvince.name,
531
+ city: newCity.name,
532
+ area: newCity.area[areaIndex]
533
+ };
534
+ }
535
+ };
536
+ }, _temp);
537
+
538
+ CitySelect.propTypes = propTypes;
539
+ CitySelect.defaultProps = defaultProps;
540
+ exports.default = CitySelect;
541
+ //# sourceMappingURL=CitySelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["tplus-components-touch/components/acCitySelect/CitySelect.js"],"names":["Option","propTypes","defaultValue","PropTypes","object","value","onChange","func","provinceData","array","lang","string","disabled","bool","disabledProvinceArr","disabledCityArr","disabledAreaObj","allowClear","defaultProps","zh","CitySelect","props","state","provinceIndex","cityIndex","province","secondCity","city","name","secondArea","area","buildInitDataArr","cities","areas","buildAreaInitData","_defaultValue","getIndex","provinceInitData","citiesInitData","areasInitData","setState","nextProps","oldProvince","oldCity","oldArea","preLang","getCurrentValue","newProvince","newCity","newArea","handleProvinceChange","handleCityChange","onSecondAreaChange","result","newValue","translateValue","notFoundContent","provinceOptions","map","index","cityOptions","areaOptions","className","Component","originalArr","newDataArr","JSON","parse","forEach","obj","provinceName","length","i","toLowerCase","areaArr","cityName","newArr","jsonItem","undefined","disabledAreaArr","j","push","type","targetData","provinceI","cityValue","areaValue","citesInitArr","lastData","areaIndex","item"],"mappings":"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","file":"CitySelect.js","sourcesContent":["/*\n * @Descripttion:\n * @version:\n * @Author: chenlongad\n * @Date: 2021-01-06 15:40:39\n * @LastEditors: chenlongad\n * @LastEditTime: 2021-01-06 16:16:27\n */\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Select } from 'antd';\nimport findIndex from 'lodash.findindex';\nimport { zh } from './provinceData';\nimport './CitySelect.less';\nconst Option = Select.Option;\n\nconst propTypes = {\n defaultValue: PropTypes.object,\n value: PropTypes.object,\n onChange: PropTypes.func,\n provinceData: PropTypes.array,\n lang: PropTypes.string,\n disabled: PropTypes.bool, //设置组件是否被禁用;\n disabledProvinceArr: PropTypes.array, //设置禁用的省份\n disabledCityArr: PropTypes.array, //设置禁用的地级市\n disabledAreaObj: PropTypes.object, //设置不可用的区域;\n allowClear : PropTypes.bool //设置城市选择框是否可以被清除;\n};\nconst defaultProps = {\n defaultValue: zh.defaultValue,\n value: zh.defaultValue,\n onChange: () => { },\n provinceData: zh.provinceData,\n lang: 'zh_CN',\n disabled: false,\n allowClear : false,\n disabledProvinceArr: [],\n disabledCityArr: [],\n disabledAreaObj: null\n};\nclass CitySelect extends Component {\n constructor(props) {\n super(props);\n let { provinceData, disabledProvinceArr, disabledCityArr, disabledAreaObj, lang } = props;\n // if (props.lang === 'zh_TW') {\n // provinceData = tw.provinceData;\n // } else if (props.lang === 'en_US') {\n // provinceData = en.provinceData\n // }\n this.state = {\n provinceIndex: 0,\n cityIndex: 0,\n province: '北京',\n secondCity: provinceData[0].city[0].name,\n secondArea: provinceData[0].city[0].area[0],\n provinceData: this.buildInitDataArr(provinceData, disabledProvinceArr, lang),\n cities: this.buildInitDataArr(provinceData[0].city, disabledCityArr, lang),\n areas: this.buildAreaInitData(provinceData[0].city[0].area, provinceData[0].name, disabledAreaObj, lang),\n }\n }\n componentDidMount() {\n let { defaultValue: _defaultValue, value, lang, disabledProvinceArr, disabledCityArr, disabledAreaObj } = this.props;\n let provinceData = this.state.provinceData;\n // if (lang === 'zh_TW') {\n // provinceData = tw.provinceData;\n // _defaultValue = tw.defaultValue;\n // } else if (lang === 'en_US') {\n // provinceData = en.provinceData;\n // _defaultValue = en.defaultValue;\n // }\n let defaultValue = value ? value : _defaultValue;\n let province = defaultValue.province;\n let provinceIndex = this.getIndex('province', defaultValue.province);\n let cityIndex = this.getIndex('city', defaultValue.city, provinceIndex);\n\n provinceIndex = provinceIndex < 0 ? 0 : provinceIndex;\n cityIndex = cityIndex < 0 ? 0 : cityIndex;\n\n let secondCity = defaultValue.city;\n let secondArea = defaultValue.area;\n let provinceInitData = this.buildInitDataArr(provinceData, disabledProvinceArr, lang);\n let citiesInitData = this.buildInitDataArr(provinceInitData[provinceIndex].city, disabledCityArr, lang);\n let areasInitData = this.buildAreaInitData(citiesInitData[cityIndex].area, citiesInitData[cityIndex].name, disabledAreaObj, lang);\n\n this.setState({\n province,\n provinceIndex, //被选中省的下标\n cityIndex, //被选中市的下标\n cities: citiesInitData,\n secondCity: secondCity,\n areas: areasInitData,\n secondArea,\n provinceData: provinceInitData\n });\n }\n\n componentWillReceiveProps(nextProps) {\n if (!nextProps.value) return;\n const { province:oldProvince, city:oldCity, area:oldArea } = this.props.value;\n const { province, city, area } = nextProps.value;\n const { preLang, lang } = nextProps;\n if(province !== oldProvince) {\n const { newProvince, newCity, newArea } = this.getCurrentValue(province, city, area, preLang, lang);\n this.setState({\n province:newProvince,\n });\n return this.handleProvinceChange(newProvince, newCity, newArea);\n }\n if(city !== oldCity) {\n const { newCity, newArea } = this.getCurrentValue(province, city, area, preLang, lang);\n this.setState({\n secondCity: newCity,\n });\n return this.handleCityChange(newCity, newArea);\n }\n if(area !== oldArea) {\n const { newArea } = this.getCurrentValue(province, city, area, preLang, lang);\n this.setState({\n secondArea: newArea\n });\n this.onSecondAreaChange(newArea);\n }\n }\n // 切换语种后,要自动翻译value\n getCurrentValue (province, city, area, preLang, lang) {\n const result = {\n newProvince:province,\n newCity:city,\n newArea:area\n }\n if (!preLang || preLang === lang) return result;\n let newValue = this.translateValue(province, city, area, preLang);\n if (newValue) {\n result.newProvince = newValue.province;\n result.newCity = newValue.city;\n result.newArea = newValue.area\n }\n return result\n }\n\n /**\n * 函数功能:重新构建 省市和区域的初始值;\n * @param originalArr 原始数据;\n * @param disabledCityArr 对应禁用的数据;\n * @param lang 获取语言类型;\n * */\n buildInitDataArr = (originalArr, disabledCityArr, lang) => {\n let newDataArr = JSON.parse(JSON.stringify(originalArr));\n disabledCityArr = JSON.parse(JSON.stringify(disabledCityArr));\n newDataArr.forEach(function (newDataArr, index, obj) {\n newDataArr.disabled = false;\n let provinceName = newDataArr.name;\n if (disabledCityArr.length > 0) {\n for (let i = 0; i < disabledCityArr.length; i++) {\n if (lang === \"en_US\") {\n if (provinceName.toLowerCase() === disabledCityArr[i].toLowerCase()) {\n newDataArr.disabled = true;\n }\n } else {\n if (provinceName === disabledCityArr[i]) {\n newDataArr.disabled = true;\n }\n }\n }\n }\n });\n return newDataArr;\n };\n\n /**\n * 构建区域所在的基本数据;\n * @param areaArr 当前区域原始数据;\n * @param cityName 当前区域所在的城市;\n * @param disabledAreaObj 设置的不可选中的地域数据;\n * @param lang 获取语言类型;\n * */\n buildAreaInitData = (areaArr, cityName, disabledAreaObj, lang) => {\n let newArr = [];\n for (let i = 0; i < areaArr.length; i++) {\n let jsonItem = {};\n jsonItem.name = areaArr[i];\n jsonItem.disabled = false;\n if (disabledAreaObj != undefined && disabledAreaObj[cityName] != undefined) {\n let disabledAreaArr = disabledAreaObj[cityName];\n for (let j = 0; j < disabledAreaArr.length; j++) {\n if (lang === \"en_US\") {\n if (areaArr[i].toLowerCase() === disabledAreaArr[j].toLowerCase()) {\n jsonItem.disabled = true;\n }\n } else {\n if (areaArr[i] === disabledAreaArr[j]) {\n jsonItem.disabled = true;\n }\n }\n }\n }\n newArr.push(jsonItem);\n }\n return newArr;\n };\n\n getIndex = (type, name, provinceIndex, targetData) => {\n let provinceData = targetData || this.state.provinceData;\n let provinceI = provinceIndex || this.state.provinceIndex;\n provinceI = provinceI < 0 ? 0 : provinceI;\n switch (type) {\n case 'province':\n return findIndex(provinceData, function (province) {\n return province.name === name;\n });\n case 'city':\n return findIndex(provinceData[provinceI].city, function (city) {\n return city.name === name;\n });\n }\n };\n handleProvinceChange = (value, cityValue, areaValue) => {\n value = (value) ? value : '';\n let city = '',\n area = '',\n index = 0,\n citesInitArr = [],\n areasInitData = [];\n if(value !== ''){\n let { provinceData,provinceIndex } = this.state;\n let { disabledCityArr, disabledAreaObj, lang } = this.props;\n index = this.getIndex('province', value);\n if(index > -1){\n citesInitArr = this.buildInitDataArr(provinceData[index].city, disabledCityArr, lang);\n areasInitData = this.buildAreaInitData(citesInitArr[0].area, citesInitArr[0].name, disabledAreaObj, lang);\n city = cityValue ? cityValue : citesInitArr[0].name;\n area = areaValue ? areaValue : areasInitData[0].name;\n }\n }\n this.setState({\n province: value,\n cities: citesInitArr,\n secondCity: city,\n provinceIndex: index,\n areas: areasInitData,\n secondArea: area,\n });\n this.onChange(value, city, area);\n };\n handleCityChange = (value, areaValue) => {\n value = (value) ? value : '';\n let index = '',\n area = '',\n areasInitData = [];\n let { province,cities,cityIndex } = this.state;\n let { disabledAreaObj, lang } = this.props;\n if(value !== ''){\n index = this.getIndex('city', value);\n if(index > -1){\n areasInitData = this.buildAreaInitData(cities[index].area, cities[index].name, disabledAreaObj, lang);\n area = areaValue ? areaValue : areasInitData[0].name;\n }\n }\n this.setState({\n secondCity: value,\n areas: areasInitData,\n secondArea: area,\n cityIndex: value\n });\n this.onChange(province, value, area);\n };\n onSecondAreaChange = (value) => {\n value = (value) ? value : '';\n let { province,secondCity } = this.state;\n this.setState({\n secondArea: value,\n });\n this.onChange(province, secondCity, value);\n };\n onChange = (province, city, area) => {\n this.props.onChange({\n province: province,\n city: city,\n area: area\n })\n };\n translateValue = (province, secondCity, secondArea, preLang) => {\n let { provinceData } = this.state;\n let lastData;\n // if (preLang === 'zh_TW') {\n // lastData = tw.provinceData;\n // } else if (preLang === 'en_US') {\n // lastData = en.provinceData;\n // } else if (preLang === 'zh_CN') {\n lastData = zh.provinceData;\n // }\n let provinceIndex = this.getIndex('province', province, undefined, lastData);\n let cityIndex = this.getIndex('city', secondCity, provinceIndex, lastData);\n if (provinceIndex > -1 && cityIndex > -1) {\n let areaIndex = findIndex(lastData[provinceIndex].city[cityIndex].area, function (item) {\n return item === secondArea;\n });\n if (areaIndex < 0) return\n const newProvince = provinceData[provinceIndex];\n const newCity = newProvince.city[cityIndex];\n return {\n province: newProvince.name,\n city: newCity.name,\n area: newCity.area[areaIndex]\n }\n }\n }\n render() {\n let { provinceData, cities, areas } = this.state;\n const { notFoundContent } = this.props;\n\n const provinceOptions = provinceData.map((province, index) => {\n if (province.disabled) {\n return (<Option key={province.name} disabled>{province.name}</Option>);\n } else {\n return (<Option key={province.name} >{province.name}</Option>)\n }\n });\n const cityOptions = cities.map((city, index) => {\n if (city.disabled) {\n return (<Option key={city.name} disabled>{city.name}</Option>);\n } else {\n return (<Option key={city.name} >{city.name}</Option>)\n }\n });\n\n const areaOptions = areas.map((area, index) => {\n if (area.disabled) {\n return (<Option key={area.name} disabled>{area.name}</Option>);\n } else {\n return (<Option key={area.name} >{area.name}</Option>)\n }\n });\n return (\n <div className={classNames(\"city-select\", this.props.className)}>\n <Select\n value={this.state.province}\n className=\"province\"\n disabled={this.props.disabled}\n notFoundContent={notFoundContent}\n allowClear = {this.state.province && this.props.allowClear}\n onChange={(value) => this.handleProvinceChange(value)}>\n {provinceOptions}\n </Select>\n <Select\n value={this.state.secondCity}\n disabled={this.props.disabled}\n notFoundContent={notFoundContent}\n allowClear = {this.state.secondCity && this.props.allowClear}\n className=\"city\"\n onChange={(value) => this.handleCityChange(value)}>\n {cityOptions}\n </Select>\n <Select\n value={this.state.secondArea}\n className=\"area\"\n allowClear = {this.state.secondArea && this.props.allowClear}\n disabled={this.props.disabled}\n notFoundContent={notFoundContent}\n onChange={(value) => this.onSecondAreaChange(value)}>\n {areaOptions}\n </Select>\n </div>\n );\n }\n}\nCitySelect.propTypes = propTypes;\nCitySelect.defaultProps = defaultProps;\nexport default CitySelect;"]}
@@ -0,0 +1,10 @@
1
+
2
+
3
+ .city-select{
4
+ .province , .city{
5
+ margin-right: 10px;
6
+ }
7
+ .ant-select{
8
+ width: 92px;
9
+ }
10
+ }