bxs-tools-ui 1.2.7 → 1.2.9

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.
package/lib/index.css CHANGED
@@ -1982,6 +1982,17 @@ footer {
1982
1982
  .bxt-person-info .bxt-person-info-form {
1983
1983
  background: #fff
1984
1984
  }
1985
+ .bxt-person-info .bxt-person-info-form .bx-form-item {
1986
+ text-align: right
1987
+ }
1988
+ .bxt-person-info .bxt-person-info-form .bx-form-item .bx-form-item-label__icon span {
1989
+ vertical-align: middle;
1990
+ }
1991
+ .bxt-person-info .bxt-person-info-form .bx-form-item .bx-form-item-label__icon .bx-iconfont {
1992
+ margin-left: 5px;
1993
+ font-size: 18px;
1994
+ vertical-align: middle;
1995
+ }
1985
1996
  .bxt-person-info .bxt-person-info-form .bx-form-item .bx-form-item__inner .bx-form-item__content {
1986
1997
  text-align: right;
1987
1998
  }
@@ -2139,8 +2150,9 @@ footer {
2139
2150
  display: inline-block
2140
2151
  }
2141
2152
  .bxt-product-info .bxt-product-info-form .bx-form-item.bxt-ins-form-radio .bxt-ins-form-radio-content .bxt-ins-form-radio--code {
2153
+ line-height: 1.45;
2142
2154
  margin-right: 4px;
2143
- padding: 1px 4px;
2155
+ padding: 0 4px;
2144
2156
  border-radius: 4px;
2145
2157
  color: #ff703e;
2146
2158
  border: 1px solid #ff703e;
@@ -2149,18 +2161,15 @@ footer {
2149
2161
  transform: scale(0.8334);
2150
2162
  -webkit-transform-origin: left center;
2151
2163
  transform-origin: left center;
2152
- vertical-align: middle;
2164
+ vertical-align: 1px;
2153
2165
  }
2154
2166
  .bxt-product-info .bxt-product-info-form .bx-form-item.bxt-ins-form-radio .bxt-ins-form-radio-content .bxt-ins-form-radio--tx {
2155
- width: 100%;
2156
- white-space: nowrap;
2157
- overflow: hidden;
2158
- text-overflow: ellipsis;
2159
-
2160
2167
  display: inline-block;
2161
2168
  width: auto;
2169
+ line-height: 1.45;
2162
2170
  max-width: 15rem;
2163
- vertical-align: middle
2171
+ font-size: 14px;
2172
+ vertical-align: top
2164
2173
  }
2165
2174
  .bxt-product-info .bxt-product-info-form .bx-form-item.bxt-ins-form-radio .bxt-ins-form-radio-content .bxt-ins-form-radio--tx.bxt-ins-form-radio--width {
2166
2175
  max-width: 12rem;
package/lib/index.js CHANGED
@@ -9720,8 +9720,8 @@ module.exports = function spread(callback) {
9720
9720
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9721
9721
 
9722
9722
  "use strict";
9723
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1d474021_prod_lang_postcss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73);
9724
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1d474021_prod_lang_postcss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1d474021_prod_lang_postcss___WEBPACK_IMPORTED_MODULE_0__);
9723
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_29cd8a4d_prod_lang_postcss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73);
9724
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_29cd8a4d_prod_lang_postcss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_29cd8a4d_prod_lang_postcss___WEBPACK_IMPORTED_MODULE_0__);
9725
9725
  /* unused harmony reexport * */
9726
9726
 
9727
9727
 
@@ -9730,8 +9730,8 @@ module.exports = function spread(callback) {
9730
9730
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9731
9731
 
9732
9732
  "use strict";
9733
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_d7654e86_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74);
9734
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_d7654e86_prod_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_d7654e86_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__);
9733
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_010d3f44_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74);
9734
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_010d3f44_prod_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_010d3f44_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__);
9735
9735
  /* unused harmony reexport * */
9736
9736
 
9737
9737
 
@@ -14645,8 +14645,8 @@ var insure_calculate_component = normalizeComponent(
14645
14645
  )
14646
14646
 
14647
14647
  /* harmony default export */ var insure_calculate = (insure_calculate_component.exports);
