From a9de40c46815f5ebe1750a4dd00e246758dc314e Mon Sep 17 00:00:00 2001
From: zhuguifei <312353457@qq.com>
Date: 星期四, 09 四月 2026 13:32:32 +0800
Subject: [PATCH] style: 删除mac下 .DS_Store隐藏文件

---
 ruoyi-plus-soybean/src/views/qm/std/index.vue |  111 +++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 74 insertions(+), 37 deletions(-)

diff --git a/ruoyi-plus-soybean/src/views/qm/std/index.vue b/ruoyi-plus-soybean/src/views/qm/std/index.vue
old mode 100644
new mode 100755
index f4f6b03..f8b24d5
--- a/ruoyi-plus-soybean/src/views/qm/std/index.vue
+++ b/ruoyi-plus-soybean/src/views/qm/std/index.vue
@@ -11,6 +11,7 @@
 import ButtonIcon from '@/components/custom/button-icon.vue';
 import StdOperateDrawer from './modules/std-operate-drawer.vue';
 import StdSearch from './modules/std-search.vue';
+import StdSubTable from './modules/std-sub-table.vue';
 
 defineOptions({
   name: 'StdList'
@@ -20,6 +21,9 @@
 const appStore = useAppStore();
 const { download } = useDownload();
 const { hasAuth } = useAuth();
+
+const selectedStdId = ref<CommonType.IdType | null>(null);
+const selectedStdCode = ref<string>('');
 
 const searchParams = ref<Api.Qm.StdSearchParams>({
   pageNum: 1,
@@ -76,7 +80,9 @@
       minWidth: 120,
       render: row => {
         const v = String(row?.category ?? '');
-        return v === '0' ? '鎴愬搧' : v === '1' ? '杈呮枡' : v;
+        if (v === '0') return '鎴愬搧';
+        if (v === '1') return '杈呮枡';
+        return v;
       }
     },
     {
@@ -99,7 +105,9 @@
       minWidth: 120,
       render: row => {
         const v = String(row?.enable ?? '');
-        return v === '0' ? '鍋滅敤' : v === '1' ? '鍚敤' : v;
+        if (v === '0') return '鍋滅敤';
+        if (v === '1') return '鍚敤';
+        return v;
       }
     },
     {
@@ -183,47 +191,76 @@
 function handleExport() {
   download('/qm/std/export', searchParams.value, `鍒ゅ畾瑙勭▼_${new Date().getTime()}.xlsx`);
 }
+
+function handleRowClick(row: any) {
+  return {
+    onClick: (e: MouseEvent) => {
+      const target = e.target as HTMLElement | null;
+      if (target?.closest('.n-checkbox') || target?.closest('.n-button') || target?.closest('a')) return;
+      selectedStdId.value = row.id;
+      selectedStdCode.value = row.stdCode;
+    },
+    style: 'cursor: pointer;'
+  };
+}
 </script>
 
 <template>
   <div class="min-h-500px flex-col-stretch gap-16px overflow-hidden lt-sm:overflow-auto">
     <StdSearch v-model:model="searchParams" @search="getDataByPage" />
-    <NCard title="鍒ゅ畾瑙勭▼鍒楄〃" :bordered="false" size="small" class="card-wrapper sm:flex-1-hidden">
-      <template #header-extra>
-        <TableHeaderOperation
-          v-model:columns="columnChecks"
-          :disabled-delete="checkedRowKeys.length === 0"
-          :loading="loading"
-          :show-add="hasAuth('qm:std:add')"
-          :show-delete="hasAuth('qm:std:remove')"
-          :show-export="hasAuth('qm:std:export')"
-          @add="handleAdd"
-          @delete="handleBatchDelete"
-          @export="handleExport"
-          @refresh="getData"
-        />
-      </template>
-      <NDataTable
-        v-model:checked-row-keys="checkedRowKeys"
-        :columns="columns"
-        :data="data"
+    <div class="std-content-area relative flex-col-stretch gap-16px sm:flex-1-hidden">
+      <NCard
+        title="鍒ゅ畾瑙勭▼鍒楄〃"
+        :bordered="false"
         size="small"
-        :flex-height="!appStore.isMobile"
-        :scroll-x="scrollX"
-        :loading="loading"
-        remote
-        :row-key="row => row.id"
-        :pagination="mobilePagination"
-        class="sm:h-full"
-      />
-      <StdOperateDrawer
-        v-model:visible="drawerVisible"
-        :operate-type="operateType"
-        :row-data="editingData"
-        @submitted="getDataByPage"
-      />
-    </NCard>
+        class="card-wrapper flex-col-stretch sm:flex-1-hidden"
+        :content-style="{ flex: 1, overflow: 'hidden', display: 'flex', flexDirection: 'column' }"
+      >
+        <template #header-extra>
+          <TableHeaderOperation
+            v-model:columns="columnChecks"
+            :disabled-delete="checkedRowKeys.length === 0"
+            :loading="loading"
+            :show-add="hasAuth('qm:std:add')"
+            :show-delete="hasAuth('qm:std:remove')"
+            :show-export="hasAuth('qm:std:export')"
+            @add="handleAdd"
+            @delete="handleBatchDelete"
+            @export="handleExport"
+            @refresh="getData"
+          />
+        </template>
+        <NDataTable
+          v-model:checked-row-keys="checkedRowKeys"
+          :columns="columns"
+          :data="data"
+          size="small"
+          :flex-height="!appStore.isMobile"
+          :scroll-x="scrollX"
+          :loading="loading"
+          remote
+          :row-key="row => row.id"
+          :pagination="mobilePagination"
+          :row-props="handleRowClick"
+          class="flex-1-hidden"
+        />
+        <StdOperateDrawer
+          v-model:visible="drawerVisible"
+          :operate-type="operateType"
+          :row-data="editingData"
+          @submitted="getDataByPage"
+        />
+      </NCard>
+      <StdSubTable :std-id="selectedStdId" :std-code="selectedStdCode" class="sm:flex-1-hidden" />
+    </div>
   </div>
 </template>
 
-<style scoped></style>
+<style scoped>
+:deep(.n-data-table-th),
+:deep(.n-data-table-td) {
+  padding: 4px 6px;
+  overflow: hidden;
+}
+
+</style>

--
Gitblit v1.9.3