company-select.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. "use strict";
  2. const common_vendor = require("../../common/vendor.js");
  3. const api_tenant = require("../../api/tenant.js");
  4. const _sfc_main = {
  5. setup() {
  6. const searchQuery = common_vendor.ref("");
  7. const companyData = common_vendor.ref([]);
  8. const filteredList = common_vendor.computed(() => {
  9. if (!searchQuery.value)
  10. return companyData.value;
  11. return companyData.value.filter((item) => item.name.includes(searchQuery.value));
  12. });
  13. common_vendor.onMounted(async () => {
  14. try {
  15. common_vendor.index.showLoading({ title: "加载公司列表..." });
  16. const res = await api_tenant.listTenant({ pageNum: 1, pageSize: 500 });
  17. if (res.code === 200) {
  18. const tenants = res.rows || res.data || [];
  19. const mapped = tenants.filter((t) => String(t.tenantId) !== "000000").map((t) => ({ name: t.companyName, selected: false }));
  20. companyData.value = mapped;
  21. const selectedStr = common_vendor.index.getStorageSync("selected_companies");
  22. if (selectedStr) {
  23. const selectedList = JSON.parse(selectedStr);
  24. companyData.value.forEach((company) => {
  25. if (selectedList.includes(company.name)) {
  26. company.selected = true;
  27. }
  28. });
  29. }
  30. }
  31. } catch (e) {
  32. common_vendor.index.__f__("error", "at pages/intention/company-select.js:37", e);
  33. } finally {
  34. common_vendor.index.hideLoading();
  35. }
  36. });
  37. const toggleSelect = (item) => {
  38. item.selected = !item.selected;
  39. };
  40. const confirmSelection = () => {
  41. const selected = companyData.value.filter((v) => v.selected).map((v) => ({ name: v.name }));
  42. common_vendor.index.$emit("submit_companies", selected);
  43. common_vendor.index.navigateBack();
  44. };
  45. return {
  46. searchQuery,
  47. filteredList,
  48. toggleSelect,
  49. confirmSelection
  50. };
  51. }
  52. };
  53. function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  54. return common_vendor.e({
  55. a: _ctx.searchQuery,
  56. b: common_vendor.o(($event) => _ctx.searchQuery = $event.detail.value),
  57. c: common_vendor.f(_ctx.filteredList, (item, index, i0) => {
  58. return {
  59. a: common_vendor.t(item.name),
  60. b: common_vendor.n(item.selected ? "checked" : ""),
  61. c: index,
  62. d: common_vendor.o(($event) => _ctx.toggleSelect(item), index)
  63. };
  64. }),
  65. d: _ctx.filteredList.length === 0
  66. }, _ctx.filteredList.length === 0 ? {} : {}, {
  67. e: common_vendor.o((...args) => _ctx.confirmSelection && _ctx.confirmSelection(...args))
  68. });
  69. }
  70. const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-b3efa014"]]);
  71. wx.createPage(MiniProgramPage);
  72. //# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/intention/company-select.js.map