14648
- // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./packages/person-info/index.vue?vue&type=template&id=1d474021&
14649
- var person_infovue_type_template_id_1d474021_render = function render() {
14648
+ // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./packages/person-info/index.vue?vue&type=template&id=29cd8a4d&
14649
+ var person_infovue_type_template_id_29cd8a4d_render = function render() {
14650
14650
  var _vm = this,
14651
14651
  _c = _vm._self._c,
14652
14652
  _setup = _vm._self._setupProxy;
@@ -14658,6 +14658,7 @@ var person_infovue_type_template_id_1d474021_render = function render() {
14658
14658
  staticClass: "bxt-person-info-form",
14659
14659
  attrs: {
14660
14660
  "model": _vm.personForm,
14661
+ "rules": _vm.personData.rules || {},
14661
14662
  "is-content-vertical-alignment": false
14662
14663
  },
14663
14664
  nativeOn: {
@@ -14668,7 +14669,11 @@ var person_infovue_type_template_id_1d474021_render = function render() {
14668
14669
  }
14669
14670
  }, [_vm._l(_vm.personData.eleOrderList, function (ele) {
14670
14671
  return [['cmCommonTitle'].includes(ele.componentName) ? [_c('bxs-form-item', {
14671
- key: ele.key
14672
+ key: ele.key,
14673
+ attrs: {
14674
+ "prop": ele.key,
14675
+ "rules": ele.rules
14676
+ }
14672
14677
  }, [_c('TitleItem', {
14673
14678
  style: {
14674
14679
  fontSize: '17px',
@@ -14714,9 +14719,23 @@ var person_infovue_type_template_id_1d474021_render = function render() {
14714
14719
  }) : _vm._e()], 1)] : _vm._e(), ['cmCommonInput'].includes(ele.componentName) ? [_vm.isShowPersonElement(_vm.personData, ele) && !ele.isHide ? _c('bxs-form-item', {
14715
14720
  key: ele.key,
14716
14721
  attrs: {
14717
- "label": ele.label
14722
+ "prop": ele.key,
14723
+ "rules": ele.rules
14718
14724
  }
14719
- }, [_c('bxs-input', {
14725
+ }, [_c('div', {
14726
+ staticClass: "bx-form-item-label__icon",
14727
+ attrs: {
14728
+ "slot": "label"
14729
+ },
14730
+ on: {
14731
+ "click": function click($event) {
14732
+ return _vm.onClickLabel(ele);
14733
+ }
14734
+ },
14735
+ slot: "label"
14736
+ }, [_c('span', [_vm._v(_vm._s(ele.label))]), ele.labelIcon ? _c('i', {
14737
+ class: ['bx-iconfont', 'iconfont', ele.labelIcon || '']
14738
+ }) : _vm._e()]), _c('bxs-input', {
14720
14739
  attrs: {
14721
14740
  "id": "id_".concat(_vm.personData.key, "_").concat(ele.key),
14722
14741
  "autosize": "",
@@ -14729,7 +14748,8 @@ var person_infovue_type_template_id_1d474021_render = function render() {
14729
14748
  "right-icon": {
14730
14749
  prefix: 'icon',
14731
14750
  name: 'edit2 iconfont'
14732
- }
14751
+ },
14752
+ "autocomplete": "off"
14733
14753
  },
14734
14754
  on: {
14735
14755
  "change": function change($event) {
@@ -14742,7 +14762,7 @@ var person_infovue_type_template_id_1d474021_render = function render() {
14742
14762
  model: {
14743
14763
  value: ele.value,
14744
14764
  callback: function callback($$v) {
14745
- _vm.$set(ele, "value", _vm._n($$v));
14765
+ _vm.$set(ele, "value", $$v);
14746
14766
  },
14747
14767
  expression: "ele.value"
14748
14768
  }
@@ -14751,6 +14771,7 @@ var person_infovue_type_template_id_1d474021_render = function render() {
14751
14771
  staticClass: "bx-form-item__radio",
14752
14772
  attrs: {
14753
14773
  "prop": ele.key,
14774
+ "rules": ele.rules,
14754
14775
  "label": ele.label
14755
14776
  }
14756
14777
  }, [_c('bxs-radio-group', {
@@ -14779,6 +14800,7 @@ var person_infovue_type_template_id_1d474021_render = function render() {
14779
14800
  key: ele.key,
14780
14801
  attrs: {
14781
14802
  "prop": ele.key,
14803
+ "rules": ele.rules,
14782
14804
  "label": ele.label
14783
14805
  }
14784
14806
  }, [_c('SelectItem', {
@@ -14809,6 +14831,7 @@ var person_infovue_type_template_id_1d474021_render = function render() {
14809
14831
  key: ele.key,
14810
14832
  attrs: {
14811
14833
  "prop": ele.key,
14834
+ "rules": ele.rules,
14812
14835
  "label": ele.label
14813
14836
  }
14814
14837
  }, [_c('AgeBirthdayItem', {
@@ -14837,9 +14860,9 @@ var person_infovue_type_template_id_1d474021_render = function render() {
14837
14860
  })], 2)], 1);
14838
14861
  };
14839
14862
 
14840
- var person_infovue_type_template_id_1d474021_staticRenderFns = [];
14863
+ var person_infovue_type_template_id_29cd8a4d_staticRenderFns = [];
14841
14864
 
14842
- // CONCATENATED MODULE: ./packages/person-info/index.vue?vue&type=template&id=1d474021&
14865
+ // CONCATENATED MODULE: ./packages/person-info/index.vue?vue&type=template&id=29cd8a4d&
14843
14866
 
14844
14867
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/form-item/title-item.vue?vue&type=template&id=069698f6&
14845
14868
  var title_itemvue_type_template_id_069698f6_render = function render() {
@@ -15654,6 +15677,9 @@ var person_infovue_type_script_lang_ts_BxtPersonInfo = (function (_super) {
15654
15677
  }
15655
15678
  return bool;
15656
15679
  };
15680
+ BxtPersonInfo.prototype.onClickLabel = function (ele) {
15681
+ this.$emit('clickLabel', this.personData, ele);
15682
+ };
15657
15683
  BxtPersonInfo.prototype.onClickIcon = function (id) {
15658
15684
  var inputDom = document.querySelector("#" + id);
15659
15685
  inputDom.focus();
@@ -15680,6 +15706,24 @@ var person_infovue_type_script_lang_ts_BxtPersonInfo = (function (_super) {
15680
15706
  }
15681
15707
  this.$emit('change', this.personData, ele);
15682
15708
  };
15709
+ BxtPersonInfo.prototype.validate = function () {
15710
+ var _this = this;
15711
+ if (!this.personForm.title) {
15712
+ return Promise.resolve();
15713
+ }
15714
+ return new Promise(function (resolve, reject) {
15715
+ var _a, _b;
15716
+ (_b = (_a = _this.$refs) === null || _a === void 0 ? void 0 : _a.personForm) === null || _b === void 0 ? void 0 : _b.validate().then(function (valid) {
15717
+ if (!valid) {
15718
+ resolve(valid);
15719
+ return;
15720
+ }
15721
+ reject();
15722
+ }).catch(function (err) {
15723
+ reject(err);
15724
+ });
15725
+ });
15726
+ };
15683
15727
  BxtPersonInfo.prototype.closeKeyBoard = function () {
15684
15728
  var activeElement = document.activeElement;
15685
15729
  if (!activeElement) {
@@ -15740,8 +15784,8 @@ var person_infovue_type_script_lang_ts_BxtPersonInfo = (function (_super) {
15740
15784
 
15741
15785
  // CONCATENATED MODULE: ./packages/person-info/index.vue?vue&type=script&lang=ts&
15742
15786
  /* harmony default export */ var packages_person_infovue_type_script_lang_ts_ = (person_infovue_type_script_lang_ts_);
15743
- // EXTERNAL MODULE: ./packages/person-info/index.vue?vue&type=style&index=0&id=1d474021&prod&lang=postcss&
15744
- var person_infovue_type_style_index_0_id_1d474021_prod_lang_postcss_ = __webpack_require__(187);
15787
+ // EXTERNAL MODULE: ./packages/person-info/index.vue?vue&type=style&index=0&id=29cd8a4d&prod&lang=postcss&
15788
+ var person_infovue_type_style_index_0_id_29cd8a4d_prod_lang_postcss_ = __webpack_require__(187);
15745
15789
 
15746
15790
  // CONCATENATED MODULE: ./packages/person-info/index.vue
15747
15791
 
@@ -15754,8 +15798,8 @@ var person_infovue_type_style_index_0_id_1d474021_prod_lang_postcss_ = __webpack
15754
15798
 
15755
15799
  var person_info_component = normalizeComponent(
15756
15800
  packages_person_infovue_type_script_lang_ts_,
15757
- person_infovue_type_template_id_1d474021_render,
15758
- person_infovue_type_template_id_1d474021_staticRenderFns,
15801
+ person_infovue_type_template_id_29cd8a4d_render,
15802
+ person_infovue_type_template_id_29cd8a4d_staticRenderFns,
15759
15803
  false,
15760
15804
  null,
15761
15805
  null,
@@ -15764,8 +15808,8 @@ var person_info_component = normalizeComponent(
15764
15808
  )
15765
15809
 
15766
15810
  /* harmony default export */ var person_info = (person_info_component.exports);
15767
- // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./packages/product-info/index.vue?vue&type=template&id=d7654e86&
15768
- var product_infovue_type_template_id_d7654e86_render = function render() {
15811
+ // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./packages/product-info/index.vue?vue&type=template&id=010d3f44&
15812
+ var product_infovue_type_template_id_010d3f44_render = function render() {
15769
15813
  var _vm = this,
15770
15814
  _c = _vm._self._c,
15771
15815
  _setup = _vm._self._setupProxy;
@@ -15979,7 +16023,7 @@ var product_infovue_type_template_id_d7654e86_render = function render() {
15979
16023
  }, [_vm._v(_vm._s(opt.code))]) : _vm._e(), _c('span', {
15980
16024
  staticClass: "bxt-ins-form-radio--tx",
15981
16025
  class: [_vm.genInsuranceHmTag(opt) ? 'bxt-ins-form-radio--width' : '']
15982
- }, [_vm._v(_vm._s(_vm.sliceRadioOptDesc(opt.desc)))]), _vm.genInsuranceHmTag(opt) ? _c('span', {
16026
+ }, [_vm._v("\n " + _vm._s(opt.desc) + "\n ")]), _vm.genInsuranceHmTag(opt) ? _c('span', {
15983
16027
  staticClass: "bxt-ins-form-radio--tag"
15984
16028
  }, [_vm._v(_vm._s(_vm.genInsuranceHmTag(opt)))]) : _vm._e()])])];
15985
16029
  })], 2)], 1)] : _vm._e(), ['cmCommonSelect'].includes(ele.componentName) ? [_c('bxs-form-item', {
@@ -16033,9 +16077,9 @@ var product_infovue_type_template_id_d7654e86_render = function render() {
16033
16077
  })], 2) : _vm._e();
16034
16078
  };
16035
16079
 
16036
- var product_infovue_type_template_id_d7654e86_staticRenderFns = [];
16080
+ var product_infovue_type_template_id_010d3f44_staticRenderFns = [];
16037
16081
 
16038
- // CONCATENATED MODULE: ./packages/product-info/index.vue?vue&type=template&id=d7654e86&
16082
+ // CONCATENATED MODULE: ./packages/product-info/index.vue?vue&type=template&id=010d3f44&
16039
16083
 
16040
16084
  // CONCATENATED MODULE: ./node_modules/ts-loader??ref--0!./node_modules/vue-loader/lib??vue-loader-options!./packages/product-info/index.vue?vue&type=script&lang=ts&
16041
16085
  var product_infovue_type_script_lang_ts_a;
@@ -16169,14 +16213,6 @@ var product_infovue_type_script_lang_ts_BxtProductInfo = (function (_super) {
16169
16213
  BxtProductInfo.prototype.isIgnoreValidate = function (ins, ele) {
16170
16214
  return !this.isInsuranceChecked(ins) || ele.isHide || ele.isIgnoreValidate;
16171
16215
  };
16172
- BxtProductInfo.prototype.sliceRadioOptDesc = function (desc) {
16173
- if (desc && desc.length > 16) {
16174
- return desc.substr(0, 16) + '...';
16175
- }
16176
- else {
16177
- return desc;
16178
- }
16179
- };
16180
16216
  BxtProductInfo.prototype.genInsuranceHmTag = function (opt) {
16181
16217
  var refInsurance = this.productData.mulInsOrderList.find(function (ins) { return ins.key === opt.val; });
16182
16218
  if (!refInsurance) {
@@ -16317,8 +16353,8 @@ var product_infovue_type_script_lang_ts_BxtProductInfo = (function (_super) {
16317
16353
 
16318
16354
  // CONCATENATED MODULE: ./packages/product-info/index.vue?vue&type=script&lang=ts&
16319
16355
  /* harmony default export */ var packages_product_infovue_type_script_lang_ts_ = (product_infovue_type_script_lang_ts_);
16320
- // EXTERNAL MODULE: ./packages/product-info/index.vue?vue&type=style&index=0&id=d7654e86&prod&lang=css&
16321
- var product_infovue_type_style_index_0_id_d7654e86_prod_lang_css_ = __webpack_require__(188);
16356
+ // EXTERNAL MODULE: ./packages/product-info/index.vue?vue&type=style&index=0&id=010d3f44&prod&lang=css&
16357
+ var product_infovue_type_style_index_0_id_010d3f44_prod_lang_css_ = __webpack_require__(188);
16322
16358
 
16323
16359
  // CONCATENATED MODULE: ./packages/product-info/index.vue
16324
16360
 
@@ -16331,8 +16367,8 @@ var product_infovue_type_style_index_0_id_d7654e86_prod_lang_css_ = __webpack_re
16331
16367
 
16332
16368
  var product_info_component = normalizeComponent(
16333
16369
  packages_product_infovue_type_script_lang_ts_,
16334
- product_infovue_type_template_id_d7654e86_render,
16335
- product_infovue_type_template_id_d7654e86_staticRenderFns,
16370
+ product_infovue_type_template_id_010d3f44_render,
16371
+ product_infovue_type_template_id_010d3f44_staticRenderFns,
16336
16372
  false,
16337
16373
  null,
16338
16374
  null,
@@ -526,6 +526,17 @@ footer {
526
526
  .bxt-person-info .bxt-person-info-form {
527
527
  background: #fff
528
528
  }
529
+ .bxt-person-info .bxt-person-info-form .bx-form-item {
530
+ text-align: right
531
+ }
532
+ .bxt-person-info .bxt-person-info-form .bx-form-item .bx-form-item-label__icon span {
533
+ vertical-align: middle;
534
+ }
535
+ .bxt-person-info .bxt-person-info-form .bx-form-item .bx-form-item-label__icon .bx-iconfont {
536
+ margin-left: 5px;
537
+ font-size: 18px;
538
+ vertical-align: middle;
539
+ }
529
540
  .bxt-person-info .bxt-person-info-form .bx-form-item .bx-form-item__inner .bx-form-item__content {
530
541
  text-align: right;
531
542
  }
@@ -6238,8 +6238,8 @@ var component = Object(componentNormalizer["a" /* default */])(
6238
6238
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
6239
6239
 
6240
6240
  "use strict";
6241
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1d474021_prod_lang_postcss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(174);
6242
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1d474021_prod_lang_postcss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1d474021_prod_lang_postcss___WEBPACK_IMPORTED_MODULE_0__);
6241
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_29cd8a4d_prod_lang_postcss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(174);
6242
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_29cd8a4d_prod_lang_postcss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_29cd8a4d_prod_lang_postcss___WEBPACK_IMPORTED_MODULE_0__);
6243
6243
  /* unused harmony reexport * */
6244
6244
 
6245
6245
 
@@ -6252,7 +6252,7 @@ var component = Object(componentNormalizer["a" /* default */])(
6252
6252
  // ESM COMPAT FLAG
6253
6253
  __webpack_require__.r(__webpack_exports__);
6254
6254
 
6255
- // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./packages/person-info/index.vue?vue&type=template&id=1d474021&
6255
+ // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./packages/person-info/index.vue?vue&type=template&id=29cd8a4d&
6256
6256
  var render = function render() {
6257
6257
  var _vm = this,
6258
6258
  _c = _vm._self._c,
@@ -6265,6 +6265,7 @@ var render = function render() {
6265
6265
  staticClass: "bxt-person-info-form",
6266
6266
  attrs: {
6267
6267
  "model": _vm.personForm,
6268
+ "rules": _vm.personData.rules || {},
6268
6269
  "is-content-vertical-alignment": false
6269
6270
  },
6270
6271
  nativeOn: {
@@ -6275,7 +6276,11 @@ var render = function render() {
6275
6276
  }
6276
6277
  }, [_vm._l(_vm.personData.eleOrderList, function (ele) {
6277
6278
  return [['cmCommonTitle'].includes(ele.componentName) ? [_c('bxs-form-item', {
6278
- key: ele.key
6279
+ key: ele.key,
6280
+ attrs: {
6281
+ "prop": ele.key,
6282
+ "rules": ele.rules
6283
+ }
6279
6284
  }, [_c('TitleItem', {
6280
6285
  style: {
6281
6286
  fontSize: '17px',
@@ -6321,9 +6326,23 @@ var render = function render() {
6321
6326
  }) : _vm._e()], 1)] : _vm._e(), ['cmCommonInput'].includes(ele.componentName) ? [_vm.isShowPersonElement(_vm.personData, ele) && !ele.isHide ? _c('bxs-form-item', {
6322
6327
  key: ele.key,
6323
6328
  attrs: {
6324
- "label": ele.label
6329
+ "prop": ele.key,
6330
+ "rules": ele.rules
6325
6331
  }
6326
- }, [_c('bxs-input', {
6332
+ }, [_c('div', {
6333
+ staticClass: "bx-form-item-label__icon",
6334
+ attrs: {
6335
+ "slot": "label"
6336
+ },
6337
+ on: {
6338
+ "click": function click($event) {
6339
+ return _vm.onClickLabel(ele);
6340
+ }
6341
+ },
6342
+ slot: "label"
6343
+ }, [_c('span', [_vm._v(_vm._s(ele.label))]), ele.labelIcon ? _c('i', {
6344
+ class: ['bx-iconfont', 'iconfont', ele.labelIcon || '']
6345
+ }) : _vm._e()]), _c('bxs-input', {
6327
6346
  attrs: {
6328
6347
  "id": "id_".concat(_vm.personData.key, "_").concat(ele.key),
6329
6348
  "autosize": "",
@@ -6336,7 +6355,8 @@ var render = function render() {
6336
6355
  "right-icon": {
6337
6356
  prefix: 'icon',
6338
6357
  name: 'edit2 iconfont'
6339
- }
6358
+ },
6359
+ "autocomplete": "off"
6340
6360
  },
6341
6361
  on: {
6342
6362
  "change": function change($event) {
@@ -6349,7 +6369,7 @@ var render = function render() {
6349
6369
  model: {
6350
6370
  value: ele.value,
6351
6371
  callback: function callback($$v) {
6352
- _vm.$set(ele, "value", _vm._n($$v));
6372
+ _vm.$set(ele, "value", $$v);
6353
6373
  },
6354
6374
  expression: "ele.value"
6355
6375
  }
@@ -6358,6 +6378,7 @@ var render = function render() {
6358
6378
  staticClass: "bx-form-item__radio",
6359
6379
  attrs: {
6360
6380
  "prop": ele.key,
6381
+ "rules": ele.rules,
6361
6382
  "label": ele.label
6362
6383
  }
6363
6384
  }, [_c('bxs-radio-group', {
@@ -6386,6 +6407,7 @@ var render = function render() {
6386
6407
  key: ele.key,
6387
6408
  attrs: {
6388
6409
  "prop": ele.key,
6410
+ "rules": ele.rules,
6389
6411
  "label": ele.label
6390
6412
  }
6391
6413
  }, [_c('SelectItem', {
@@ -6416,6 +6438,7 @@ var render = function render() {
6416
6438
  key: ele.key,
6417
6439
  attrs: {
6418
6440
  "prop": ele.key,
6441
+ "rules": ele.rules,
6419
6442
  "label": ele.label
6420
6443
  }
6421
6444
  }, [_c('AgeBirthdayItem', {
@@ -6446,7 +6469,7 @@ var render = function render() {
6446
6469
 
6447
6470
  var staticRenderFns = [];
6448
6471
 
6449
- // CONCATENATED MODULE: ./packages/person-info/index.vue?vue&type=template&id=1d474021&
6472
+ // CONCATENATED MODULE: ./packages/person-info/index.vue?vue&type=template&id=29cd8a4d&
6450
6473
 
6451
6474
  // EXTERNAL MODULE: ./node_modules/tslib/tslib.es6.js
6452
6475
  var tslib_es6 = __webpack_require__(0);
@@ -7110,6 +7133,9 @@ var person_infovue_type_script_lang_ts_BxtPersonInfo = (function (_super) {
7110
7133
  }
7111
7134
  return bool;
7112
7135
  };
7136
+ BxtPersonInfo.prototype.onClickLabel = function (ele) {
7137
+ this.$emit('clickLabel', this.personData, ele);
7138
+ };
7113
7139
  BxtPersonInfo.prototype.onClickIcon = function (id) {
7114
7140
  var inputDom = document.querySelector("#" + id);
7115
7141
  inputDom.focus();
@@ -7136,6 +7162,24 @@ var person_infovue_type_script_lang_ts_BxtPersonInfo = (function (_super) {
7136
7162
  }
7137
7163
  this.$emit('change', this.personData, ele);
7138
7164
  };
7165
+ BxtPersonInfo.prototype.validate = function () {
7166
+ var _this = this;
7167
+ if (!this.personForm.title) {
7168
+ return Promise.resolve();
7169
+ }
7170
+ return new Promise(function (resolve, reject) {
7171
+ var _a, _b;
7172
+ (_b = (_a = _this.$refs) === null || _a === void 0 ? void 0 : _a.personForm) === null || _b === void 0 ? void 0 : _b.validate().then(function (valid) {
7173
+ if (!valid) {
7174
+ resolve(valid);
7175
+ return;
7176
+ }
7177
+ reject();
7178
+ }).catch(function (err) {
7179
+ reject(err);
7180
+ });
7181
+ });
7182
+ };
7139
7183
  BxtPersonInfo.prototype.closeKeyBoard = function () {
7140
7184
  var activeElement = document.activeElement;
7141
7185
  if (!activeElement) {
@@ -7196,8 +7240,8 @@ var person_infovue_type_script_lang_ts_BxtPersonInfo = (function (_super) {
7196
7240
 
7197
7241
  // CONCATENATED MODULE: ./packages/person-info/index.vue?vue&type=script&lang=ts&
7198
7242
  /* harmony default export */ var packages_person_infovue_type_script_lang_ts_ = (person_infovue_type_script_lang_ts_);
7199
- // EXTERNAL MODULE: ./packages/person-info/index.vue?vue&type=style&index=0&id=1d474021&prod&lang=postcss&
7200
- var person_infovue_type_style_index_0_id_1d474021_prod_lang_postcss_ = __webpack_require__(195);
7243
+ // EXTERNAL MODULE: ./packages/person-info/index.vue?vue&type=style&index=0&id=29cd8a4d&prod&lang=postcss&
7244
+ var person_infovue_type_style_index_0_id_29cd8a4d_prod_lang_postcss_ = __webpack_require__(195);
7201
7245
 
7202
7246
  // CONCATENATED MODULE: ./packages/person-info/index.vue
7203
7247
 
@@ -365,8 +365,9 @@ footer {
365
365
  display: inline-block
366
366
  }
367
367
  .bxt-product-info .bxt-product-info-form .bx-form-item.bxt-ins-form-radio .bxt-ins-form-radio-content .bxt-ins-form-radio--code {
368
+ line-height: 1.45;
368
369
  margin-right: 4px;
369
- padding: 1px 4px;
370
+ padding: 0 4px;
370
371
  border-radius: 4px;
371
372
  color: #ff703e;
372
373
  border: 1px solid #ff703e;
@@ -375,18 +376,15 @@ footer {
375
376
  transform: scale(0.8334);
376
377
  -webkit-transform-origin: left center;
377
378
  transform-origin: left center;
378
- vertical-align: middle;
379
+ vertical-align: 1px;
379
380
  }
380
381
  .bxt-product-info .bxt-product-info-form .bx-form-item.bxt-ins-form-radio .bxt-ins-form-radio-content .bxt-ins-form-radio--tx {
381
- width: 100%;
382
- white-space: nowrap;
383
- overflow: hidden;
384
- text-overflow: ellipsis;
385
-
386
382
  display: inline-block;
387
383
  width: auto;
384
+ line-height: 1.45;
388
385
  max-width: 15rem;
389
- vertical-align: middle
386
+ font-size: 14px;
387
+ vertical-align: top
390
388
  }
391
389
  .bxt-product-info .bxt-product-info-form .bx-form-item.bxt-ins-form-radio .bxt-ins-form-radio-content .bxt-ins-form-radio--tx.bxt-ins-form-radio--width {
392
390
  max-width: 12rem;
@@ -2103,8 +2103,8 @@ var component = Object(componentNormalizer["a" /* default */])(
2103
2103
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
2104
2104
 
2105
2105
  "use strict";
2106
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_d7654e86_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(175);
2107
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_d7654e86_prod_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_d7654e86_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__);
2106
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_010d3f44_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(175);
2107
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_010d3f44_prod_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_010d3f44_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__);
2108
2108
  /* unused harmony reexport * */
2109
2109
 
2110
2110
 
@@ -2755,7 +2755,7 @@ module.exports = function bind(fn, thisArg) {
2755
2755
  // ESM COMPAT FLAG
2756
2756
  __webpack_require__.r(__webpack_exports__);
2757
2757
 
2758
- // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./packages/product-info/index.vue?vue&type=template&id=d7654e86&
2758
+ // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./packages/product-info/index.vue?vue&type=template&id=010d3f44&
2759
2759
  var render = function render() {
2760
2760
  var _vm = this,
2761
2761
  _c = _vm._self._c,
@@ -2970,7 +2970,7 @@ var render = function render() {
2970
2970
  }, [_vm._v(_vm._s(opt.code))]) : _vm._e(), _c('span', {
2971
2971
  staticClass: "bxt-ins-form-radio--tx",
2972
2972
  class: [_vm.genInsuranceHmTag(opt) ? 'bxt-ins-form-radio--width' : '']
2973
- }, [_vm._v(_vm._s(_vm.sliceRadioOptDesc(opt.desc)))]), _vm.genInsuranceHmTag(opt) ? _c('span', {
2973
+ }, [_vm._v("\n " + _vm._s(opt.desc) + "\n ")]), _vm.genInsuranceHmTag(opt) ? _c('span', {
2974
2974
  staticClass: "bxt-ins-form-radio--tag"
2975
2975
  }, [_vm._v(_vm._s(_vm.genInsuranceHmTag(opt)))]) : _vm._e()])])];
2976
2976
  })], 2)], 1)] : _vm._e(), ['cmCommonSelect'].includes(ele.componentName) ? [_c('bxs-form-item', {
@@ -3026,7 +3026,7 @@ var render = function render() {
3026
3026
 
3027
3027
  var staticRenderFns = [];
3028
3028
 
3029
- // CONCATENATED MODULE: ./packages/product-info/index.vue?vue&type=template&id=d7654e86&
3029
+ // CONCATENATED MODULE: ./packages/product-info/index.vue?vue&type=template&id=010d3f44&
3030
3030
 
3031
3031
  // EXTERNAL MODULE: ./node_modules/tslib/tslib.es6.js
3032
3032
  var tslib_es6 = __webpack_require__(0);
@@ -3185,14 +3185,6 @@ var product_infovue_type_script_lang_ts_BxtProductInfo = (function (_super) {
3185
3185
  BxtProductInfo.prototype.isIgnoreValidate = function (ins, ele) {
3186
3186
  return !this.isInsuranceChecked(ins) || ele.isHide || ele.isIgnoreValidate;
3187
3187
  };
3188
- BxtProductInfo.prototype.sliceRadioOptDesc = function (desc) {
3189
- if (desc && desc.length > 16) {
3190
- return desc.substr(0, 16) + '...';
3191
- }
3192
- else {
3193
- return desc;
3194
- }
3195
- };
3196
3188
  BxtProductInfo.prototype.genInsuranceHmTag = function (opt) {
3197
3189
  var refInsurance = this.productData.mulInsOrderList.find(function (ins) { return ins.key === opt.val; });
3198
3190
  if (!refInsurance) {
@@ -3333,8 +3325,8 @@ var product_infovue_type_script_lang_ts_BxtProductInfo = (function (_super) {
3333
3325
 
3334
3326
  // CONCATENATED MODULE: ./packages/product-info/index.vue?vue&type=script&lang=ts&
3335
3327
  /* harmony default export */ var packages_product_infovue_type_script_lang_ts_ = (product_infovue_type_script_lang_ts_);
3336
- // EXTERNAL MODULE: ./packages/product-info/index.vue?vue&type=style&index=0&id=d7654e86&prod&lang=css&
3337
- var product_infovue_type_style_index_0_id_d7654e86_prod_lang_css_ = __webpack_require__(196);
3328
+ // EXTERNAL MODULE: ./packages/product-info/index.vue?vue&type=style&index=0&id=010d3f44&prod&lang=css&
3329
+ var product_infovue_type_style_index_0_id_010d3f44_prod_lang_css_ = __webpack_require__(196);
3338
3330
 
3339
3331
  // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
3340
3332
  var componentNormalizer = __webpack_require__(7);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bxs-tools-ui",
3
- "version": "1.2.7",
3
+ "version": "1.2.9",
4
4
  "description": "微易前端业务组件",
5
5
  "main": "lib/index.js",
6
6
  "files": [
@@ -5,6 +5,20 @@
5
5
  background: #fff;
6
6
 
7
7
  & .bx-form-item {
8
+ text-align: right;
9
+
10
+ & .bx-form-item-label__icon {
11
+ & span {
12
+ vertical-align: middle;
13
+ }
14
+
15
+ & .bx-iconfont {
16
+ margin-left: 5px;
17
+ font-size: 18px;
18
+ vertical-align: middle;
19
+ }
20
+ }
21
+
8
22
  & .bx-form-item__inner {
9
23
  & .bx-form-item__content {
10
24
  text-align: right;
@@ -4,12 +4,13 @@
4
4
  class="bxt-person-info-form"
5
5
  ref="personForm"
6
6
  :model="personForm"
7
+ :rules="personData.rules || {}"
7
8
  :is-content-vertical-alignment="false"
8
9
  @submit.native.prevent="closeKeyBoard()"
9
10
  >
10
11
  <template v-for="ele in personData.eleOrderList">
11
12
  <template v-if="['cmCommonTitle'].includes(ele.componentName)">
12
- <bxs-form-item :key="ele.key">
13
+ <bxs-form-item :key="ele.key" :prop="ele.key" :rules="ele.rules">
13
14
  <TitleItem
14
15
  v-model="ele.value"
15
16
  :data-stat-id="`TCRYXX_${personData.key}`"
@@ -34,14 +35,23 @@
34
35
  </bxs-form-item>
35
36
  </template>
36
37
  <template v-if="['cmCommonInput'].includes(ele.componentName)">
37
- <bxs-form-item v-if="isShowPersonElement(personData, ele) && !ele.isHide" :key="ele.key" :label="ele.label">
38
+ <bxs-form-item
39
+ v-if="isShowPersonElement(personData, ele) && !ele.isHide"
40
+ :key="ele.key"
41
+ :prop="ele.key"
42
+ :rules="ele.rules"
43
+ >
44
+ <div class="bx-form-item-label__icon" slot="label" @click="onClickLabel(ele)">
45
+ <span>{{ ele.label }}</span>
46
+ <i v-if="ele.labelIcon" :class="['bx-iconfont', 'iconfont', ele.labelIcon || '']"></i>
47
+ </div>
38
48
  <bxs-input
39
49
  :id="`id_${personData.key}_${ele.key}`"
40
50
  autosize
41
51
  type="text"
42
52
  border
43
53
  :placeholder="ele.placeholder"
44
- v-model.number="ele.value"
54
+ v-model="ele.value"
45
55
  :disabled="!!ele.isDisabled"
46
56
  :readonly="!!ele.isDisabled"
47
57
  :maxlength="ele.maxlength || 9"
@@ -49,6 +59,7 @@
49
59
  prefix: 'icon',
50
60
  name: 'edit2 iconfont'
51
61
  }"
62
+ autocomplete="off"
52
63
  @change="change(ele)"
53
64
  @click-icon="onClickIcon(`id_${personData.key}_${ele.key}`)"
54
65
  />
@@ -60,6 +71,7 @@
60
71
  :key="ele.key"
61
72
  class="bx-form-item__radio"
62
73
  :prop="ele.key"
74
+ :rules="ele.rules"
63
75
  :label="ele.label"
64
76
  >
65
77
  <bxs-radio-group v-model="ele.value" @change="change(ele)">
@@ -80,6 +92,7 @@
80
92
  v-if="isShowPersonElement(personData, ele) && !ele.isHide"
81
93
  :key="ele.key"
82
94
  :prop="ele.key"
95
+ :rules="ele.rules"
83
96
  :label="ele.label"
84
97
  >
85
98
  <SelectItem
@@ -102,6 +115,7 @@
102
115
  v-if="isShowPersonElement(personData, ele) && !ele.isHide"
103
116
  :key="ele.key"
104
117
  :prop="ele.key"
118
+ :rules="ele.rules"
105
119
  :label="ele.label"
106
120
  >
107
121
  <AgeBirthdayItem
@@ -193,6 +207,9 @@ export default class BxtPersonInfo extends Vue {
193
207
  }
194
208
  return bool;
195
209
  }
210
+ onClickLabel(ele) {
211
+ this.$emit('clickLabel', this.personData, ele);
212
+ }
196
213
  onClickIcon(id) {
197
214
  const inputDom: any = document.querySelector(`#${id}`);
198
215
  inputDom.focus();
@@ -218,6 +235,25 @@ export default class BxtPersonInfo extends Vue {
218
235
  }
219
236
  this.$emit('change', this.personData, ele);
220
237
  }
238
+ validate() {
239
+ if (!this.personForm.title) {
240
+ return Promise.resolve();
241
+ }
242
+ return new Promise((resolve, reject) => {
243
+ this.$refs?.personForm
244
+ ?.validate()
245
+ .then(valid => {
246
+ if (!valid) {
247
+ resolve(valid);
248
+ return;
249
+ }
250
+ reject();
251
+ })
252
+ .catch(err => {
253
+ reject(err);
254
+ });
255
+ });
256
+ }
221
257
  closeKeyBoard() {
222
258
  const activeElement: any = document.activeElement;
223
259
  if (!activeElement) {
@@ -6,7 +6,8 @@ import {
6
6
  productDataHandler,
7
7
  convertProductData,
8
8
  verifyProductRules,
9
- convertEleOrderListToObj
9
+ convertEleOrderListToObj,
10
+ deepCopy
10
11
  } from 'packages/bxs-utils/index';
11
12
  import { createMd5Token } from '@src/js/md5Token.js';
12
13
 
@@ -397,3 +398,50 @@ export function getProductFromInputData(inputData, options = {}) {
397
398
  }
398
399
  return product;
399
400
  }
401
+
402
+ export function initRecipientData(personData) {
403
+ let eleOrderList = deepCopy(personData.eleOrderList);
404
+ eleOrderList = eleOrderList.filter(ele => !['name', 'sex'].includes(ele.key));
405
+ eleOrderList.forEach(ele => {
406
+ if (ele.key === 'title') {
407
+ ele.componentName = 'cmCommonTitle';
408
+ ele.isDisabled = false;
409
+ (ele.label = '封面信息'), (ele.rules = []);
410
+ }
411
+ });
412
+ if (!eleOrderList.find(ele => ele.key === 'shareTitle')) {
413
+ eleOrderList.push({
414
+ componentName: 'cmCommonInput',
415
+ key: 'shareTitle',
416
+ label: '计划书标题',
417
+ labelIcon: 'icon-common_problem',
418
+ maxlength: 16,
419
+ placeholder: '请输入计划书标题',
420
+ rules: [
421
+ {
422
+ type: 'string',
423
+ validator(rule, value, callback, source, options) {
424
+ if (value && value.match(/本金|利息|额度有限|回本|返本|复利|存钱|理财|返佣|赠送|免费|暴利/)) {
425
+ return new Error('标题不能包含禁用词');
426
+ }
427
+ return true;
428
+ }
429
+ }
430
+ ],
431
+ value: ''
432
+ });
433
+ }
434
+ if (!eleOrderList.find(ele => ele.key === 'coverId')) {
435
+ eleOrderList.push({
436
+ componentName: 'cmCommonSelect',
437
+ key: 'coverId',
438
+ label: '封面样式',
439
+ placeholder: '请选择封面样式',
440
+ isDisabled: true,
441
+ options: [],
442
+ value: 1,
443
+ rules: []
444
+ });
445
+ }
446
+ personData.eleOrderList = eleOrderList;
447
+ }
@@ -38,6 +38,11 @@
38
38
  </template>
39
39
  </template>
40
40
  </div>
41
+ <PersonInfo
42
+ :person-data="inputData.personData.recipientInfo"
43
+ @clickLabel="onClickLabel"
44
+ @change="changePersonInfo"
45
+ />
41
46
  <InputFooter :input-data="inputData" @createPlanbook="createPlanbook(planbookData)" />
42
47
  </div>
43
48
  </template>
@@ -48,6 +53,7 @@ import QS from 'qs';
48
53
  import { calcTotalBaof } from 'packages/bxs-utils/index';
49
54
  import {
50
55
  initPageData,
56
+ initRecipientData,
51
57
  setPageDataBaseOnResult,
52
58
  createdProductDataToCalc,
53
59
  receiveProductData,
@@ -116,6 +122,7 @@ export default class BxtPlanbookInput extends Vue {
116
122
  return;
117
123
  }
118
124
  initPageData(data);
125
+ initRecipientData(data.initData.inputData.personData.recipientInfo);
119
126
  setPageDataBaseOnResult(data);
120
127
  this.planbookData = data;
121
128
  document.title = `DEMO:${this.planbookData.title}`;
@@ -153,6 +160,19 @@ export default class BxtPlanbookInput extends Vue {
153
160
  });
154
161
  });
155
162
  }
163
+ onClickLabel(person: IPbPerson, ele: any = {}) {
164
+ if (ele.key === 'shareTitle') {
165
+ this.$messagebox
166
+ .alert({
167
+ message:
168
+ '根据监管规定分享标题中不能包含以下字眼:“本金”、“利息”、“额度有限”、“回本”、“返本”、“复利”、“存钱”、“理财”、“返佣”、“赠送”、“免费”、“暴利”',
169
+ messageAlign: 'center',
170
+ cancelButtonText: '好的'
171
+ })
172
+ .then(() => {})
173
+ .catch(() => {});
174
+ }
175
+ }
156
176
  changePersonInfo(person: IPbPerson, ele: any = {}) {
157
177
  if (!this.inputData) {
158
178
  return;
@@ -83,24 +83,25 @@
83
83
  display: inline-block;
84
84
 
85
85
  & .bxt-ins-form-radio--code {
86
+ line-height: 1.45;
86
87
  margin-right: 4px;
87
- padding: 1px 4px;
88
+ padding: 0 4px;
88
89
  border-radius: 4px;
89
90
  color: #ff703e;
90
91
  border: 1px solid #ff703e;
91
92
  font-size: 12px;
92
93
  transform: scale(0.8334);
93
94
  transform-origin: left center;
94
- vertical-align: middle;
95
+ vertical-align: 1px;
95
96
  }
96
97
 
97
98
  & .bxt-ins-form-radio--tx {
98
- @apply --noWrap;
99
-
100
99
  display: inline-block;
101
100
  width: auto;
101
+ line-height: 1.45;
102
102
  max-width: 15rem;
103
- vertical-align: middle;
103
+ font-size: 14px;
104
+ vertical-align: top;
104
105
 
105
106
  &.bxt-ins-form-radio--width {
106
107
  max-width: 12rem;
@@ -130,8 +130,9 @@
130
130
  <span
131
131
  class="bxt-ins-form-radio--tx"
132
132
  :class="[genInsuranceHmTag(opt) ? 'bxt-ins-form-radio--width' : '']"
133
- >{{ sliceRadioOptDesc(opt.desc) }}</span
134
133
  >
134
+ {{ opt.desc }}
135
+ </span>
135
136
  <span v-if="genInsuranceHmTag(opt)" class="bxt-ins-form-radio--tag">{{
136
137
  genInsuranceHmTag(opt)
137
138
  }}</span>
@@ -337,13 +338,6 @@ export default class BxtProductInfo extends Vue {
337
338
  isIgnoreValidate(ins, ele) {
338
339
  return !this.isInsuranceChecked(ins) || ele.isHide || ele.isIgnoreValidate;
339
340
  }
340
- sliceRadioOptDesc(desc) {
341
- if (desc && desc.length > 16) {
342
- return desc.substr(0, 16) + '...';
343
- } else {
344
- return desc;
345
- }
346
- }
347
341
  genInsuranceHmTag(opt) {
348
342
  const refInsurance = this.productData.mulInsOrderList.find(ins => ins.key === opt.val);
349
343
  if (!refInsurance) {