• 小程序van-picker自定义二级联动


    html

    1. "hwms-cell-title" title-width="225rpx" value-class="hwms-cell-content" title="仓库-库位" value="{{warehouseContent}}" bind:click="warehouse" />
    2. "{{show}}" position="bottom" bind:close="hideBottom">
    3. bind:change="onChange3" columns="{{ columns }}" confirm-button-text="确认" cancel-button-text="取消" show-toolbar="true" bind:confirm="selectWarehouse" bind:cancel="cancelSelect" />

    js

    1. const app = getApp();
    2. Page({
    3. /**
    4. * 页面的初始数据
    5. */
    6. data: {
    7. show: false,
    8. warehouseContent: '点击选择', //输入框显示的内容
    9. columns: [], //对象数组,配置每一列显示的数据
    10. },
    11. /**
    12. * 生命周期函数--监听页面加载
    13. */
    14. onLoad: function (options) {
    15. let that = this;
    16. //请求接口获得返回数据
    17. app.ajaxCall("/test/findAll", "", function (result) {
    18. var data = result.data;//后端返回的数据,见第一部中的json数据格式
    19. if (data.success == 1) {
    20. var citys = data.data;
    21. that.setData({
    22. columns: [{
    23. values: citys, // 设置的第一列的初始值
    24. className: "column1"
    25. },
    26. {
    27. values: citys[0].children,// 设置第二列的初始值
    28. className: "column2"
    29. }
    30. ]
    31. });
    32. }
    33. });
    34. },
    35. /**
    36. * 显示选择器
    37. */
    38. warehouse: function () {
    39. this.setData({ show: true });
    40. },
    41. /**
    42. * 隐藏选择器
    43. */
    44. cancelSelect() {
    45. this.setData({ show: false });
    46. },
    47. /**
    48. * 选择器确认选择
    49. */
    50. selectWarehouse(event) {
    51. var storeId = event.detail.value[0].id; //第一列的Id
    52. var storeName = event.detail.value[0].text;//第一列的文字
    53. var placeName = "";//第二列文字
    54. var placeId = '';//第二列Id
    55. var warehouseContent = ""; //选择框显示的文字
    56. if (event.detail.value[1]) {
    57. placeId = event.detail.value[1].id;//第二列的Id
    58. placeName = event.detail.value[1].text;//第二列的文字
    59. warehouseContent = storeName + "-" + placeName;//第一列第二列文字拼接
    60. }else{
    61. warehouseContent = storeName;//第二列没有值只显示第一列文字
    62. }
    63. this.setData({
    64. show: false,
    65. warehouseContent: warehouseContent,
    66. });
    67. },
    68. /**
    69. * 选择器改变选择项触发
    70. */
    71. onChange3(event) {
    72. const {
    73. picker,
    74. value,
    75. index
    76. } = event.detail;
    77. let ColumnIndex = picker.getColumnIndex(index);
    78. console.log(value);
    79. //改变第一列显示第二列的初识值
    80. picker.setColumnValues(index + 1, value[0].children == null ? '' : value[0].children);
    81. },
    82. })

    数据格式为:

    1. {
    2. "success": 1,
    3. "data": [
    4. {
    5. "children": [
    6. {
    7. "id": "11111111",
    8. "text": "特斯拉"
    9. "children":[
    10. "id": "11111111",
    11. "text": "Model Y"
    12. ]
    13. }
    14. ],
    15. "id": "22222222",
    16. "text": "2"
    17. },
    18. ],
    19. "code": "",
    20. "message": ""
    21. }

     

  • 相关阅读:
    涂鸦云平台设备授权介绍
    基于孤立森林的信用卡欺诈 Python 实战案例,最佳参数选择、可视化等
    linux上部署python环境
    2021-09-02-Servlet请求与响应
    上传到服务器的图片资源如何读取
    【云原生之kubernetes实战】在k8s环境下部署Homepage个人导航页
    波矢与波数
    开源跨平台视频编辑器 Shotcut 22.06.23 下载安装
    [附源码]Python计算机毕业设计Django农产品销售网站
    json-server库的使用,实现数据模拟
  • 原文地址:https://blog.csdn.net/weixin_47826037/article/details/126260606