index.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774
  1. <template>
  2. <div class="mainContentBox">
  3. <avue-crud
  4. ref="crudRef"
  5. v-model:search="search"
  6. v-loading="loading"
  7. v-model="form"
  8. :data="data"
  9. :option="option"
  10. v-model:page="page"
  11. :permission="permission"
  12. @row-save="createRow"
  13. @row-update="updateRow"
  14. @row-del="deleteRow"
  15. @search-change="searchChange"
  16. @search-reset="resetChange"
  17. @size-change="dataList"
  18. @current-change="dataList"
  19. @selection-change="selectionChange"
  20. >
  21. <template #menu-left="{ size }">
  22. <el-button
  23. :disabled="toDeleteIds.length < 1"
  24. type="danger"
  25. icon="el-icon-delete"
  26. :size="size"
  27. @click="multipleDelete"
  28. >删除</el-button
  29. >
  30. <el-button
  31. :disabled="toDeleteIds.length < 1"
  32. type="primary"
  33. :size="size"
  34. @click="aps1"
  35. >批量排程
  36. <template #icon>
  37. <svg-icon icon-class="paicheng"></svg-icon>
  38. </template>
  39. </el-button>
  40. </template>
  41. <template #menu="{ size, row, index }">
  42. <el-button
  43. v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_edit]"
  44. v-if="
  45. row.workOrderState === '0' ||
  46. row.workOrderState === '1' ||
  47. row.workOrderState === '2'
  48. "
  49. type="primary"
  50. link
  51. size="small"
  52. @click="handleEdit(row, 0)"
  53. ><i-ep-edit />编辑
  54. </el-button>
  55. <el-button
  56. @click="aps(row.id)"
  57. text
  58. v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_aps]"
  59. v-if="
  60. row.workOrderState === '0' ||
  61. row.workOrderState === '1' ||
  62. row.workOrderState === '2'
  63. "
  64. type="primary"
  65. :size="size"
  66. >排程
  67. <template #icon>
  68. <svg-icon icon-class="paicheng"></svg-icon>
  69. </template>
  70. </el-button>
  71. <el-button
  72. text
  73. v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_lock]"
  74. v-if="row.workOrderState === '4'"
  75. @click="lockOrUnLockWorkOrder(row.id, 5)"
  76. type="primary"
  77. :size="size"
  78. >冻结
  79. <template #icon>
  80. <svg-icon icon-class="dongjie"></svg-icon>
  81. </template>
  82. </el-button>
  83. <el-button
  84. text
  85. v-if="row.workOrderState === '5'"
  86. v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_lock]"
  87. @click="lockOrUnLockWorkOrder(row.id, 4)"
  88. type="primary"
  89. :size="size"
  90. >解冻
  91. <template #icon>
  92. <svg-icon icon-class="jiedong"></svg-icon>
  93. </template>
  94. </el-button>
  95. <el-button
  96. icon="el-icon-setting"
  97. text
  98. v-if="row.workOrderState === '2'"
  99. @click="distribute(row.id)"
  100. type="primary"
  101. v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_aps]"
  102. :size="size"
  103. >下发</el-button
  104. >
  105. <el-button text @click="showSeqPage(row)" type="primary" :size="size"
  106. >流转卡号
  107. <template #icon>
  108. <svg-icon icon-class="luozhuankahao"></svg-icon>
  109. </template>
  110. </el-button>
  111. <el-button
  112. icon="el-icon-delete"
  113. text
  114. v-if="row.workOrderState === '3'"
  115. @click="revoke(row.id)"
  116. type="primary"
  117. :size="size"
  118. >撤销</el-button
  119. >
  120. <el-button
  121. text
  122. @click="jumpPage(row.workOrderCode, 1)"
  123. type="primary"
  124. :size="size"
  125. >领用申请
  126. <template #icon>
  127. <svg-icon icon-class="lingyongshenqing"></svg-icon>
  128. </template>
  129. </el-button>
  130. <el-button
  131. text
  132. @click="jumpPage(row.workOrderCode, 2)"
  133. type="primary"
  134. :size="size"
  135. >生产准备
  136. <template #icon>
  137. <svg-icon icon-class="shengchanzhunbei"></svg-icon>
  138. </template>
  139. </el-button>
  140. <el-button
  141. icon="el-icon-notebook"
  142. text
  143. v-if="row.workOrderState === '6' && row.packageUrl === '0'"
  144. @click="zipData(row.workOrderCode)"
  145. type="primary"
  146. v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_data]"
  147. :size="size"
  148. >生成数据包</el-button
  149. >
  150. <el-button
  151. icon="el-icon-download"
  152. text
  153. v-if="row.workOrderState === '6' && row.packageUrl !== '0'"
  154. @click="downloadTemplate('/api/v1/plan/workOrder/zip/' + row.id)"
  155. type="primary"
  156. v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_downLoad]"
  157. :size="size"
  158. >下载数据包</el-button
  159. >
  160. </template>
  161. </avue-crud>
  162. <el-dialog
  163. v-model="dialog.visible"
  164. :title="dialog.title"
  165. width="80%"
  166. @close="dialog.visible = false"
  167. >
  168. <order-page queryType="1" @orderInfo="orderInfo" />
  169. </el-dialog>
  170. <el-dialog
  171. v-model="dialog1.visible"
  172. :title="dialog1.title"
  173. width="80%"
  174. @close="dialog1.visible = false"
  175. >
  176. <choice-route-page
  177. :processRouteType="processRouteType"
  178. :material-code="form.materialCode"
  179. @routeInfo="routeInfo"
  180. />
  181. </el-dialog>
  182. <el-dialog
  183. v-model="dialog2.visible"
  184. :title="dialog2.title"
  185. width="80%"
  186. @close="dialog2.visible = false"
  187. >
  188. <choice-workshop-page @workShopInfo="workShopInfo" />
  189. </el-dialog>
  190. <el-dialog
  191. v-model="dialog3.visible"
  192. :title="dialog3.title"
  193. width="80%"
  194. @close="dialog3.visible = false"
  195. >
  196. <choice-line-page
  197. :parentCode="form.workshopCode"
  198. :materialCode="form.materialCode"
  199. @lineInfo="lineInfo"
  200. />
  201. </el-dialog>
  202. <el-dialog
  203. v-model="dialog4.visible"
  204. :title="dialog4.title"
  205. width="950px"
  206. @close="dialog4.visible = false"
  207. >
  208. <work-order-seq :workOrderInfo="form" />
  209. </el-dialog>
  210. <el-dialog
  211. v-model="dialog5.visible"
  212. :title="dialog5.title"
  213. width="450px"
  214. @close="dialog5.visible = false"
  215. >
  216. <el-form
  217. ref="dataFormRef"
  218. :model="formData"
  219. :rules="rules"
  220. label-width="150px"
  221. >
  222. <el-form-item label="排程时间" prop="apsTime">
  223. <el-date-picker
  224. v-model="formData.apsTime"
  225. type="date"
  226. style="width: 200px"
  227. :disabled-date="disabledDate"
  228. placeholder="请选择时间"
  229. format="YYYY/MM/DD"
  230. value-format="YYYY-MM-DD"
  231. />
  232. <!-- <el-input width="250px" v-model="formData.apsTime" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>-->
  233. </el-form-item>
  234. <el-form-item label="优先级" prop="priority" v-if="apsType === 1">
  235. <el-select
  236. v-model="formData.priority"
  237. placeholder="排程类型"
  238. style="width: 200px"
  239. >
  240. <el-option
  241. v-for="item in apsPriority"
  242. :label="item.dictLabel"
  243. :value="item.dictValue"
  244. :key="item.dictValue"
  245. ></el-option>
  246. </el-select>
  247. </el-form-item>
  248. <el-form-item label="排程类型" prop="apsModel">
  249. <el-select
  250. v-model="formData.apsModel"
  251. placeholder="排程类型"
  252. style="width: 200px"
  253. >
  254. <el-option
  255. v-for="item in schedulingTypes"
  256. :label="item.dictLabel"
  257. :value="item.dictValue"
  258. :key="item.dictValue"
  259. ></el-option>
  260. </el-select>
  261. </el-form-item>
  262. </el-form>
  263. <template #footer>
  264. <div class="dialog-footer">
  265. <el-button type="primary" @click="handleSubmit">确 定</el-button>
  266. <el-button @click="dialog5.visible = false">取 消</el-button>
  267. </div>
  268. </template>
  269. </el-dialog>
  270. </div>
  271. </template>
  272. <script setup>
  273. import { ref, getCurrentInstance } from "vue";
  274. import { useCrud } from "@/hooks/userCrud";
  275. import buttonPermission from "@/common/configs/buttonPermission";
  276. import {
  277. apsWorkOrder,
  278. distributeWorkOrder,
  279. revokeWorkOrder,
  280. lockWorkOrder,
  281. zipWorkOrder,
  282. } from "@/api/order";
  283. import { useCommonStoreHook } from "@/store";
  284. import dictDataUtil from "@/common/configs/dictDataUtil";
  285. import ChoiceRoutePage from "./components/choice-route-page.vue";
  286. import ChoiceWorkshopPage from "./components/choice-workshop-page.vue";
  287. import WorkOrderSeq from "./components/work-order-seq.vue";
  288. import { checkPerm } from "@/directive/permission";
  289. import { queryDictDataByType } from "@/api/system/dict";
  290. const { isShowTable, tableType } = toRefs(useCommonStoreHook());
  291. const router = useRouter();
  292. const test = () => {
  293. isShowTable.value = true;
  294. tableType.value = tableType.value == 1 ? 2 : 1;
  295. };
  296. const processRouteType = ref("");
  297. const permission = reactive({
  298. delBtn: checkPerm(buttonPermission.PLAN.BTNS.work_order_del),
  299. addBtn: checkPerm(buttonPermission.PLAN.BTNS.work_order_add),
  300. editBtn: checkPerm(buttonPermission.PLAN.BTNS.work_order_edit),
  301. menu: true,
  302. });
  303. const disabledDate = (time) => {
  304. return time.getTime() < Date.now(); // 8.64e7 毫秒数代表一天
  305. };
  306. const jumpPage = (workOrderCode, type) => {
  307. if (type === 1) {
  308. router.push("/requisition?workOrderCode=" + workOrderCode);
  309. } else {
  310. router.push("/plan/prepare?workOrderCode=" + workOrderCode);
  311. }
  312. };
  313. const dialog = reactive({
  314. title: "订单选择",
  315. visible: false,
  316. });
  317. const dialog1 = reactive({
  318. title: "工艺选择",
  319. visible: false,
  320. });
  321. const dialog2 = reactive({
  322. title: "车间选择",
  323. visible: false,
  324. });
  325. const dialog3 = reactive({
  326. title: "产线选择",
  327. visible: false,
  328. });
  329. const dialog4 = reactive({
  330. title: "流转卡号",
  331. visible: false,
  332. });
  333. const dialog5 = reactive({
  334. title: "排程确认",
  335. visible: false,
  336. });
  337. const apsType = ref(0);
  338. const aps = (id) => {
  339. apsType.value = 0;
  340. formData.workOrderIds = [id];
  341. dialog5.visible = true;
  342. };
  343. const showSeqPage = (workOrderCode) => {
  344. form.value = workOrderCode;
  345. dialog4.visible = true;
  346. };
  347. const distribute = (id) => {
  348. ElMessageBox.confirm("当前操作不可逆,确定下发工单吗?")
  349. .then(() => {
  350. loading.value = true;
  351. distributeWorkOrder(id).then((data) => {
  352. loading.value = false;
  353. ElMessage.success(data.msg);
  354. dataList();
  355. });
  356. })
  357. .catch(() => {
  358. // catch error
  359. });
  360. };
  361. const lockOrUnLockWorkOrder = (id, status) => {
  362. let message = status === "4" ? "解冻" : "冻结";
  363. ElMessageBox.confirm("当前操作不可逆,确定" + message + "工单吗?")
  364. .then(() => {
  365. loading.value = true;
  366. lockWorkOrder({ id: id, workOrderState: status }).then((data) => {
  367. loading.value = false;
  368. ElMessage.success(data.msg);
  369. dataList();
  370. });
  371. })
  372. .catch(() => {
  373. // catch error
  374. });
  375. };
  376. const loading = ref(false);
  377. const zipWork = ref({});
  378. const zipData = (workOrderCode) => {
  379. loading.value = true;
  380. zipWork.value.workOrderCode = workOrderCode;
  381. zipWorkOrder(zipWork.value).then((data) => {
  382. if (data.code === "200") {
  383. loading.value = false;
  384. ElMessage.success(data.msg);
  385. dataList();
  386. } else {
  387. loading.value = false;
  388. ElMessage.error(data.msg);
  389. }
  390. });
  391. };
  392. const revoke = (id) => {
  393. ElMessageBox.confirm("当前操作不可逆,确定撤销工单吗?")
  394. .then(() => {
  395. loading.value = true;
  396. revokeWorkOrder(id).then((data) => {
  397. if (data.code === "200") {
  398. loading.value = false;
  399. ElMessage.success(data.msg);
  400. dataList();
  401. } else {
  402. loading.value = false;
  403. ElMessage.error(data.msg);
  404. }
  405. });
  406. })
  407. .catch(() => {
  408. // catch error
  409. });
  410. };
  411. const handleEdit = (row, index) => {
  412. crudRef.value && crudRef.value.rowEdit(row, index);
  413. };
  414. const aps1 = () => {
  415. apsType.value = 1;
  416. formData.workOrderIds = toDeleteIds;
  417. dialog5.visible = true;
  418. };
  419. const dataFormRef = ref(ElForm);
  420. const schedulingTypes = ref([]);
  421. const apsPriority = ref([]);
  422. const formData = reactive({
  423. apsTime: null,
  424. priority: "1",
  425. apsModel: "0",
  426. workOrderId: 0,
  427. });
  428. const rules = reactive({
  429. priority: [{ required: true, message: "请选择优先级", trigger: "blur" }],
  430. apsTime: [{ required: true, message: "排程时间不能为空", trigger: "blur" }],
  431. apsModel: [{ required: true, message: "排程类型不能为空", trigger: "blur" }],
  432. });
  433. const handleSubmit = () => {
  434. dataFormRef.value.validate((isValid) => {
  435. if (isValid) {
  436. apsWorkOrder(formData).then((data) => {
  437. if (data.code === "200") {
  438. ElMessage.success(data.msg);
  439. dialog5.visible = false;
  440. dataList();
  441. } else {
  442. ElMessage.error(data.msg);
  443. }
  444. });
  445. }
  446. });
  447. };
  448. const orderInfo = (value) => {
  449. form.value.orderCode = value.orderCode;
  450. form.value.orderName = value.orderName;
  451. form.value.materialCode = value.materialCode;
  452. form.value.materialName = value.materialName;
  453. form.value.materialModel = value.materialModel;
  454. form.value.priority = value.priority;
  455. form.value.orderType = value.orderType;
  456. form.value.processRouteId = "";
  457. form.value.processRouteCode = "";
  458. form.value.processRouteName = "";
  459. form.value.processRouteVersion = "";
  460. form.value.productLineId = "";
  461. form.value.productLineName = "";
  462. form.value.workshopName = "";
  463. form.value.workshopCode = "";
  464. form.value.workshopName = "";
  465. dialog.visible = false;
  466. };
  467. const lineInfo = (value) => {
  468. form.value.productLineId = value.id;
  469. form.value.productLineName = value.name;
  470. dialog3.visible = false;
  471. };
  472. const workShopInfo = (value) => {
  473. form.value.workshopName = value.id;
  474. form.value.workshopCode = value.code;
  475. form.value.workshopName = value.name;
  476. dialog2.visible = false;
  477. };
  478. const routeInfo = (value) => {
  479. form.value.processRouteId = value.id;
  480. form.value.processRouteCode = value.processRouteCode;
  481. form.value.processRouteName = value.processRouteName;
  482. form.value.processRouteVersion = value.processRouteVersion;
  483. dialog1.visible = false;
  484. };
  485. // 传入一个url,后面不带/
  486. const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
  487. useCrud({
  488. src: "/api/v1/plan/workOrder",
  489. });
  490. const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
  491. Methords; //增删改查
  492. const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
  493. const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
  494. const crudRef = ref(null); //crudRef.value 获取avue-crud对象
  495. // 设置表格列或者其他自定义的option
  496. option.value = Object.assign(option.value, {
  497. delBtn: false,
  498. selection: true,
  499. viewBtn: false,
  500. editBtn: false,
  501. column: [
  502. {
  503. label: "工单编号",
  504. prop: "workOrderCode",
  505. search: true,
  506. display: false,
  507. width: 125,
  508. overHidden: true,
  509. },
  510. {
  511. label: "订单编号",
  512. prop: "orderCode",
  513. search: true,
  514. width: 125,
  515. overHidden: true,
  516. rules: [
  517. {
  518. required: true,
  519. message: "订单编号不能为空",
  520. trigger: "trigger",
  521. },
  522. ],
  523. click: ({ value, column }) => {
  524. if (column.boxType) {
  525. dialog.visible = true;
  526. }
  527. },
  528. },
  529. {
  530. label: "订单名称",
  531. prop: "orderName",
  532. search: true,
  533. disabled: true,
  534. width: 125,
  535. overHidden: true,
  536. },
  537. {
  538. label: "订单类型",
  539. prop: "orderType",
  540. type: "select", //类型为下拉选择框
  541. width: 100,
  542. disabled: true,
  543. overHidden: true,
  544. dicUrl: dictDataUtil.request_url + dictDataUtil.TYPE_CODE.plan_order_type,
  545. props: {
  546. label: "dictLabel",
  547. value: "dictValue",
  548. },
  549. },
  550. {
  551. label: "产品编号",
  552. width: 125,
  553. overHidden: true,
  554. search: true,
  555. disabled: true,
  556. prop: "materialCode",
  557. },
  558. {
  559. label: "产品名称",
  560. width: 125,
  561. overHidden: true,
  562. search: true,
  563. disabled: true,
  564. prop: "materialName",
  565. },
  566. {
  567. label: "产品规格",
  568. width: 125,
  569. search: true,
  570. overHidden: true,
  571. disabled: true,
  572. prop: "materialModel",
  573. },
  574. {
  575. label: "优先级",
  576. prop: "priority",
  577. display: false,
  578. width: "80",
  579. type: "select", //类型为下拉选择框
  580. dicUrl:
  581. dictDataUtil.request_url + dictDataUtil.TYPE_CODE.plan_order_priority,
  582. props: {
  583. label: "dictLabel",
  584. value: "dictValue",
  585. },
  586. },
  587. {
  588. label: "状态",
  589. prop: "workOrderState",
  590. width: "80",
  591. display: false,
  592. type: "select", //类型为下拉选择框
  593. dicUrl:
  594. dictDataUtil.request_url + dictDataUtil.TYPE_CODE.plan_work_order_state,
  595. props: {
  596. label: "dictLabel",
  597. value: "dictValue",
  598. },
  599. },
  600. {
  601. label: "工艺路线",
  602. prop: "processRouteName",
  603. width: 125,
  604. overHidden: true,
  605. rules: [
  606. {
  607. required: true,
  608. message: "工艺路线不能为空",
  609. trigger: "trigger",
  610. },
  611. ],
  612. click: ({ value, column }) => {
  613. if (column.boxType) {
  614. if (!form.value.materialCode) {
  615. ElMessage({
  616. message: "请先选择订单",
  617. type: "warning",
  618. });
  619. return;
  620. }
  621. processRouteType.value = form.value.orderType === "1" ? "ZC" : "FG";
  622. dialog1.visible = true;
  623. }
  624. },
  625. },
  626. {
  627. label: "工艺版本",
  628. width: 100,
  629. overHidden: true,
  630. prop: "processRouteVersion",
  631. display: false,
  632. html: true,
  633. formatter: (val) => {
  634. return (
  635. '<b class="el-tag el-tag--success el-tag--light">' +
  636. val.processRouteVersion +
  637. "</b>"
  638. );
  639. },
  640. },
  641. {
  642. label: "生产车间",
  643. prop: "workshopName",
  644. width: 120,
  645. overHidden: true,
  646. rules: [
  647. {
  648. required: true,
  649. message: "生产车间不能为空",
  650. trigger: "trigger",
  651. },
  652. ],
  653. click: ({ value, column }) => {
  654. if (column.boxType) {
  655. dialog2.visible = true;
  656. }
  657. },
  658. },
  659. {
  660. label: "产线名称",
  661. prop: "productLineName",
  662. width: 120,
  663. overHidden: true,
  664. rules: [
  665. {
  666. required: true,
  667. message: "产线名称不能为空",
  668. trigger: "trigger",
  669. },
  670. ],
  671. click: ({ value, column }) => {
  672. if (column.boxType) {
  673. if (!form.value.workshopCode) {
  674. ElMessage({
  675. message: "请先选择生产车间",
  676. type: "warning",
  677. });
  678. return;
  679. }
  680. dialog3.visible = true;
  681. }
  682. },
  683. },
  684. {
  685. label: "开始时间",
  686. prop: "planStartWhen",
  687. width: 180,
  688. overHidden: true,
  689. display: false,
  690. },
  691. {
  692. label: "结束时间",
  693. prop: "planStartEnd",
  694. width: 180,
  695. display: false,
  696. overHidden: true,
  697. },
  698. {
  699. label: "工单数量",
  700. prop: "planNum",
  701. width: 85,
  702. type: "number",
  703. min: 1,
  704. max: 99999,
  705. rules: [
  706. {
  707. required: true,
  708. message: "工单数量不能为空",
  709. trigger: "trigger",
  710. },
  711. ],
  712. },
  713. {
  714. label: "完成数量",
  715. width: 85,
  716. display: false,
  717. prop: "completeNum",
  718. },
  719. {
  720. label: "下线数量",
  721. width: 85,
  722. display: false,
  723. prop: "beforeNum",
  724. },
  725. {
  726. label: "报废数量",
  727. width: 85,
  728. display: false,
  729. prop: "scrapNum",
  730. },
  731. {
  732. label: "创建时间",
  733. width: 180,
  734. display: false,
  735. prop: "created",
  736. },
  737. {
  738. label: "创建人",
  739. width: 90,
  740. display: false,
  741. prop: "creator",
  742. },
  743. {
  744. label: "数据包地址",
  745. width: 90,
  746. display: false,
  747. prop: "packageUrl",
  748. hide: true,
  749. },
  750. ],
  751. });
  752. onMounted(() => {
  753. // console.log("crudRef", crudRef)
  754. dataList();
  755. queryDictDataByType("order_scheduling_type").then((data) => {
  756. schedulingTypes.value = data.data;
  757. });
  758. queryDictDataByType("aps_priority").then((data) => {
  759. apsPriority.value = data.data;
  760. });
  761. });
  762. </script>