lulouis-vant
Version:
Lightweight Mobile UI Components built on Vue
89 lines (78 loc) • 2.32 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _utils = require("../utils");
var _cell = _interopRequireDefault(require("../cell"));
var _field = _interopRequireDefault(require("../field"));
var _use = (0, _utils.use)('address-edit-detail'),
sfc = _use[0],
bem = _use[1],
t = _use[2];
var android = (0, _utils.isAndroid)();
var _default = sfc({
props: {
value: String,
error: Boolean,
focused: Boolean,
detailRows: Number,
searchResult: Array,
showSearchResult: Boolean
},
methods: {
onSelect: function onSelect(express) {
this.$emit('select-search', express);
this.$emit('input', ((express.address || '') + " " + (express.name || '')).trim());
}
},
render: function render(h) {
var _this = this;
var value = this.value,
focused = this.focused,
searchResult = this.searchResult;
var Finish = value && focused && android && h("div", {
"slot": "icon",
"class": bem('finish'),
"on": {
"click": function click() {
_this.$refs.field.blur();
}
}
}, [t('complete')]);
var SearchList = focused && searchResult && this.showSearchResult && searchResult.map(function (express) {
return h(_cell.default, {
"key": express.name + express.address,
"attrs": {
"title": express.name,
"label": express.address,
"icon": "location-o",
"clickable": true
},
"on": {
"click": function click() {
_this.onSelect(express);
}
}
});
});
return h(_cell.default, {
"class": bem()
}, [h(_field.default, {
"attrs": {
"autosize": true,
"rows": this.detailRows,
"clearable": !android,
"type": "textarea",
"maxlength": "200",
"value": this.value,
"error": this.error,
"label": t('label'),
"placeholder": t('placeholder')
},
"ref": "field",
"on": (0, _extends2.default)({}, this.$listeners)
}, [Finish]), SearchList]);
}
});
exports.default = _default;