From 1b970c588245935181610e93e84a9a3a10d80ecd Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期四, 13 六月 2024 08:57:36 +0800
Subject: [PATCH] 工艺路线绑定岗位资源更新

---
 src/views/tigerprojects/mes/eng/route/components/PostProps.vue |  172 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 138 insertions(+), 34 deletions(-)

diff --git a/src/views/tigerprojects/mes/eng/route/components/PostProps.vue b/src/views/tigerprojects/mes/eng/route/components/PostProps.vue
index 8eeaafc..ace0ddc 100644
--- a/src/views/tigerprojects/mes/eng/route/components/PostProps.vue
+++ b/src/views/tigerprojects/mes/eng/route/components/PostProps.vue
@@ -1,63 +1,167 @@
 <!--
  * @Description: file content
- * @Author: your name
+ * @Author: Ben Lin
  * @version: 
  * @Date: 2024-06-11 21:07:04
  * @LastEditors: your name
- * @LastEditTime: 2024-06-12 10:11:05
+ * @LastEditTime: 2024-06-13 08:55:09
 -->
 <!--
  * @Description: 鍙充晶灞炴�ч潰鏉挎帶浠� 琛ㄥ崟灞炴�ч潰鏉�
 -->
 <template>
-  <div class="mt-3">
-    <Button type="primary" @click="handleCreate" preIcon="add_02|svg" :size="size"> 鏂板 </Button>
-    <a-table :columns="columns" :data-source="data" bordered>
-      <template #name="{ text }">
-      <a>{{ text }}</a>
-    </template>
-    </a-table>
+  <div class="m-1">
+    <BasicTable @register="registerTable">
+      <template #toolbar>
+        <a-button type="primary" @click="handleCreate" preIcon="add_02|svg" :size="size"> 鏂板 </a-button>
+      </template>
+      <template #action="{ record }">
+        <TableAction :actions="[
+          {
+            icon: 'ant-design:delete-outlined',
+            color: 'error',
+            popConfirm: {
+              title: '鏄惁纭鍒犻櫎?',
+              placement: 'left',
+              confirm: handleDelete.bind(null, record),
+            },
+          },
+        ]" />
+      </template>
+    </BasicTable>
   </div>
+
+  <NormalModal @register="register" @success="handleSuccess"></NormalModal>
 </template>
 <script lang="ts" setup>
-import { Table, notification } from 'ant-design-vue';
-import { Button } from '/@/components/Button';
+import { notification } from 'ant-design-vue';
+import { BasicTable, TableAction, useTable } from '/@/components/Table';
 import { SizeType } from 'ant-design-vue/es/config-provider';
-import { ref } from 'vue';
+import { nextTick, onMounted, ref, unref, watch } from 'vue';
+import { useModal } from '/@/components/Modal';
+import NormalModal from '/@/views/components/NormalModal.vue';
+import { useI18n } from '/@/hooks/web/useI18n';
+import { DeleteEntity, DeleteWhere, SaveEntity, getEntity, getListByPage } from '/@/api/tigerapi/system';
+import { useRouteDesignState } from '../hooks/useRouteDesignState';
+import { SaveRouteNodePost } from '/@/api/tigerapi/mes/router';
 
-const ATable = Table;  
+const { t } = useI18n();
+const { routeConfig, mesRoute } = useRouteDesignState();
 const size = ref<SizeType>('small');
 const columns = [
   {
-    title: 'Name',
-    dataIndex: 'name',
-    key: 'name',
-    slots: { customRender: 'name' },
+    title: '宀椾綅鍚嶇О',
+    dataIndex: 'POST_NAME',
+    key: 'POST_NAME',
+    slots: { customRender: 'POST_NAME' },
   },
   {
-    title: 'Age',
-    dataIndex: 'age',
-    key: 'age',
+    title: '宀椾綅缂栫爜',
+    dataIndex: 'POST_CODE',
+    key: 'POST_CODE',
   },
 ];
 
-const data: DataItem[] = [];
-for (let i = 0; i < 100; i++) {
-  data.push({
-    key: i,
-    name: `Edrward ${i}`,
-    age: 32,
-    address: `London Park no. ${i}`,
+const [register, { openModal }] = useModal();
+const [registerTable, { reload }] = useTable({
+  title: '鍒楄〃',
+  api: getListByPage,
+  searchInfo: { TABLE_NAME: 'V_MES_ROUTE_NODE_POST', NODE_ID: routeConfig.currentItem.ID },
+  columns,
+  useSearchForm: false,
+  showTableSetting: false,
+  bordered: true,
+  showIndexColumn: false,
+  pagination: { pageSize: 10 },
+  actionColumn: {
+    width: 80,
+    title: '鎿嶄綔',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+  },
+});
+defineExpose({
+  reload
+});
+// watch(
+//   () => routeConfig.currentItem.ID,
+//   (newVal, oldVal) => {
+//     if (newVal != oldVal) {
+//       nextTick(() => {
+//         reload();
+//       });
+//     }
+//   },
+//   { deep: true, immediate: true },
+// );
+
+onMounted(() => {
+});
+
+/**
+ * @description: 鏂板鏂规硶
+ * @return {*}
+ */
+function handleCreate() {
+  openModal(true, {
+    title: '宀椾綅璧勬簮鍒楄〃',
+    schemas: [
+      {
+        field: 'POST_CODE',
+        component: 'Input',
+        label: '宀椾綅璧勬簮缂栫爜',
+        colProps: {
+          span: 12,
+        },
+      },
+    ],
+    ItemColumns: [
+      {
+        title: t('宀椾綅璧勬簮缂栫爜'),
+        dataIndex: 'POST_CODE',
+        resizable: true,
+        sorter: true,
+        width: 200,
+      },
+      {
+        title: t('宀椾綅璧勬簮鍚嶇О'),
+        dataIndex: 'POST_NAME',
+        resizable: true,
+        sorter: true,
+        width: 180,
+      },
+    ],
+    tableName: 'MES_POSITION',
+    rowKey: 'POST_CODE',
   });
 }
 
-interface DataItem {
-  key: number;
-  name: string;
-  age: number;
-  address: string;
+/**
+* @description: 鍒犻櫎
+   * @param {*} record
+   * @return {*}
+   */
+function handleDelete(record: Recordable) {
+  DeleteWhere(`POST_CODE = '${record.POST_CODE}' And NODE_ID = '${record.NODE_ID}'`, 'MES_ROUTE_NODE_POST').then((res) => {
+    reload();
+  });
 }
 
-function handleCreate() {}
-
+/**
+ * @description: 閫夋嫨宀椾綅璧勬簮鎴愬姛杩斿洖鏂规硶
+ * @param {*} d
+ * @param {*} u
+ * @return {*}
+ */
+function handleSuccess(d, u) {
+  let codes = d.values.val.split(',');
+  let eintity: any[] = [];
+  var i;
+  for (i = 0; i < codes.length; i++) {
+    eintity.push({ NODE_ID: routeConfig.currentItem.ID, POST_CODE: codes[i], REMARK: '' });
+  }
+  SaveRouteNodePost(eintity).then((res) => {
+    reload();
+  });
+}
 </script>

--
Gitblit v1.9.3