index.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854
  1. <template>
  2. <div class="tenant">
  3. <!-- <Banner /> -->
  4. <div class="content">
  5. <byTable
  6. ref="table"
  7. :source="sourceList.data"
  8. :pagination="sourceList.pagination"
  9. :config="config"
  10. :loading="loading"
  11. highlight-current-row
  12. :selectConfig="selectConfig"
  13. :table-events="{
  14. //element talbe事件都能传
  15. select: select,
  16. }"
  17. :action-list="[
  18. {
  19. text: '添加物流数据',
  20. action: () => openModal('add'),
  21. },
  22. ]"
  23. @get-list="getList"
  24. >
  25. <template #one="{ item }">
  26. <div
  27. style="cursor: pointer; color: #409eff"
  28. @click="handleClickLinkCode(item)"
  29. >
  30. {{ item.businessCode }}
  31. </div>
  32. </template>
  33. <template #two="{ item }">
  34. <div
  35. style="cursor: pointer; color: #409eff"
  36. @click="handleClickCode(item)"
  37. >
  38. {{ item.code }}
  39. </div>
  40. </template>
  41. </byTable>
  42. </div>
  43. <el-dialog
  44. :title="
  45. modalType == 'add'
  46. ? '添加物流数据'
  47. : modalType == 'edit'
  48. ? '编辑物流数据'
  49. : '到货通知'
  50. "
  51. v-model="dialogVisible"
  52. width="800"
  53. v-loading="loading"
  54. >
  55. <byForm
  56. v-if="modalType != 'other'"
  57. :formConfig="formConfig"
  58. :formOption="formOption"
  59. v-model="formData.data"
  60. :rules="rules"
  61. ref="byform"
  62. >
  63. </byForm>
  64. <byForm
  65. v-else
  66. :formConfig="formConfigOne"
  67. :formOption="formOption"
  68. v-model="formData.data"
  69. :rules="rules"
  70. ref="byform"
  71. >
  72. <template #detailSlot>
  73. <div style="width: 100%">
  74. <el-table :data="formData.data.arrivalDetailList">
  75. <el-table-column
  76. prop="productDefinition"
  77. label="物品类型"
  78. :formatter="
  79. (row) =>
  80. row.productDefinition == 1
  81. ? '产品'
  82. : row.productDefinition == 2
  83. ? '物料'
  84. : ''
  85. "
  86. />
  87. <el-table-column prop="productCode" label="物品编码" />
  88. <el-table-column prop="productName" label="物品名称" />
  89. <!-- <el-table-column prop="productSpec" label="规格型号" /> -->
  90. <el-table-column prop="productUnit" label="单位" />
  91. <el-table-column prop="count" label="采购数量" />
  92. <el-table-column prop="transitQuantity" label="剩余在途" />
  93. <el-table-column prop="deliverGoodsQuantity" label="本次发货" />
  94. </el-table>
  95. </div>
  96. </template>
  97. </byForm>
  98. <template #footer>
  99. <el-button @click="dialogVisible = false" size="large">取 消</el-button>
  100. <el-button
  101. type="primary"
  102. @click="submitForm('byform')"
  103. size="large"
  104. :loading="submitLoading"
  105. >
  106. 确 定
  107. </el-button>
  108. </template>
  109. </el-dialog>
  110. <el-dialog
  111. title="物流数据"
  112. v-model="openRecord"
  113. width="40%"
  114. top="50px"
  115. destroy-on-close
  116. >
  117. <!-- <div style="padding-left: 40px; margin-bottom: 20px">
  118. <el-button size="mini" @click="handleAddRecord">
  119. 添加物流记录
  120. </el-button>
  121. </div> -->
  122. <div>
  123. <el-timeline :reverse="false">
  124. <el-timeline-item
  125. placement="top"
  126. v-for="(activity, index) in activities"
  127. :key="index"
  128. :timestamp="activity.ftime"
  129. >
  130. {{ activity.context }}
  131. </el-timeline-item>
  132. </el-timeline>
  133. </div>
  134. <template #footer>
  135. <el-button @click="openRecord = false" size="large">关闭</el-button>
  136. </template>
  137. </el-dialog>
  138. <el-dialog
  139. :title="'到货详情'"
  140. v-model="dialogVisibleOne"
  141. width="80%"
  142. destroy-on-close
  143. >
  144. <byForm
  145. :formConfig="formConfigTwo"
  146. :formOption="formOption"
  147. v-model="formData.dataOne"
  148. :rules="rules"
  149. ref="byformOne"
  150. >
  151. <template #detailSlot>
  152. <div style="width: 100%">
  153. <el-table :data="formData.dataOne.purchaseDetailVoList">
  154. <el-table-column prop="productCustomCode" label="物品编码" />
  155. <el-table-column prop="productName" label="物品名称" />
  156. <el-table-column prop="productSpec" label="规格型号" />
  157. <el-table-column prop="count" label="采购数量" />
  158. <el-table-column prop="deliverGoodsQuantity" label="已发货">
  159. <template #default="{ row }">
  160. <div>
  161. <el-popover
  162. placement="bottom-start"
  163. title="发货详情"
  164. :width="500"
  165. trigger="hover"
  166. >
  167. <div default>
  168. <el-table :data="row.deliverGoodsDetailList">
  169. <el-table-column
  170. label="发货时间"
  171. prop="createTime"
  172. width="155"
  173. />
  174. <el-table-column
  175. label="物流单号"
  176. prop="logisticsCode"
  177. />
  178. <el-table-column
  179. label="数量"
  180. prop="deliverGoodsQuantity"
  181. width="100"
  182. />
  183. </el-table>
  184. </div>
  185. <template #reference>
  186. <div style="cursor: pointer; color: #0084ff">
  187. {{ row.deliverGoodsQuantity }}
  188. </div>
  189. </template>
  190. </el-popover>
  191. </div>
  192. </template>
  193. </el-table-column>
  194. <el-table-column prop="receiptQuantity" label="已入库">
  195. <template #default="{ row }">
  196. <div>
  197. <el-popover
  198. placement="bottom-start"
  199. title="入库详情"
  200. :width="500"
  201. trigger="hover"
  202. >
  203. <div default>
  204. <el-table :data="row.receiptList">
  205. <el-table-column
  206. label="入库时间"
  207. prop="createTime"
  208. width="155"
  209. />
  210. <el-table-column
  211. label="入库单号"
  212. prop="logisticsCode"
  213. />
  214. <el-table-column
  215. label="数量"
  216. prop="quantity"
  217. width="100"
  218. />
  219. </el-table>
  220. </div>
  221. <template #reference>
  222. <div style="cursor: pointer; color: #0084ff">
  223. {{ row.receiptQuantity }}
  224. </div>
  225. </template>
  226. </el-popover>
  227. </div>
  228. </template>
  229. </el-table-column>
  230. <el-table-column prop="purchaseBackQuantity" label="退货">
  231. <template #default="{ row }">
  232. <div>
  233. <el-popover
  234. placement="bottom-start"
  235. title="退货详情"
  236. :width="500"
  237. trigger="hover"
  238. >
  239. <div default>
  240. <el-table :data="row.purchaseBackDetailsList">
  241. <el-table-column label="申请时间" prop="createTime" />
  242. <el-table-column label="申请数量" prop="quantity" />
  243. <el-table-column
  244. label="已退数量"
  245. prop="returnedQuantity"
  246. />
  247. </el-table>
  248. </div>
  249. <template #reference>
  250. <div style="cursor: pointer; color: #0084ff">
  251. {{ row.purchaseBackQuantity }}
  252. </div>
  253. </template>
  254. </el-popover>
  255. </div>
  256. </template>
  257. </el-table-column>
  258. <el-table-column prop="qualityQuantity" label="已质检数量" />
  259. <el-table-column prop="noQualifiedCount" label="不合格数量" />
  260. </el-table>
  261. </div>
  262. </template>
  263. </byForm>
  264. <template #footer>
  265. <el-button @click="dialogVisibleOne = false" size="large"
  266. >取 消</el-button
  267. >
  268. </template>
  269. </el-dialog>
  270. </div>
  271. </template>
  272. <script setup>
  273. /* eslint-disable vue/no-unused-components */
  274. import { ElMessage, ElMessageBox } from "element-plus";
  275. import byTable from "@/components/byTable/index";
  276. import byForm from "@/components/byForm/index";
  277. import { computed, defineComponent, ref } from "vue";
  278. import useUserStore from "@/store/modules/user";
  279. import SelectProduct from "@/components/WDLY/product/SelectProduct";
  280. const route = useRoute();
  281. const loading = ref(false);
  282. const submitLoading = ref(false);
  283. const sourceList = ref({
  284. data: [],
  285. pagination: {
  286. total: 3,
  287. pageNum: 1,
  288. pageSize: 10,
  289. businessType: "1",
  290. },
  291. });
  292. let dialogVisible = ref(false);
  293. let dialogVisibleOne = ref(false);
  294. let openProduct = ref(false);
  295. let openRecord = ref(false);
  296. const activities = ref([]);
  297. let roomDialogVisible = ref(false);
  298. let modalType = ref("add");
  299. let rules = ref({
  300. businessType: [
  301. { required: true, message: "请选择数据来源", trigger: "change" },
  302. ],
  303. logisticsCompanyCode: [
  304. { required: true, message: "请选择物流/快递公司", trigger: "change" },
  305. ],
  306. code: [{ required: true, message: "请输入物流/快递单号", trigger: "blur" }],
  307. isKd100: [{ required: true, message: "请选择是否同步", trigger: "change" }],
  308. });
  309. const { proxy } = getCurrentInstance();
  310. const statusData = ref([
  311. {
  312. label: "在途",
  313. value: "0",
  314. },
  315. {
  316. label: "揽收",
  317. value: "1",
  318. },
  319. {
  320. label: "疑难",
  321. value: "2",
  322. },
  323. {
  324. label: "签收",
  325. value: "3",
  326. },
  327. {
  328. label: "退签",
  329. value: "4",
  330. },
  331. {
  332. label: "派件",
  333. value: "5",
  334. },
  335. {
  336. label: "退回",
  337. value: "6",
  338. },
  339. {
  340. label: "转投",
  341. value: "7",
  342. },
  343. {
  344. label: "清关",
  345. value: "8",
  346. },
  347. {
  348. label: "拒签",
  349. value: "14",
  350. },
  351. {
  352. label: "完成",
  353. value: "15",
  354. },
  355. ]);
  356. const businessType = ref([
  357. {
  358. label: "采购入库",
  359. value: "1",
  360. },
  361. {
  362. label: "京东订单出库",
  363. value: "2",
  364. },
  365. {
  366. label: "销售订单出库",
  367. value: "3",
  368. },
  369. {
  370. label: "京东退货",
  371. value: "4",
  372. },
  373. {
  374. label: "采购退货",
  375. value: "5",
  376. },
  377. ]);
  378. const deptData = ref([]);
  379. const selectConfig = computed(() => [
  380. {
  381. isShowAll: false,
  382. label: "数据来源",
  383. prop: "businessType",
  384. data: businessType.value,
  385. },
  386. {
  387. label: "物流状态",
  388. prop: "logisticsStatus",
  389. data: statusData.value,
  390. },
  391. {
  392. label: "项目组",
  393. prop: "deptId",
  394. data: deptData.value,
  395. },
  396. ]);
  397. const config = computed(() => {
  398. return [
  399. {
  400. attrs: {
  401. label: "数据来源",
  402. prop: "businessType",
  403. },
  404. render(type) {
  405. return proxy.dictValueLabel(type, businessType.value);
  406. },
  407. },
  408. {
  409. attrs: {
  410. label: "关联单号",
  411. prop: "businessCode",
  412. slot: "one",
  413. },
  414. },
  415. {
  416. attrs: {
  417. label: "项目组",
  418. prop: "deptName",
  419. width: 150,
  420. },
  421. },
  422. {
  423. attrs: {
  424. label: "物流/快递公司",
  425. prop: "logisticsCompanyName",
  426. },
  427. },
  428. {
  429. attrs: {
  430. label: "物流/快递单号",
  431. prop: "code",
  432. slot: "two",
  433. },
  434. },
  435. {
  436. attrs: {
  437. label: "物流状态",
  438. prop: "logisticsStatus",
  439. },
  440. render(logisticsStatus) {
  441. let current = statusData.value.find((x) => x.value == logisticsStatus);
  442. return current ? current.label : "异常";
  443. },
  444. },
  445. {
  446. attrs: {
  447. label: "创建时间",
  448. prop: "createTime",
  449. width: 155,
  450. },
  451. },
  452. {
  453. attrs: {
  454. label: "操作",
  455. width: "200",
  456. align: "center",
  457. fixed: "right",
  458. },
  459. // 渲染 el-button,一般用在最后一列。
  460. renderHTML(row) {
  461. return [
  462. {
  463. attrs: {
  464. label: "修改",
  465. type: "primary",
  466. text: true,
  467. },
  468. el: "button",
  469. click() {
  470. getDtl(row);
  471. },
  472. },
  473. {
  474. attrs: {
  475. label: "更新状态",
  476. type: "primary",
  477. text: true,
  478. },
  479. el: "button",
  480. click() {
  481. editStatus(row);
  482. },
  483. },
  484. row.businessType == 1 && row.arrivalStatus == 0
  485. ? {
  486. attrs: {
  487. label: "到货通知",
  488. type: "primary",
  489. text: true,
  490. },
  491. el: "button",
  492. click() {
  493. handleArrival(row);
  494. },
  495. }
  496. : {},
  497. ];
  498. },
  499. },
  500. ];
  501. });
  502. let formData = reactive({
  503. data: {},
  504. dataOne: {},
  505. treeData: [],
  506. });
  507. const formOption = reactive({
  508. inline: true,
  509. labelWidth: 100,
  510. itemWidth: 100,
  511. rules: [],
  512. });
  513. const byform = ref(null);
  514. const treeData = ref([]);
  515. const formConfig = reactive([
  516. {
  517. type: "select",
  518. prop: "businessType",
  519. label: "数据来源",
  520. data: [],
  521. itemWidth: 61,
  522. },
  523. {
  524. type: "select",
  525. prop: "logisticsCompanyCode",
  526. label: "物流/快递信息",
  527. filterable: true,
  528. data: [],
  529. itemWidth: 40,
  530. style: {
  531. width: "100%",
  532. },
  533. },
  534. {
  535. type: "input",
  536. prop: "code",
  537. label: " ",
  538. itemWidth: 60,
  539. },
  540. {
  541. type: "radio",
  542. prop: "isKd100",
  543. label: "是否同步",
  544. required: true,
  545. border: true,
  546. data: [
  547. { label: "是", value: "1" },
  548. { label: "否", value: "2" },
  549. ],
  550. },
  551. {
  552. type: "input",
  553. prop: "remark",
  554. label: "备注",
  555. itemType: "textarea",
  556. },
  557. ]);
  558. const formConfigOne = reactive([
  559. {
  560. type: "title",
  561. title: "基础信息",
  562. },
  563. {
  564. type: "input",
  565. prop: "supplyName",
  566. label: "供应商",
  567. disabled: true,
  568. itemWidth: 50,
  569. },
  570. {
  571. type: "input",
  572. prop: "purchaseCode",
  573. label: "采购单号",
  574. disabled: true,
  575. itemWidth: 50,
  576. },
  577. {
  578. type: "select",
  579. label: "物流/快递单号",
  580. prop: "code",
  581. itemWidth: 50,
  582. disabled: true,
  583. style: {
  584. width: "100%",
  585. },
  586. },
  587. {
  588. type: "slot",
  589. slotName: "detailSlot",
  590. label: "发货明细",
  591. },
  592. ]);
  593. let formConfigTwo = computed(() => [
  594. {
  595. type: "title",
  596. title: "基础信息",
  597. },
  598. {
  599. type: "input",
  600. prop: "supplyName",
  601. label: "供应商",
  602. disabled: true,
  603. itemWidth: 50,
  604. },
  605. {
  606. type: "input",
  607. prop: "purchaseCode",
  608. label: "采购单号",
  609. disabled: true,
  610. itemWidth: 50,
  611. },
  612. {
  613. type: "title",
  614. title: "采购明细",
  615. },
  616. {
  617. type: "slot",
  618. slotName: "detailSlot",
  619. label: "",
  620. },
  621. ]);
  622. const getList = async (req) => {
  623. sourceList.value.pagination = { ...sourceList.value.pagination, ...req };
  624. loading.value = true;
  625. proxy
  626. .post("/logisticsInfos/page", sourceList.value.pagination)
  627. .then((message) => {
  628. console.log(message);
  629. sourceList.value.data = message.rows;
  630. sourceList.value.pagination.total = message.total;
  631. setTimeout(() => {
  632. loading.value = false;
  633. }, 200);
  634. });
  635. };
  636. const openModal = () => {
  637. dialogVisible.value = true;
  638. modalType.value = "add";
  639. formConfig[0].disabled = false;
  640. formData.data = {
  641. isKd100: "1",
  642. };
  643. };
  644. const submitForm = () => {
  645. console.log(byform.value);
  646. byform.value.handleSubmit((valid) => {
  647. if (modalType.value == "other") {
  648. loading.value = true;
  649. submitLoading.value = true;
  650. formData.data.arrivalDetailList = formData.data.arrivalDetailList.map(
  651. (x) => ({
  652. bussinessId: x.bussinessId,
  653. purchaseDetailId: x.purchaseDetailId,
  654. deliverGoodsDetailsId: x.deliverGoodsDetailsId,
  655. count: x.deliverGoodsQuantity,
  656. })
  657. );
  658. const victoriatouristJson = {
  659. deliverGoodsId: formData.data.deliverGoodsId,
  660. logisticsCompanyCode: formData.data.logisticsCompanyCode,
  661. code: formData.data.code,
  662. };
  663. formData.data.victoriatouristJson = JSON.stringify(victoriatouristJson);
  664. proxy.post("/arrival/addByWdly", formData.data).then(
  665. (res) => {
  666. ElMessage({
  667. message: `操作成功!`,
  668. type: "success",
  669. });
  670. dialogVisible.value = false;
  671. submitLoading.value = false;
  672. loading.value = false;
  673. getList();
  674. },
  675. (err) => (submitLoading.value = false)
  676. );
  677. } else {
  678. loading.value = true;
  679. submitLoading.value = true;
  680. proxy.post("/logisticsInfos/" + modalType.value, formData.data).then(
  681. (res) => {
  682. ElMessage({
  683. message: modalType.value == "add" ? "添加成功" : "编辑成功",
  684. type: "success",
  685. });
  686. dialogVisible.value = false;
  687. submitLoading.value = false;
  688. getList();
  689. },
  690. (err) => (submitLoading.value = false)
  691. );
  692. }
  693. });
  694. };
  695. const getDtl = (row) => {
  696. modalType.value = "edit";
  697. proxy.post("/logisticsInfos/detail", { id: row.id }).then((res) => {
  698. formConfig[0].disabled = true;
  699. formData.data = {
  700. id: res.id,
  701. businessType: res.businessType + "",
  702. logisticsCompanyCode: res.logisticsCompanyCode,
  703. code: res.code,
  704. isKd100: res.isKd100 + "",
  705. remark: "",
  706. };
  707. dialogVisible.value = true;
  708. });
  709. };
  710. const editStatus = (row) => {
  711. ElMessageBox.confirm("是否确定进行此操作?", "提示", {
  712. confirmButtonText: "确定",
  713. cancelButtonText: "取消",
  714. type: "warning",
  715. }).then(() => {
  716. // 删除
  717. proxy
  718. .post("/logisticsInfos/dataInfoEdit", {
  719. id: row.id,
  720. })
  721. .then((res) => {
  722. ElMessage({
  723. message: "更新成功",
  724. type: "success",
  725. });
  726. getList();
  727. });
  728. });
  729. };
  730. const logisticsData = ref([]);
  731. const getLogisticsData = (row) => {
  732. proxy.post("/companyInfo/list", { pageNum: 1, pageSize: 999 }).then((res) => {
  733. // logisticsData.value = res.reverse().slice(0, 100); //截取前100
  734. logisticsData.value = res.reverse();
  735. formConfig[1].data = logisticsData.value.map((x) => ({
  736. label: x.name,
  737. value: x.code,
  738. }));
  739. });
  740. };
  741. const handleClickCode = (row) => {
  742. let id = row.id;
  743. proxy.post("/logisticsInfos/getLogistics", { id }).then((res) => {
  744. if (res.data && res.data.length > 0) {
  745. activities.value = res.data;
  746. openRecord.value = true;
  747. } else {
  748. return ElMessage({
  749. message: res.message,
  750. type: "info",
  751. });
  752. }
  753. });
  754. };
  755. const deliverData = ref([]);
  756. const handleArrival = (row) => {
  757. modalType.value = "other";
  758. proxy.post("/deliverGoods/detail", { id: row.businessId }).then((res) => {
  759. formData.data = {
  760. purchaseId: row.id,
  761. businessId: row.id,
  762. supplyName: row.supplyName,
  763. purchaseCode: row.businessCode,
  764. supplyId: row.supplyId,
  765. code: row.code,
  766. logisticsCompanyCode: row.logisticsCompanyCode,
  767. deliverGoodsId: res[0] ? res[0].deliverGoodsId : "",
  768. arrivalDetailList: res.map((x) => ({
  769. count: x.count,
  770. productName: x.name,
  771. productSpec: x.spec,
  772. productUnit: x.unit,
  773. productType: x.type,
  774. productCode: x.code,
  775. bussinessId: x.productId,
  776. purchaseDetailId: x.purchaseDetailId,
  777. deliverGoodsDetailsId: x.id,
  778. transitQuantity: x.transitQuantity,
  779. deliverGoodsQuantity: x.deliverGoodsQuantity,
  780. productDefinition: x.definition,
  781. })),
  782. };
  783. dialogVisible.value = true;
  784. });
  785. };
  786. const handleClickLinkCode = (row) => {
  787. if (row.businessType == 1 || row.businessType == 5) {
  788. ElMessage({
  789. message: "数据请求中,请稍后",
  790. type: "info",
  791. });
  792. proxy
  793. .post("/deliverGoods/arrivalDetail", { purchaseId: row.purchaseId })
  794. .then((res) => {
  795. formData.dataOne = {
  796. supplyName: res.supplyName,
  797. purchaseCode: row.businessCode,
  798. purchaseDetailVoList: res.purchaseDetailVoList,
  799. };
  800. dialogVisibleOne.value = true;
  801. });
  802. }
  803. };
  804. const getDict = () => {
  805. proxy.get("/logisticsInfos/getDepts").then((res) => {
  806. deptData.value = res.data.map((x) => ({
  807. ...x,
  808. label: x.deptName,
  809. value: x.deptId,
  810. }));
  811. });
  812. };
  813. getDict();
  814. if (route.query && route.query.keyword) {
  815. sourceList.value.pagination.keyword = route.query.keyword;
  816. }
  817. const table = ref(null);
  818. const searchItemSelct = () => {
  819. // 默认选中的方法
  820. table.value.searchItemSelct(
  821. selectConfig.value[0].data[0],
  822. selectConfig.value[0]
  823. );
  824. };
  825. getLogisticsData();
  826. onMounted(() => {
  827. formConfig[0].data = businessType.value.map((x) => ({
  828. label: x.label,
  829. value: x.value,
  830. }));
  831. searchItemSelct();
  832. });
  833. </script>
  834. <style lang="scss" scoped>
  835. .tenant {
  836. padding: 20px;
  837. }
  838. </style>