zCheckbox2.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <template>
  2. <div class="zSelect">
  3. <div>
  4. <div class="checkbox">
  5. <van-checkbox-group v-model="zSelectValuec" @change="checkboxclick">
  6. <van-checkbox
  7. :disabled="disabled"
  8. :name="item.customOptionId + ''"
  9. v-for="(item, index) in zCheckboxcolumns"
  10. :key="index"
  11. shape="square"
  12. >{{ item.customOption }}
  13. </van-checkbox>
  14. </van-checkbox-group>
  15. </div>
  16. </div>
  17. </div>
  18. </template>
  19. <script>
  20. export default {
  21. name: 'zSelect',
  22. props: {
  23. zCheckboxcolumns: [],
  24. checkboxval: '',
  25. textc: '',
  26. rules: false,
  27. answerType: '',
  28. collectionType: '',
  29. disabled: false,
  30. },
  31. data() {
  32. return {
  33. zSelect: false,
  34. zSelectValuec: [],
  35. };
  36. },
  37. watch: {
  38. checkboxval: {
  39. handler(va) {
  40. if (this.checkboxval == '' || this.checkboxval == undefined) {
  41. this.zSelectValuec = [];
  42. } else {
  43. this.zSelectValuec = this.checkboxval.split(',');
  44. }
  45. },
  46. immediate: true,
  47. },
  48. },
  49. activated() {
  50. // this.checkboxvalFn();
  51. },
  52. methods: {
  53. checkboxvalFn() {
  54. if (this.checkboxval == '' || this.checkboxval == undefined) {
  55. this.zSelectValuec = [];
  56. } else {
  57. this.zSelectValuec = this.checkboxval.split(',');
  58. }
  59. },
  60. checkboxclick(value) {
  61. var typeval = [...this.zCheckboxcolumns];
  62. typeval.forEach((item) => {
  63. if (value.includes(item.customOptionId + '')) {
  64. item.value = 'Y';
  65. } else {
  66. item.value = 'N';
  67. }
  68. });
  69. // for (var k = 0; k < typeval.length; k++) {
  70. // for (var kk = 0; kk < value.length; kk++) {
  71. // if (typeval[k].customOptionId == value[kk]) {
  72. // typeval[k].value = 'Y';
  73. // }
  74. // }
  75. // }
  76. let datalist = {
  77. id: this.textc,
  78. value: typeval,
  79. };
  80. this.zSelectValuec = value;
  81. this.$emit('zSelectVal', datalist);
  82. this.zSelect = false;
  83. },
  84. },
  85. };
  86. </script>
  87. <style scoped>
  88. .van-f-red {
  89. color: red;
  90. width: 4px;
  91. display: inline-block;
  92. }
  93. .zSelect .z-cell {
  94. padding: 10px 16px 0 16px;
  95. font-size: 16px;
  96. }
  97. /*.checkbox{padding: 10px 16px 0 16px;background-color: white;}*/
  98. .checkbox .van-checkbox {
  99. padding-bottom: 10px;
  100. }
  101. </style>
  102. <style>
  103. .checkbox .van-checkbox__icon .van-icon {
  104. border: 1px solid #333 !important;
  105. }
  106. .checkbox .van-checkbox__icon--checked .van-icon {
  107. border: 1px solid #1989fa !important;
  108. color: #1989fa;
  109. background-color: #fff;
  110. }
  111. </style>