widget.qw 1.0.23 → 1.0.25

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/build/style.css CHANGED
@@ -549,7 +549,7 @@
549
549
  padding:4px 8px;
550
550
  }
551
551
 
552
- .widget[data-v-5ebf8c56] {
552
+ .widget[data-v-bd8efbe2] {
553
553
  position: relative;
554
554
  display: flex;
555
555
  flex-direction: column;
@@ -559,15 +559,15 @@
559
559
  background: linear-gradient(to right, #4a90e2, #87ceeb);
560
560
  border-radius: 10px;
561
561
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
562
- .user-avatar[data-v-5ebf8c56] {
562
+ .user-avatar[data-v-bd8efbe2] {
563
563
  margin-bottom: 15px;
564
564
  }
565
- .user-info[data-v-5ebf8c56] {
565
+ .user-info[data-v-bd8efbe2] {
566
566
  display: flex;
567
567
  align-items: center;
568
568
  justify-content: space-around;
569
569
  margin-bottom: 15px;
570
- .user-info-item[data-v-5ebf8c56] {
570
+ .user-info-item[data-v-bd8efbe2] {
571
571
  font-size: 16px;
572
572
  line-height: 22px;
573
573
  color: #fff;
@@ -575,13 +575,13 @@
575
575
  padding: 0 3px;
576
576
  }
577
577
  }
578
- .space[data-v-5ebf8c56] {
578
+ .space[data-v-bd8efbe2] {
579
579
  min-height: 10px;
580
580
  flex: 1;
581
581
  }
582
582
 
583
583
  /* 添加退出按钮样式 */
584
- .logout-button[data-v-5ebf8c56] {
584
+ .logout-button[data-v-bd8efbe2] {
585
585
  width: 70px;
586
586
  height: 30px;
587
587
  position: absolute;
@@ -596,16 +596,16 @@
596
596
  font-size: 14px;
597
597
  transition: background-color 0.3s;
598
598
  }
599
- .logout-button[data-v-5ebf8c56]:hover {
599
+ .logout-button[data-v-bd8efbe2]:hover {
600
600
  background-color: rgba(255, 255, 255, 0.4);
601
601
  }
602
- .user-jobs[data-v-5ebf8c56] {
602
+ .user-jobs[data-v-bd8efbe2] {
603
603
  display: flex;
604
604
  justify-content: center;
605
605
  gap: 15px;
606
606
  width: 100%;
607
607
  max-width: 300px;
608
- .job-item[data-v-5ebf8c56] {
608
+ .job-item[data-v-bd8efbe2] {
609
609
  padding: 5px 10px;
610
610
  background-color: rgba(255, 255, 255, 0.2);
611
611
  border-radius: 20px;
@@ -709,25 +709,25 @@
709
709
  margin:3px;
710
710
  }
711
711
 
712
- .cascader-pop[data-v-c97110e4] {
712
+ .cascader-pop[data-v-ed5ef2aa] {
713
713
  width: 100%;
714
714
  overflow: hidden;
715
715
  }
716
- .cascader-selector[data-v-c97110e4] {
716
+ .cascader-selector[data-v-ed5ef2aa] {
717
717
  padding: 10px;
718
718
  }
719
- .search-buttons[data-v-c97110e4] {
719
+ .search-buttons[data-v-ed5ef2aa] {
720
720
  display: flex;
721
721
  gap: 10px;
722
722
  }
723
- .clear-btn[data-v-c97110e4] {
723
+ .clear-btn[data-v-ed5ef2aa] {
724
724
  background-color: #f2f3f5;
725
725
  border: none;
726
726
  border-radius: 4px;
727
727
  padding: 4px 8px;
728
728
  font-size: 14px;
729
729
  }
730
- .confirm-btn[data-v-c97110e4] {
730
+ .confirm-btn[data-v-ed5ef2aa] {
731
731
  background-color: #1989fa;
732
732
  color: white;
733
733
  border: none;
@@ -735,19 +735,19 @@
735
735
  padding: 4px 8px;
736
736
  font-size: 14px;
737
737
  }
738
- .no-results[data-v-c97110e4] {
738
+ .no-results[data-v-ed5ef2aa] {
739
739
  text-align: center;
740
740
  padding: 20px;
741
741
  color: #969799;
742
742
  }
743
- .cascader-header[data-v-c97110e4] {
743
+ .cascader-header[data-v-ed5ef2aa] {
744
744
  padding: 10px;
745
745
  border-bottom: 1px solid #ebedf0;
746
746
  display: flex;
747
747
  justify-content: space-between;
748
748
  align-items: center;
749
749
  }
750
- .current-path[data-v-c97110e4] {
750
+ .current-path[data-v-ed5ef2aa] {
751
751
  flex: 1;
752
752
  font-size: 14px;
753
753
  color: #323233;
@@ -755,25 +755,25 @@
755
755
  overflow: hidden;
756
756
  text-overflow: ellipsis;
757
757
  }
758
- .header-right[data-v-c97110e4] {
758
+ .header-right[data-v-ed5ef2aa] {
759
759
  display: flex;
760
760
  gap: 8px;
761
761
  margin-left: auto;
762
762
  }
763
- .cancel-btn[data-v-c97110e4] {
763
+ .cancel-btn[data-v-ed5ef2aa] {
764
764
  color: #969799;
765
765
  margin-right: 5px;
766
766
  }
767
- .scroll-container[data-v-c97110e4] {
767
+ .scroll-container[data-v-ed5ef2aa] {
768
768
  height: calc(80vh - 150px);
769
769
  overflow-y: auto;
770
770
  }
771
- .cell-content[data-v-c97110e4] {
771
+ .cell-content[data-v-ed5ef2aa] {
772
772
  display: flex;
773
773
  align-items: center;
774
774
  gap: 12px;
775
775
  }
776
- .circle-selector[data-v-c97110e4] {
776
+ .circle-selector[data-v-ed5ef2aa] {
777
777
  width: 20px;
778
778
  height: 20px;
779
779
  border-radius: 50%;
@@ -783,29 +783,29 @@
783
783
  transition: all 0.2s;
784
784
  flex-shrink: 0;
785
785
  }
786
- .circle-selector.selected[data-v-c97110e4] {
786
+ .circle-selector.selected[data-v-ed5ef2aa] {
787
787
  background-color: #1989fa;
788
788
  border-color: #1989fa;
789
789
  }
790
- .circle-selector.selected .van-icon[data-v-c97110e4] {
790
+ .circle-selector.selected .van-icon[data-v-ed5ef2aa] {
791
791
  color: white;
792
792
  font-size: 14px;
793
793
  }
794
- .van-cell__right-icon[data-v-c97110e4] {
794
+ .van-cell__right-icon[data-v-ed5ef2aa] {
795
795
  color: #969799;
796
796
  font-size: 16px;
797
797
  margin-left: 8px;
798
798
  }
799
- .name[data-v-c97110e4] {
799
+ .name[data-v-ed5ef2aa] {
800
800
  flex: 1;
801
801
  overflow: hidden;
802
802
  text-overflow: ellipsis;
803
803
  white-space: nowrap;
804
804
  }
805
- .cancel-btn[data-v-c97110e4] {
805
+ .cancel-btn[data-v-ed5ef2aa] {
806
806
  color: #969799;
807
807
  }
808
- .search-field[data-v-c97110e4] {
808
+ .search-field[data-v-ed5ef2aa] {
809
809
  background: #fff;
810
810
  padding: 10px 16px;
811
811
  border-bottom: 1px solid #ebedf0;
@@ -3302,6 +3302,13 @@ const part_detail = (data2) => {
3302
3302
  data: data2
3303
3303
  });
3304
3304
  };
3305
+ const qw_department_children = (data2) => {
3306
+ return service$3({
3307
+ url: vm.urlCallback() + "/ac-api/qw/department/children",
3308
+ method: "POST",
3309
+ data: data2
3310
+ });
3311
+ };
3305
3312
  var ApiUtil = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3306
3313
  __proto__: null,
3307
3314
  process_can_apply,
@@ -3319,7 +3326,8 @@ var ApiUtil = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePropert
3319
3326
  file_upload,
3320
3327
  auth_get_user_info,
3321
3328
  part_children,
3322
- part_detail
3329
+ part_detail,
3330
+ qw_department_children
3323
3331
  }, Symbol.toStringTag, { value: "Module" }));
3324
3332
  function noop() {
3325
3333
  }
@@ -17463,7 +17471,7 @@ const _hoisted_5$6 = {
17463
17471
  };
17464
17472
  const _hoisted_6$5 = /* @__PURE__ */ createTextVNode(" \u53D6\u6D88 ");
17465
17473
  const _hoisted_7$5 = /* @__PURE__ */ createTextVNode(" \u786E\u5B9A ");
17466
- const _hoisted_8$5 = {
17474
+ const _hoisted_8$4 = {
17467
17475
  class: "scroll-container"
17468
17476
  };
17469
17477
  const _hoisted_9$2 = {
@@ -17768,7 +17776,7 @@ const _sfc_main$k = {
17768
17776
  clearable: "",
17769
17777
  placeholder: "\u8BF7\u8F93\u5165\u90E8\u95E8\u540D\u79F0\u641C\u7D22",
17770
17778
  class: "search-field"
17771
- }, null, 8, ["modelValue"]), createElementVNode("div", _hoisted_8$5, [createVNode(_component_van_cell_group, null, {
17779
+ }, null, 8, ["modelValue"]), createElementVNode("div", _hoisted_8$4, [createVNode(_component_van_cell_group, null, {
17772
17780
  default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(filteredDepartments), (item, index) => {
17773
17781
  return openBlock(), createBlock(_component_van_cell, {
17774
17782
  key: index,
@@ -17825,7 +17833,7 @@ const _hoisted_6$4 = {
17825
17833
  class: "header-right"
17826
17834
  };
17827
17835
  const _hoisted_7$4 = /* @__PURE__ */ createTextVNode("\u6E05\u7A7A");
17828
- const _hoisted_8$4 = /* @__PURE__ */ createTextVNode("\u786E\u5B9A");
17836
+ const _hoisted_8$3 = /* @__PURE__ */ createTextVNode("\u786E\u5B9A");
17829
17837
  const _hoisted_9$1 = {
17830
17838
  key: 0,
17831
17839
  class: "select-all-container"
@@ -18227,7 +18235,7 @@ const _sfc_main$j = {
18227
18235
  onClick: confirmSelection,
18228
18236
  class: "confirm-btn"
18229
18237
  }, {
18230
- default: withCtx(() => [_hoisted_8$4]),
18238
+ default: withCtx(() => [_hoisted_8$3]),
18231
18239
  _: 1
18232
18240
  })])]), __props.mode === "multiple" ? (openBlock(), createElementBlock("div", _hoisted_9$1, [createVNode(_component_van_checkbox, {
18233
18241
  shape: "square",
@@ -18703,7 +18711,7 @@ const _hoisted_5$4 = {
18703
18711
  };
18704
18712
  const _hoisted_6$3 = /* @__PURE__ */ createTextVNode("\u6E05\u7A7A");
18705
18713
  const _hoisted_7$3 = /* @__PURE__ */ createTextVNode("\u786E\u5B9A");
18706
- const _hoisted_8$3 = {
18714
+ const _hoisted_8$2 = {
18707
18715
  class: "scroll-container"
18708
18716
  };
18709
18717
  const _sfc_main$f = {
@@ -19005,7 +19013,7 @@ const _sfc_main$f = {
19005
19013
  onClick: handleSearch
19006
19014
  }, "\u641C\u7D22")]),
19007
19015
  _: 1
19008
- }, 8, ["modelValue"]), createElementVNode("div", _hoisted_8$3, [createVNode(_component_van_cell_group, null, {
19016
+ }, 8, ["modelValue"]), createElementVNode("div", _hoisted_8$2, [createVNode(_component_van_cell_group, null, {
19009
19017
  default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(departments), (department) => {
19010
19018
  return openBlock(), createBlock(_component_van_cell, {
19011
19019
  key: department.id,
@@ -19059,7 +19067,7 @@ const _hoisted_5$3 = {
19059
19067
  };
19060
19068
  const _hoisted_6$2 = /* @__PURE__ */ createTextVNode("\u53D6\u6D88");
19061
19069
  const _hoisted_7$2 = /* @__PURE__ */ createTextVNode("\u786E\u5B9A");
19062
- const _hoisted_8$2 = {
19070
+ const _hoisted_8$1 = {
19063
19071
  class: "scroll-container"
19064
19072
  };
19065
19073
  const _sfc_main$e = {
@@ -19277,7 +19285,7 @@ const _sfc_main$e = {
19277
19285
  onClick: onSearch
19278
19286
  }, "\u641C\u7D22")]),
19279
19287
  _: 1
19280
- }, 8, ["modelValue", "onClear", "onCancel"]), createElementVNode("div", _hoisted_8$2, [createVNode(_component_van_cell_group, null, {
19288
+ }, 8, ["modelValue", "onClear", "onCancel"]), createElementVNode("div", _hoisted_8$1, [createVNode(_component_van_cell_group, null, {
19281
19289
  default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(subDepts), (dept) => {
19282
19290
  return openBlock(), createBlock(_component_van_cell, {
19283
19291
  key: dept.id,
@@ -19556,7 +19564,7 @@ const _sfc_main$c = {
19556
19564
  }
19557
19565
  };
19558
19566
  var UserPicker = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-58929b5a"]]);
19559
- var UserProfile_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.widget[data-v-5ebf8c56] {\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: space-around;\r\n padding: 20px;\r\n background: linear-gradient(to right, #4a90e2, #87ceeb);\r\n border-radius: 10px;\r\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);\n.user-avatar[data-v-5ebf8c56] {\r\n margin-bottom: 15px;\n}\n.user-info[data-v-5ebf8c56] {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-around;\r\n margin-bottom: 15px;\n.user-info-item[data-v-5ebf8c56] {\r\n font-size: 16px;\r\n line-height: 22px;\r\n color: #fff;\r\n text-align: center;\r\n padding: 0 3px;\n}\n}\n.space[data-v-5ebf8c56] {\r\n min-height: 10px;\r\n flex: 1;\n}\r\n\r\n /* \u6DFB\u52A0\u9000\u51FA\u6309\u94AE\u6837\u5F0F */\n.logout-button[data-v-5ebf8c56] {\r\n width: 70px;\r\n height: 30px;\r\n position: absolute;\r\n top: 20px;\r\n right: 20px;\r\n background-color: rgba(255, 255, 255, 0.2);\r\n color: white;\r\n border: none;\r\n border-radius: 15px;\r\n padding: 5px 15px;\r\n cursor: pointer;\r\n font-size: 14px;\r\n transition: background-color 0.3s;\n}\n.logout-button[data-v-5ebf8c56]:hover {\r\n background-color: rgba(255, 255, 255, 0.4);\n}\n.user-jobs[data-v-5ebf8c56] {\r\n display: flex;\r\n justify-content: center;\r\n gap: 15px;\r\n width: 100%;\r\n max-width: 300px;\n.job-item[data-v-5ebf8c56] {\r\n padding: 5px 10px;\r\n background-color: rgba(255, 255, 255, 0.2);\r\n border-radius: 20px;\r\n font-size: 12px;\r\n color: #fff;\n}\n}\n}\r\n")();
19567
+ var UserProfile_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.widget[data-v-bd8efbe2] {\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: space-around;\r\n padding: 20px;\r\n background: linear-gradient(to right, #4a90e2, #87ceeb);\r\n border-radius: 10px;\r\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);\n.user-avatar[data-v-bd8efbe2] {\r\n margin-bottom: 15px;\n}\n.user-info[data-v-bd8efbe2] {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-around;\r\n margin-bottom: 15px;\n.user-info-item[data-v-bd8efbe2] {\r\n font-size: 16px;\r\n line-height: 22px;\r\n color: #fff;\r\n text-align: center;\r\n padding: 0 3px;\n}\n}\n.space[data-v-bd8efbe2] {\r\n min-height: 10px;\r\n flex: 1;\n}\r\n\r\n /* \u6DFB\u52A0\u9000\u51FA\u6309\u94AE\u6837\u5F0F */\n.logout-button[data-v-bd8efbe2] {\r\n width: 70px;\r\n height: 30px;\r\n position: absolute;\r\n top: 20px;\r\n right: 20px;\r\n background-color: rgba(255, 255, 255, 0.2);\r\n color: white;\r\n border: none;\r\n border-radius: 15px;\r\n padding: 5px 15px;\r\n cursor: pointer;\r\n font-size: 14px;\r\n transition: background-color 0.3s;\n}\n.logout-button[data-v-bd8efbe2]:hover {\r\n background-color: rgba(255, 255, 255, 0.4);\n}\n.user-jobs[data-v-bd8efbe2] {\r\n display: flex;\r\n justify-content: center;\r\n gap: 15px;\r\n width: 100%;\r\n max-width: 300px;\n.job-item[data-v-bd8efbe2] {\r\n padding: 5px 10px;\r\n background-color: rgba(255, 255, 255, 0.2);\r\n border-radius: 20px;\r\n font-size: 12px;\r\n color: #fff;\n}\n}\n}\r\n")();
19560
19568
  const _hoisted_1$5 = {
19561
19569
  class: "widget"
19562
19570
  };
@@ -19573,67 +19581,69 @@ const _hoisted_5$2 = {
19573
19581
  class: "user-info-item"
19574
19582
  };
19575
19583
  const _hoisted_6$1 = {
19576
- class: "user-info-item"
19577
- };
19578
- const _hoisted_7$1 = {
19579
19584
  class: "user-jobs"
19580
19585
  };
19581
- const _hoisted_8$1 = /* @__PURE__ */ createTextVNode(" \u6CE8\u9500 ");
19586
+ const _hoisted_7$1 = /* @__PURE__ */ createTextVNode(" \u6CE8\u9500 ");
19582
19587
  const _sfc_main$b = {
19583
19588
  __name: "UserProfile",
19589
+ props: {
19590
+ avatar: {
19591
+ type: String,
19592
+ default: ""
19593
+ },
19594
+ name: {
19595
+ type: String,
19596
+ default: ""
19597
+ },
19598
+ position: {
19599
+ type: String,
19600
+ default: ""
19601
+ },
19602
+ mobile: {
19603
+ type: String,
19604
+ default: ""
19605
+ },
19606
+ departments: {
19607
+ type: Array,
19608
+ default: []
19609
+ }
19610
+ },
19584
19611
  emits: ["logout"],
19585
19612
  setup(__props, {
19586
19613
  emit
19587
19614
  }) {
19588
- const data2 = reactive({
19589
- userInfo: {}
19590
- });
19591
- const deptPaths = computed(() => {
19592
- if (data2.userInfo && data2.userInfo.departments && data2.userInfo.departments.length > 1)
19593
- return data2.userInfo.departments.filter((item) => item.id != "1");
19594
- if (data2.userInfo && data2.userInfo.wxUser)
19595
- return [{
19596
- name: data2.userInfo.wxUser.corp
19597
- }];
19598
- return [];
19599
- });
19615
+ const props = __props;
19600
19616
  const onLogout = () => {
19601
19617
  emit("logout");
19602
19618
  };
19603
- const getUserInfo = () => __async(this, null, function* () {
19604
- let res = yield util.auth_get_user_info();
19605
- data2.userInfo = res.data;
19606
- });
19607
19619
  onMounted(() => {
19608
- getUserInfo();
19609
19620
  });
19610
19621
  return (_ctx, _cache) => {
19611
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
19612
19622
  const _component_van_image = resolveComponent("van-image");
19613
19623
  const _component_van_button = resolveComponent("van-button");
19614
19624
  return openBlock(), createElementBlock("div", _hoisted_1$5, [createVNode(_component_van_image, {
19615
19625
  round: "",
19616
19626
  width: "80px",
19617
19627
  height: "80px",
19618
- src: (_b = (_a = data2.userInfo) == null ? void 0 : _a.wxUser) == null ? void 0 : _b.avatar,
19628
+ src: props.avatar,
19619
19629
  class: "user-avatar"
19620
- }, null, 8, ["src"]), createElementVNode("div", _hoisted_2$3, [createElementVNode("span", _hoisted_3$2, toDisplayString((_d = (_c = data2.userInfo) == null ? void 0 : _c.wxUser) == null ? void 0 : _d.userid), 1), createElementVNode("span", _hoisted_4$2, toDisplayString((_f = (_e = data2.userInfo) == null ? void 0 : _e.wxUser) == null ? void 0 : _f.name), 1), createElementVNode("span", _hoisted_5$2, toDisplayString((_h = (_g = data2.userInfo) == null ? void 0 : _g.wxUser) == null ? void 0 : _h.position), 1), createElementVNode("span", _hoisted_6$1, toDisplayString((_j = (_i = data2.userInfo) == null ? void 0 : _i.wxUser) == null ? void 0 : _j.mobile), 1)]), createElementVNode("div", _hoisted_7$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(deptPaths), (item, i) => {
19630
+ }, null, 8, ["src"]), createElementVNode("div", _hoisted_2$3, [createElementVNode("span", _hoisted_3$2, toDisplayString(props.name), 1), createElementVNode("span", _hoisted_4$2, toDisplayString(props.position), 1), createElementVNode("span", _hoisted_5$2, toDisplayString(props.mobile), 1)]), createElementVNode("div", _hoisted_6$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.departments, (item, i) => {
19621
19631
  return openBlock(), createElementBlock("span", {
19622
19632
  class: "job-item",
19623
19633
  key: i
19624
- }, toDisplayString(item.name), 1);
19634
+ }, toDisplayString(item), 1);
19625
19635
  }), 128))]), createVNode(_component_van_button, {
19626
19636
  block: "",
19627
19637
  class: "logout-button",
19628
19638
  onClick: onLogout
19629
19639
  }, {
19630
- default: withCtx(() => [_hoisted_8$1]),
19640
+ default: withCtx(() => [_hoisted_7$1]),
19631
19641
  _: 1
19632
19642
  })]);
19633
19643
  };
19634
19644
  }
19635
19645
  };
19636
- var UserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-5ebf8c56"]]);
19646
+ var UserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-bd8efbe2"]]);
19637
19647
  var BillCard_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-68bdd6bc] {\n background-color: white;\n border-radius: 8px;\n box-shadow: var(--van-dropdown-menu-shadow);\n color: 14px;\n}\n.widget .card-box[data-v-68bdd6bc] {\n padding-bottom: 8px;\n}\n.widget .card-box .card-header[data-v-68bdd6bc] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 15px 10px;\n border-bottom: 1px solid #eee;\n}\n.widget .card-box .card-header .card-sum[data-v-68bdd6bc] {\n flex: 1;\n font-size: 14px;\n text-align: left;\n}\n.widget .card-box .card-header .user-state[data-v-68bdd6bc] {\n margin-right: 1px;\n}\n[data-v-68bdd6bc] .van-cell__value {\n flex: 2 !important;\n}\n[data-v-68bdd6bc] .van-cell__title {\n font-size: 12px !important;\n color: #666 !important;\n text-align: left !important;\n}\n[data-v-68bdd6bc] .van-cell__value {\n font-size: 12px !important;\n color: #888 !important;\n}\n[data-v-68bdd6bc] .van-cell {\n padding: 2px 10px !important;\n}")();
19638
19648
  const _hoisted_1$4 = {
19639
19649
  class: "widget"
@@ -20279,7 +20289,7 @@ const _sfc_main$3 = {
20279
20289
  }
20280
20290
  };
20281
20291
  var TreePicker = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-6744b874"]]);
20282
- var CascaderPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.cascader-pop[data-v-c97110e4] {\r\n width: 100%;\r\n overflow: hidden;\n}\n.cascader-selector[data-v-c97110e4] {\r\n padding: 10px;\n}\n.search-buttons[data-v-c97110e4] {\r\n display: flex;\r\n gap: 10px;\n}\n.clear-btn[data-v-c97110e4] {\r\n background-color: #f2f3f5;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.confirm-btn[data-v-c97110e4] {\r\n background-color: #1989fa;\r\n color: white;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.no-results[data-v-c97110e4] {\r\n text-align: center;\r\n padding: 20px;\r\n color: #969799;\n}\n.cascader-header[data-v-c97110e4] {\r\n padding: 10px;\r\n border-bottom: 1px solid #ebedf0;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\n}\n.current-path[data-v-c97110e4] {\r\n flex: 1;\r\n font-size: 14px;\r\n color: #323233;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\n}\n.header-right[data-v-c97110e4] {\r\n display: flex;\r\n gap: 8px;\r\n margin-left: auto;\n}\n.cancel-btn[data-v-c97110e4] {\r\n color: #969799;\r\n margin-right: 5px;\n}\n.scroll-container[data-v-c97110e4] {\r\n height: calc(80vh - 150px);\r\n overflow-y: auto;\n}\n.cell-content[data-v-c97110e4] {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\n}\n.circle-selector[data-v-c97110e4] {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: all 0.2s;\r\n flex-shrink: 0;\n}\n.circle-selector.selected[data-v-c97110e4] {\r\n background-color: #1989fa;\r\n border-color: #1989fa;\n}\n.circle-selector.selected .van-icon[data-v-c97110e4] {\r\n color: white;\r\n font-size: 14px;\n}\n.van-cell__right-icon[data-v-c97110e4] {\r\n color: #969799;\r\n font-size: 16px;\r\n margin-left: 8px;\n}\n.name[data-v-c97110e4] {\r\n flex: 1;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\n}\n.cancel-btn[data-v-c97110e4] {\r\n color: #969799;\n}\n.search-field[data-v-c97110e4] {\r\n background: #fff;\r\n padding: 10px 16px;\r\n border-bottom: 1px solid #ebedf0;\r\n position: sticky;\r\n top: 0;\r\n z-index: 999;\r\n margin-bottom: 10px;\r\n flex-shrink: 0;\r\n /* \u9632\u6B62\u538B\u7F29 */\n}\r\n")();
20292
+ var CascaderPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.cascader-pop[data-v-ed5ef2aa] {\r\n width: 100%;\r\n overflow: hidden;\n}\n.cascader-selector[data-v-ed5ef2aa] {\r\n padding: 10px;\n}\n.search-buttons[data-v-ed5ef2aa] {\r\n display: flex;\r\n gap: 10px;\n}\n.clear-btn[data-v-ed5ef2aa] {\r\n background-color: #f2f3f5;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.confirm-btn[data-v-ed5ef2aa] {\r\n background-color: #1989fa;\r\n color: white;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.no-results[data-v-ed5ef2aa] {\r\n text-align: center;\r\n padding: 20px;\r\n color: #969799;\n}\n.cascader-header[data-v-ed5ef2aa] {\r\n padding: 10px;\r\n border-bottom: 1px solid #ebedf0;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\n}\n.current-path[data-v-ed5ef2aa] {\r\n flex: 1;\r\n font-size: 14px;\r\n color: #323233;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\n}\n.header-right[data-v-ed5ef2aa] {\r\n display: flex;\r\n gap: 8px;\r\n margin-left: auto;\n}\n.cancel-btn[data-v-ed5ef2aa] {\r\n color: #969799;\r\n margin-right: 5px;\n}\n.scroll-container[data-v-ed5ef2aa] {\r\n height: calc(80vh - 150px);\r\n overflow-y: auto;\n}\n.cell-content[data-v-ed5ef2aa] {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\n}\n.circle-selector[data-v-ed5ef2aa] {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: all 0.2s;\r\n flex-shrink: 0;\n}\n.circle-selector.selected[data-v-ed5ef2aa] {\r\n background-color: #1989fa;\r\n border-color: #1989fa;\n}\n.circle-selector.selected .van-icon[data-v-ed5ef2aa] {\r\n color: white;\r\n font-size: 14px;\n}\n.van-cell__right-icon[data-v-ed5ef2aa] {\r\n color: #969799;\r\n font-size: 16px;\r\n margin-left: 8px;\n}\n.name[data-v-ed5ef2aa] {\r\n flex: 1;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\n}\n.cancel-btn[data-v-ed5ef2aa] {\r\n color: #969799;\n}\n.search-field[data-v-ed5ef2aa] {\r\n background: #fff;\r\n padding: 10px 16px;\r\n border-bottom: 1px solid #ebedf0;\r\n position: sticky;\r\n top: 0;\r\n z-index: 999;\r\n margin-bottom: 10px;\r\n flex-shrink: 0;\r\n /* \u9632\u6B62\u538B\u7F29 */\n}\r\n")();
20283
20293
  const _hoisted_1$1 = {
20284
20294
  class: "cascader-selector"
20285
20295
  };
@@ -20346,12 +20356,6 @@ const _sfc_main$2 = {
20346
20356
  selectedNodeId: ""
20347
20357
  });
20348
20358
  onMounted(() => {
20349
- props.idQueryNode({
20350
- id: "",
20351
- isReturnParent: true
20352
- }, (node) => {
20353
- data2.parentNode = node;
20354
- });
20355
20359
  });
20356
20360
  const optionNodes = computed(() => {
20357
20361
  var _a;
@@ -20378,7 +20382,7 @@ const _sfc_main$2 = {
20378
20382
  data2.keyword = "";
20379
20383
  props.idQueryNode({
20380
20384
  id: data2.parentNode.parentId,
20381
- isReturnParent: true
20385
+ isReturnParent: false
20382
20386
  }, (node) => {
20383
20387
  data2.parentNode = node;
20384
20388
  });
@@ -20416,14 +20420,6 @@ const _sfc_main$2 = {
20416
20420
  data2.parentNode = node2;
20417
20421
  });
20418
20422
  };
20419
- onMounted(() => __async(this, null, function* () {
20420
- props.idQueryNode({
20421
- id: "",
20422
- isReturnParent: true
20423
- }, (node) => {
20424
- data2.parentNode = node;
20425
- });
20426
- }));
20427
20423
  watch(() => modelValue.value, (n, o) => __async(this, null, function* () {
20428
20424
  data2.selectedNodeId = modelValue.value;
20429
20425
  let params = {};
@@ -20507,7 +20503,7 @@ const _sfc_main$2 = {
20507
20503
  color: "#e0e0e0"
20508
20504
  })) : createCommentVNode("", true)], 8, _hoisted_10)) : createCommentVNode("", true), createElementVNode("span", _hoisted_11, toDisplayString(item.label), 1)])]),
20509
20505
  _: 2
20510
- }, [item.hasChildren && item.canExpand ? {
20506
+ }, [item.canExpand ? {
20511
20507
  name: "right-icon",
20512
20508
  fn: withCtx(() => [createVNode(_component_van_icon, {
20513
20509
  name: "arrow",
@@ -20522,7 +20518,7 @@ const _sfc_main$2 = {
20522
20518
  };
20523
20519
  }
20524
20520
  };
20525
- var CascaderPop = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-c97110e4"]]);
20521
+ var CascaderPop = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-ed5ef2aa"]]);
20526
20522
  const _sfc_main$1 = {
20527
20523
  __name: "CascaderPicker",
20528
20524
  props: {
@@ -3305,6 +3305,13 @@ var __async = (__this, __arguments, generator) => {
3305
3305
  data: data2
3306
3306
  });
3307
3307
  };
3308
+ const qw_department_children = (data2) => {
3309
+ return service$3({
3310
+ url: vm.urlCallback() + "/ac-api/qw/department/children",
3311
+ method: "POST",
3312
+ data: data2
3313
+ });
3314
+ };
3308
3315
  var ApiUtil = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3309
3316
  __proto__: null,
3310
3317
  process_can_apply,
@@ -3322,7 +3329,8 @@ var __async = (__this, __arguments, generator) => {
3322
3329
  file_upload,
3323
3330
  auth_get_user_info,
3324
3331
  part_children,
3325
- part_detail
3332
+ part_detail,
3333
+ qw_department_children
3326
3334
  }, Symbol.toStringTag, { value: "Module" }));
3327
3335
  function noop() {
3328
3336
  }
@@ -17466,7 +17474,7 @@ var __async = (__this, __arguments, generator) => {
17466
17474
  };
17467
17475
  const _hoisted_6$5 = /* @__PURE__ */ vue.createTextVNode(" \u53D6\u6D88 ");
17468
17476
  const _hoisted_7$5 = /* @__PURE__ */ vue.createTextVNode(" \u786E\u5B9A ");
17469
- const _hoisted_8$5 = {
17477
+ const _hoisted_8$4 = {
17470
17478
  class: "scroll-container"
17471
17479
  };
17472
17480
  const _hoisted_9$2 = {
@@ -17771,7 +17779,7 @@ var __async = (__this, __arguments, generator) => {
17771
17779
  clearable: "",
17772
17780
  placeholder: "\u8BF7\u8F93\u5165\u90E8\u95E8\u540D\u79F0\u641C\u7D22",
17773
17781
  class: "search-field"
17774
- }, null, 8, ["modelValue"]), vue.createElementVNode("div", _hoisted_8$5, [vue.createVNode(_component_van_cell_group, null, {
17782
+ }, null, 8, ["modelValue"]), vue.createElementVNode("div", _hoisted_8$4, [vue.createVNode(_component_van_cell_group, null, {
17775
17783
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(filteredDepartments), (item, index) => {
17776
17784
  return vue.openBlock(), vue.createBlock(_component_van_cell, {
17777
17785
  key: index,
@@ -17828,7 +17836,7 @@ var __async = (__this, __arguments, generator) => {
17828
17836
  class: "header-right"
17829
17837
  };
17830
17838
  const _hoisted_7$4 = /* @__PURE__ */ vue.createTextVNode("\u6E05\u7A7A");
17831
- const _hoisted_8$4 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
17839
+ const _hoisted_8$3 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
17832
17840
  const _hoisted_9$1 = {
17833
17841
  key: 0,
17834
17842
  class: "select-all-container"
@@ -18230,7 +18238,7 @@ var __async = (__this, __arguments, generator) => {
18230
18238
  onClick: confirmSelection,
18231
18239
  class: "confirm-btn"
18232
18240
  }, {
18233
- default: vue.withCtx(() => [_hoisted_8$4]),
18241
+ default: vue.withCtx(() => [_hoisted_8$3]),
18234
18242
  _: 1
18235
18243
  })])]), __props.mode === "multiple" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$1, [vue.createVNode(_component_van_checkbox, {
18236
18244
  shape: "square",
@@ -18706,7 +18714,7 @@ var __async = (__this, __arguments, generator) => {
18706
18714
  };
18707
18715
  const _hoisted_6$3 = /* @__PURE__ */ vue.createTextVNode("\u6E05\u7A7A");
18708
18716
  const _hoisted_7$3 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
18709
- const _hoisted_8$3 = {
18717
+ const _hoisted_8$2 = {
18710
18718
  class: "scroll-container"
18711
18719
  };
18712
18720
  const _sfc_main$f = {
@@ -19008,7 +19016,7 @@ var __async = (__this, __arguments, generator) => {
19008
19016
  onClick: handleSearch
19009
19017
  }, "\u641C\u7D22")]),
19010
19018
  _: 1
19011
- }, 8, ["modelValue"]), vue.createElementVNode("div", _hoisted_8$3, [vue.createVNode(_component_van_cell_group, null, {
19019
+ }, 8, ["modelValue"]), vue.createElementVNode("div", _hoisted_8$2, [vue.createVNode(_component_van_cell_group, null, {
19012
19020
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(departments), (department) => {
19013
19021
  return vue.openBlock(), vue.createBlock(_component_van_cell, {
19014
19022
  key: department.id,
@@ -19062,7 +19070,7 @@ var __async = (__this, __arguments, generator) => {
19062
19070
  };
19063
19071
  const _hoisted_6$2 = /* @__PURE__ */ vue.createTextVNode("\u53D6\u6D88");
19064
19072
  const _hoisted_7$2 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
19065
- const _hoisted_8$2 = {
19073
+ const _hoisted_8$1 = {
19066
19074
  class: "scroll-container"
19067
19075
  };
19068
19076
  const _sfc_main$e = {
@@ -19280,7 +19288,7 @@ var __async = (__this, __arguments, generator) => {
19280
19288
  onClick: onSearch
19281
19289
  }, "\u641C\u7D22")]),
19282
19290
  _: 1
19283
- }, 8, ["modelValue", "onClear", "onCancel"]), vue.createElementVNode("div", _hoisted_8$2, [vue.createVNode(_component_van_cell_group, null, {
19291
+ }, 8, ["modelValue", "onClear", "onCancel"]), vue.createElementVNode("div", _hoisted_8$1, [vue.createVNode(_component_van_cell_group, null, {
19284
19292
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(subDepts), (dept) => {
19285
19293
  return vue.openBlock(), vue.createBlock(_component_van_cell, {
19286
19294
  key: dept.id,
@@ -19559,7 +19567,7 @@ var __async = (__this, __arguments, generator) => {
19559
19567
  }
19560
19568
  };
19561
19569
  var UserPicker = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-58929b5a"]]);
19562
- var UserProfile_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.widget[data-v-5ebf8c56] {\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: space-around;\r\n padding: 20px;\r\n background: linear-gradient(to right, #4a90e2, #87ceeb);\r\n border-radius: 10px;\r\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);\n.user-avatar[data-v-5ebf8c56] {\r\n margin-bottom: 15px;\n}\n.user-info[data-v-5ebf8c56] {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-around;\r\n margin-bottom: 15px;\n.user-info-item[data-v-5ebf8c56] {\r\n font-size: 16px;\r\n line-height: 22px;\r\n color: #fff;\r\n text-align: center;\r\n padding: 0 3px;\n}\n}\n.space[data-v-5ebf8c56] {\r\n min-height: 10px;\r\n flex: 1;\n}\r\n\r\n /* \u6DFB\u52A0\u9000\u51FA\u6309\u94AE\u6837\u5F0F */\n.logout-button[data-v-5ebf8c56] {\r\n width: 70px;\r\n height: 30px;\r\n position: absolute;\r\n top: 20px;\r\n right: 20px;\r\n background-color: rgba(255, 255, 255, 0.2);\r\n color: white;\r\n border: none;\r\n border-radius: 15px;\r\n padding: 5px 15px;\r\n cursor: pointer;\r\n font-size: 14px;\r\n transition: background-color 0.3s;\n}\n.logout-button[data-v-5ebf8c56]:hover {\r\n background-color: rgba(255, 255, 255, 0.4);\n}\n.user-jobs[data-v-5ebf8c56] {\r\n display: flex;\r\n justify-content: center;\r\n gap: 15px;\r\n width: 100%;\r\n max-width: 300px;\n.job-item[data-v-5ebf8c56] {\r\n padding: 5px 10px;\r\n background-color: rgba(255, 255, 255, 0.2);\r\n border-radius: 20px;\r\n font-size: 12px;\r\n color: #fff;\n}\n}\n}\r\n")();
19570
+ var UserProfile_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.widget[data-v-bd8efbe2] {\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: space-around;\r\n padding: 20px;\r\n background: linear-gradient(to right, #4a90e2, #87ceeb);\r\n border-radius: 10px;\r\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);\n.user-avatar[data-v-bd8efbe2] {\r\n margin-bottom: 15px;\n}\n.user-info[data-v-bd8efbe2] {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-around;\r\n margin-bottom: 15px;\n.user-info-item[data-v-bd8efbe2] {\r\n font-size: 16px;\r\n line-height: 22px;\r\n color: #fff;\r\n text-align: center;\r\n padding: 0 3px;\n}\n}\n.space[data-v-bd8efbe2] {\r\n min-height: 10px;\r\n flex: 1;\n}\r\n\r\n /* \u6DFB\u52A0\u9000\u51FA\u6309\u94AE\u6837\u5F0F */\n.logout-button[data-v-bd8efbe2] {\r\n width: 70px;\r\n height: 30px;\r\n position: absolute;\r\n top: 20px;\r\n right: 20px;\r\n background-color: rgba(255, 255, 255, 0.2);\r\n color: white;\r\n border: none;\r\n border-radius: 15px;\r\n padding: 5px 15px;\r\n cursor: pointer;\r\n font-size: 14px;\r\n transition: background-color 0.3s;\n}\n.logout-button[data-v-bd8efbe2]:hover {\r\n background-color: rgba(255, 255, 255, 0.4);\n}\n.user-jobs[data-v-bd8efbe2] {\r\n display: flex;\r\n justify-content: center;\r\n gap: 15px;\r\n width: 100%;\r\n max-width: 300px;\n.job-item[data-v-bd8efbe2] {\r\n padding: 5px 10px;\r\n background-color: rgba(255, 255, 255, 0.2);\r\n border-radius: 20px;\r\n font-size: 12px;\r\n color: #fff;\n}\n}\n}\r\n")();
19563
19571
  const _hoisted_1$5 = {
19564
19572
  class: "widget"
19565
19573
  };
@@ -19576,67 +19584,69 @@ var __async = (__this, __arguments, generator) => {
19576
19584
  class: "user-info-item"
19577
19585
  };
19578
19586
  const _hoisted_6$1 = {
19579
- class: "user-info-item"
19580
- };
19581
- const _hoisted_7$1 = {
19582
19587
  class: "user-jobs"
19583
19588
  };
19584
- const _hoisted_8$1 = /* @__PURE__ */ vue.createTextVNode(" \u6CE8\u9500 ");
19589
+ const _hoisted_7$1 = /* @__PURE__ */ vue.createTextVNode(" \u6CE8\u9500 ");
19585
19590
  const _sfc_main$b = {
19586
19591
  __name: "UserProfile",
19592
+ props: {
19593
+ avatar: {
19594
+ type: String,
19595
+ default: ""
19596
+ },
19597
+ name: {
19598
+ type: String,
19599
+ default: ""
19600
+ },
19601
+ position: {
19602
+ type: String,
19603
+ default: ""
19604
+ },
19605
+ mobile: {
19606
+ type: String,
19607
+ default: ""
19608
+ },
19609
+ departments: {
19610
+ type: Array,
19611
+ default: []
19612
+ }
19613
+ },
19587
19614
  emits: ["logout"],
19588
19615
  setup(__props, {
19589
19616
  emit
19590
19617
  }) {
19591
- const data2 = vue.reactive({
19592
- userInfo: {}
19593
- });
19594
- const deptPaths = vue.computed(() => {
19595
- if (data2.userInfo && data2.userInfo.departments && data2.userInfo.departments.length > 1)
19596
- return data2.userInfo.departments.filter((item) => item.id != "1");
19597
- if (data2.userInfo && data2.userInfo.wxUser)
19598
- return [{
19599
- name: data2.userInfo.wxUser.corp
19600
- }];
19601
- return [];
19602
- });
19618
+ const props = __props;
19603
19619
  const onLogout = () => {
19604
19620
  emit("logout");
19605
19621
  };
19606
- const getUserInfo = () => __async(this, null, function* () {
19607
- let res = yield util.auth_get_user_info();
19608
- data2.userInfo = res.data;
19609
- });
19610
19622
  vue.onMounted(() => {
19611
- getUserInfo();
19612
19623
  });
19613
19624
  return (_ctx, _cache) => {
19614
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
19615
19625
  const _component_van_image = vue.resolveComponent("van-image");
19616
19626
  const _component_van_button = vue.resolveComponent("van-button");
19617
19627
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [vue.createVNode(_component_van_image, {
19618
19628
  round: "",
19619
19629
  width: "80px",
19620
19630
  height: "80px",
19621
- src: (_b = (_a = data2.userInfo) == null ? void 0 : _a.wxUser) == null ? void 0 : _b.avatar,
19631
+ src: props.avatar,
19622
19632
  class: "user-avatar"
19623
- }, null, 8, ["src"]), vue.createElementVNode("div", _hoisted_2$3, [vue.createElementVNode("span", _hoisted_3$2, vue.toDisplayString((_d = (_c = data2.userInfo) == null ? void 0 : _c.wxUser) == null ? void 0 : _d.userid), 1), vue.createElementVNode("span", _hoisted_4$2, vue.toDisplayString((_f = (_e = data2.userInfo) == null ? void 0 : _e.wxUser) == null ? void 0 : _f.name), 1), vue.createElementVNode("span", _hoisted_5$2, vue.toDisplayString((_h = (_g = data2.userInfo) == null ? void 0 : _g.wxUser) == null ? void 0 : _h.position), 1), vue.createElementVNode("span", _hoisted_6$1, vue.toDisplayString((_j = (_i = data2.userInfo) == null ? void 0 : _i.wxUser) == null ? void 0 : _j.mobile), 1)]), vue.createElementVNode("div", _hoisted_7$1, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(deptPaths), (item, i) => {
19633
+ }, null, 8, ["src"]), vue.createElementVNode("div", _hoisted_2$3, [vue.createElementVNode("span", _hoisted_3$2, vue.toDisplayString(props.name), 1), vue.createElementVNode("span", _hoisted_4$2, vue.toDisplayString(props.position), 1), vue.createElementVNode("span", _hoisted_5$2, vue.toDisplayString(props.mobile), 1)]), vue.createElementVNode("div", _hoisted_6$1, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.departments, (item, i) => {
19624
19634
  return vue.openBlock(), vue.createElementBlock("span", {
19625
19635
  class: "job-item",
19626
19636
  key: i
19627
- }, vue.toDisplayString(item.name), 1);
19637
+ }, vue.toDisplayString(item), 1);
19628
19638
  }), 128))]), vue.createVNode(_component_van_button, {
19629
19639
  block: "",
19630
19640
  class: "logout-button",
19631
19641
  onClick: onLogout
19632
19642
  }, {
19633
- default: vue.withCtx(() => [_hoisted_8$1]),
19643
+ default: vue.withCtx(() => [_hoisted_7$1]),
19634
19644
  _: 1
19635
19645
  })]);
19636
19646
  };
19637
19647
  }
19638
19648
  };
19639
- var UserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-5ebf8c56"]]);
19649
+ var UserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-bd8efbe2"]]);
19640
19650
  var BillCard_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-68bdd6bc] {\n background-color: white;\n border-radius: 8px;\n box-shadow: var(--van-dropdown-menu-shadow);\n color: 14px;\n}\n.widget .card-box[data-v-68bdd6bc] {\n padding-bottom: 8px;\n}\n.widget .card-box .card-header[data-v-68bdd6bc] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 15px 10px;\n border-bottom: 1px solid #eee;\n}\n.widget .card-box .card-header .card-sum[data-v-68bdd6bc] {\n flex: 1;\n font-size: 14px;\n text-align: left;\n}\n.widget .card-box .card-header .user-state[data-v-68bdd6bc] {\n margin-right: 1px;\n}\n[data-v-68bdd6bc] .van-cell__value {\n flex: 2 !important;\n}\n[data-v-68bdd6bc] .van-cell__title {\n font-size: 12px !important;\n color: #666 !important;\n text-align: left !important;\n}\n[data-v-68bdd6bc] .van-cell__value {\n font-size: 12px !important;\n color: #888 !important;\n}\n[data-v-68bdd6bc] .van-cell {\n padding: 2px 10px !important;\n}")();
19641
19651
  const _hoisted_1$4 = {
19642
19652
  class: "widget"
@@ -20282,7 +20292,7 @@ var __async = (__this, __arguments, generator) => {
20282
20292
  }
20283
20293
  };
20284
20294
  var TreePicker = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-6744b874"]]);
20285
- var CascaderPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.cascader-pop[data-v-c97110e4] {\r\n width: 100%;\r\n overflow: hidden;\n}\n.cascader-selector[data-v-c97110e4] {\r\n padding: 10px;\n}\n.search-buttons[data-v-c97110e4] {\r\n display: flex;\r\n gap: 10px;\n}\n.clear-btn[data-v-c97110e4] {\r\n background-color: #f2f3f5;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.confirm-btn[data-v-c97110e4] {\r\n background-color: #1989fa;\r\n color: white;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.no-results[data-v-c97110e4] {\r\n text-align: center;\r\n padding: 20px;\r\n color: #969799;\n}\n.cascader-header[data-v-c97110e4] {\r\n padding: 10px;\r\n border-bottom: 1px solid #ebedf0;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\n}\n.current-path[data-v-c97110e4] {\r\n flex: 1;\r\n font-size: 14px;\r\n color: #323233;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\n}\n.header-right[data-v-c97110e4] {\r\n display: flex;\r\n gap: 8px;\r\n margin-left: auto;\n}\n.cancel-btn[data-v-c97110e4] {\r\n color: #969799;\r\n margin-right: 5px;\n}\n.scroll-container[data-v-c97110e4] {\r\n height: calc(80vh - 150px);\r\n overflow-y: auto;\n}\n.cell-content[data-v-c97110e4] {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\n}\n.circle-selector[data-v-c97110e4] {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: all 0.2s;\r\n flex-shrink: 0;\n}\n.circle-selector.selected[data-v-c97110e4] {\r\n background-color: #1989fa;\r\n border-color: #1989fa;\n}\n.circle-selector.selected .van-icon[data-v-c97110e4] {\r\n color: white;\r\n font-size: 14px;\n}\n.van-cell__right-icon[data-v-c97110e4] {\r\n color: #969799;\r\n font-size: 16px;\r\n margin-left: 8px;\n}\n.name[data-v-c97110e4] {\r\n flex: 1;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\n}\n.cancel-btn[data-v-c97110e4] {\r\n color: #969799;\n}\n.search-field[data-v-c97110e4] {\r\n background: #fff;\r\n padding: 10px 16px;\r\n border-bottom: 1px solid #ebedf0;\r\n position: sticky;\r\n top: 0;\r\n z-index: 999;\r\n margin-bottom: 10px;\r\n flex-shrink: 0;\r\n /* \u9632\u6B62\u538B\u7F29 */\n}\r\n")();
20295
+ var CascaderPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.cascader-pop[data-v-ed5ef2aa] {\r\n width: 100%;\r\n overflow: hidden;\n}\n.cascader-selector[data-v-ed5ef2aa] {\r\n padding: 10px;\n}\n.search-buttons[data-v-ed5ef2aa] {\r\n display: flex;\r\n gap: 10px;\n}\n.clear-btn[data-v-ed5ef2aa] {\r\n background-color: #f2f3f5;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.confirm-btn[data-v-ed5ef2aa] {\r\n background-color: #1989fa;\r\n color: white;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.no-results[data-v-ed5ef2aa] {\r\n text-align: center;\r\n padding: 20px;\r\n color: #969799;\n}\n.cascader-header[data-v-ed5ef2aa] {\r\n padding: 10px;\r\n border-bottom: 1px solid #ebedf0;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\n}\n.current-path[data-v-ed5ef2aa] {\r\n flex: 1;\r\n font-size: 14px;\r\n color: #323233;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\n}\n.header-right[data-v-ed5ef2aa] {\r\n display: flex;\r\n gap: 8px;\r\n margin-left: auto;\n}\n.cancel-btn[data-v-ed5ef2aa] {\r\n color: #969799;\r\n margin-right: 5px;\n}\n.scroll-container[data-v-ed5ef2aa] {\r\n height: calc(80vh - 150px);\r\n overflow-y: auto;\n}\n.cell-content[data-v-ed5ef2aa] {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\n}\n.circle-selector[data-v-ed5ef2aa] {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: all 0.2s;\r\n flex-shrink: 0;\n}\n.circle-selector.selected[data-v-ed5ef2aa] {\r\n background-color: #1989fa;\r\n border-color: #1989fa;\n}\n.circle-selector.selected .van-icon[data-v-ed5ef2aa] {\r\n color: white;\r\n font-size: 14px;\n}\n.van-cell__right-icon[data-v-ed5ef2aa] {\r\n color: #969799;\r\n font-size: 16px;\r\n margin-left: 8px;\n}\n.name[data-v-ed5ef2aa] {\r\n flex: 1;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\n}\n.cancel-btn[data-v-ed5ef2aa] {\r\n color: #969799;\n}\n.search-field[data-v-ed5ef2aa] {\r\n background: #fff;\r\n padding: 10px 16px;\r\n border-bottom: 1px solid #ebedf0;\r\n position: sticky;\r\n top: 0;\r\n z-index: 999;\r\n margin-bottom: 10px;\r\n flex-shrink: 0;\r\n /* \u9632\u6B62\u538B\u7F29 */\n}\r\n")();
20286
20296
  const _hoisted_1$1 = {
20287
20297
  class: "cascader-selector"
20288
20298
  };
@@ -20349,12 +20359,6 @@ var __async = (__this, __arguments, generator) => {
20349
20359
  selectedNodeId: ""
20350
20360
  });
20351
20361
  vue.onMounted(() => {
20352
- props.idQueryNode({
20353
- id: "",
20354
- isReturnParent: true
20355
- }, (node) => {
20356
- data2.parentNode = node;
20357
- });
20358
20362
  });
20359
20363
  const optionNodes = vue.computed(() => {
20360
20364
  var _a;
@@ -20381,7 +20385,7 @@ var __async = (__this, __arguments, generator) => {
20381
20385
  data2.keyword = "";
20382
20386
  props.idQueryNode({
20383
20387
  id: data2.parentNode.parentId,
20384
- isReturnParent: true
20388
+ isReturnParent: false
20385
20389
  }, (node) => {
20386
20390
  data2.parentNode = node;
20387
20391
  });
@@ -20419,14 +20423,6 @@ var __async = (__this, __arguments, generator) => {
20419
20423
  data2.parentNode = node2;
20420
20424
  });
20421
20425
  };
20422
- vue.onMounted(() => __async(this, null, function* () {
20423
- props.idQueryNode({
20424
- id: "",
20425
- isReturnParent: true
20426
- }, (node) => {
20427
- data2.parentNode = node;
20428
- });
20429
- }));
20430
20426
  vue.watch(() => modelValue.value, (n, o) => __async(this, null, function* () {
20431
20427
  data2.selectedNodeId = modelValue.value;
20432
20428
  let params = {};
@@ -20510,7 +20506,7 @@ var __async = (__this, __arguments, generator) => {
20510
20506
  color: "#e0e0e0"
20511
20507
  })) : vue.createCommentVNode("", true)], 8, _hoisted_10)) : vue.createCommentVNode("", true), vue.createElementVNode("span", _hoisted_11, vue.toDisplayString(item.label), 1)])]),
20512
20508
  _: 2
20513
- }, [item.hasChildren && item.canExpand ? {
20509
+ }, [item.canExpand ? {
20514
20510
  name: "right-icon",
20515
20511
  fn: vue.withCtx(() => [vue.createVNode(_component_van_icon, {
20516
20512
  name: "arrow",
@@ -20525,7 +20521,7 @@ var __async = (__this, __arguments, generator) => {
20525
20521
  };
20526
20522
  }
20527
20523
  };
20528
- var CascaderPop = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-c97110e4"]]);
20524
+ var CascaderPop = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-ed5ef2aa"]]);
20529
20525
  const _sfc_main$1 = {
20530
20526
  __name: "CascaderPicker",
20531
20527
  props: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "widget.qw",
3
3
  "private": false,
4
- "version": "1.0.23",
4
+ "version": "1.0.25",
5
5
  "description": "marqstree Vue3组件库",
6
6
  "main": "build/widget.qw.es.js",
7
7
  "keywords": [
package/src/api/index.js CHANGED
@@ -139,4 +139,12 @@ export const part_detail = (data) => {
139
139
  method: "POST",
140
140
  data: data,
141
141
  })
142
+ }
143
+
144
+ export const qw_department_children = (data) => {
145
+ return request_json({
146
+ url: vm.urlCallback() + "/ac-api/qw/department/children",
147
+ method: "POST",
148
+ data: data,
149
+ })
142
150
  }
@@ -39,7 +39,7 @@
39
39
  <span class="name">{{ item.label }}</span>
40
40
  </div>
41
41
  </template>
42
- <template #right-icon v-if="item.hasChildren && item.canExpand">
42
+ <template #right-icon v-if="item.canExpand">
43
43
  <van-icon name="arrow" @click.stop="onNextLevel(item)" />
44
44
  </template>
45
45
  </van-cell>
@@ -91,10 +91,6 @@ const data = reactive({
91
91
  })
92
92
 
93
93
  onMounted(() => {
94
- //查询根节点
95
- props.idQueryNode({ id: '', isReturnParent: true }, (node) => {
96
- data.parentNode = node
97
- })
98
94
  })
99
95
 
100
96
  // 待选节点列表
@@ -125,7 +121,7 @@ const onBack = () => {
125
121
  return
126
122
 
127
123
  data.keyword = ""
128
- props.idQueryNode({ id: data.parentNode.parentId, isReturnParent: true }, (node) => {
124
+ props.idQueryNode({ id: data.parentNode.parentId, isReturnParent: false }, (node) => {
129
125
  data.parentNode = node
130
126
  })
131
127
  }
@@ -172,13 +168,6 @@ const onNextLevel = (node) => {
172
168
  })
173
169
  }
174
170
 
175
- //首页加载
176
- onMounted(async () => {
177
- props.idQueryNode({ id: '', isReturnParent: true }, (node) => {
178
- data.parentNode = node
179
- })
180
- })
181
-
182
171
  watch(() => modelValue.value, async (n, o) => {
183
172
  data.selectedNodeId = modelValue.value
184
173
 
@@ -1,14 +1,13 @@
1
1
  <template>
2
2
  <div class="widget">
3
- <van-image round width="80px" height="80px" :src="data.userInfo?.wxUser?.avatar" class="user-avatar" />
3
+ <van-image round width="80px" height="80px" :src="props.avatar" class="user-avatar" />
4
4
  <div class="user-info">
5
- <span class="user-info-item">{{ data.userInfo?.wxUser?.userid }}</span>
6
- <span class="user-info-item">{{ data.userInfo?.wxUser?.name }}</span>
7
- <span class="user-info-item">{{ data.userInfo?.wxUser?.position }}</span>
8
- <span class="user-info-item">{{ data.userInfo?.wxUser?.mobile }}</span>
5
+ <span class="user-info-item">{{ props.name }}</span>
6
+ <span class="user-info-item">{{ props.position }}</span>
7
+ <span class="user-info-item">{{ props.mobile }}</span>
9
8
  </div>
10
9
  <div class="user-jobs">
11
- <span class="job-item" v-for="(item, i) in deptPaths" :key="i">{{ item.name }}</span>
10
+ <span class="job-item" v-for="(item, i) in departments" :key="i">{{ item }}</span>
12
11
  </div>
13
12
 
14
13
  <van-button block class="logout-button" @click="onLogout">
@@ -20,35 +19,39 @@
20
19
  <script setup>
21
20
  import { reactive, onMounted, watch, defineEmits, computed } from "vue";
22
21
  import util from "../util"
23
-
24
- const data = reactive({
25
- userInfo: {}
22
+ import { type } from "os";
23
+
24
+ const props = defineProps({
25
+ avatar:{
26
+ type:String,
27
+ default:''
28
+ },
29
+ name:{
30
+ type:String,
31
+ default:''
32
+ },
33
+ position:{
34
+ type:String,
35
+ default:''
36
+ },
37
+ mobile:{
38
+ type:String,
39
+ default:''
40
+ },
41
+ departments:{
42
+ type:Array,
43
+ default:[]
44
+ }
26
45
  })
27
- const emit = defineEmits(['logout'])
28
-
29
- const deptPaths = computed(() => {
30
- //过滤掉公司
31
- if (data.userInfo && data.userInfo.departments && data.userInfo.departments.length>1)
32
- return data.userInfo.departments.filter(item => item.id != '1')
33
-
34
- // 外部访客,返回公司名
35
- if(data.userInfo && data.userInfo.wxUser)
36
- return [{name: data.userInfo.wxUser.corp}]
37
46
 
38
- return []
39
- })
47
+ const emit = defineEmits(['logout'])
40
48
 
41
49
  const onLogout = () => {
42
50
  emit('logout')
43
51
  }
44
52
 
45
- const getUserInfo = async () => {
46
- let res = await util.auth_get_user_info()
47
- data.userInfo = res.data
48
- }
49
-
50
53
  onMounted(() => {
51
- getUserInfo()
54
+
52
55
  })
53
56
  </script>
54
57
 
Binary file