浏览代码

feat:imes_cloud页面优化,添加模块

huang, kai (Contractor) 1 月之前
父节点
当前提交
0279450937
共有 25 个文件被更改,包括 853 次插入933 次删除
  1. 1 4
      admin.ui.plus-master/src/main.ts
  2. 217 222
      admin.ui.plus-master/src/views/admin/PCBA/boardFunctionResult/index.vue
  3. 29 33
      admin.ui.plus-master/src/views/admin/PCBA/boardFunctionSummary/index.vue
  4. 156 172
      admin.ui.plus-master/src/views/admin/PCBA/boardList/index.vue
  5. 159 240
      admin.ui.plus-master/src/views/admin/PCBA/boardSummary/index.vue
  6. 183 200
      admin.ui.plus-master/src/views/admin/PCBA/boardTestRecord/index.vue
  7. 5 6
      admin.ui.plus-master/src/views/admin/authorize/dispenserAuthCode/index.vue
  8. 2 2
      admin.ui.plus-master/src/views/admin/authorize/fuelingFTP/index.vue
  9. 5 9
      admin.ui.plus-master/src/views/admin/authorize/fuelingFTPofDate/index.vue
  10. 11 2
      admin.ui.plus-master/src/views/admin/authorize/fuelingsdk/index.vue
  11. 1 1
      admin.ui.plus-master/src/views/admin/authorize/softwarePackageManagement/index.vue
  12. 4 4
      admin.ui.plus-master/src/views/admin/product/groupLogo/index.vue
  13. 3 3
      admin.ui.plus-master/src/views/admin/product/qrBook/components/qrbook-edit.vue
  14. 1 1
      admin.ui.plus-master/src/views/admin/product/qrBook/index.vue
  15. 9 6
      admin.ui.plus-master/src/views/admin/product/record/index.vue
  16. 1 1
      admin.ui.plus-master/src/views/admin/product/type/index.vue
  17. 3 3
      admin.ui.plus-master/src/views/admin/statement/alarmManagement/index.vue
  18. 21 3
      admin.ui.plus-master/src/views/admin/statement/alarmRules/index.vue
  19. 26 6
      admin.ui.plus-master/src/views/admin/statement/alarmRules/template.vue
  20. 2 2
      admin.ui.plus-master/src/views/admin/statement/associationManagement/index.vue
  21. 2 2
      admin.ui.plus-master/src/views/admin/statement/gasStationManagement/index.vue
  22. 2 2
      admin.ui.plus-master/src/views/admin/statement/listOfOilEngines/index.vue
  23. 3 3
      admin.ui.plus-master/src/views/admin/statement/partsManagement/oilGun/index.vue
  24. 5 4
      admin.ui.plus-master/src/views/admin/workbench/index.vue
  25. 2 2
      admin.ui.plus-master/src/views/example/codeGeneration/index.vue

+ 1 - 4
admin.ui.plus-master/src/main.ts

@@ -5,8 +5,6 @@ import router from '/@/router'
 import { directive } from '/@/directive/index'
 import { i18n } from '/@/i18n/index'
 import other from '/@/utils/other'
-import { usePersonalStore } from './stores/personalStore'; // 引入个人中心相关的Store
-import { UserApi } from '/@/api/admin/User'; // 引入获取个人数据的API
 
 import ElementPlus from 'element-plus'
 import '/@/theme/index.scss'
@@ -34,5 +32,4 @@ directive(app)
 other.elSvg(app)
 
 app.use(pinia).use(router).use(ElementPlus).use(i18n).use(VueGridLayout).use(DataVVue3)
-.use(globalProperties).mount('#app').use(pinia);
-
+.use(globalProperties).mount('#app')

+ 217 - 222
admin.ui.plus-master/src/views/admin/PCBA/boardFunctionResult/index.vue

@@ -1,96 +1,83 @@
-
 <template>
   <div class="layout-pd">
     <el-row>
-<!--操作-->
-      <el-col :xs="24" >
-        <el-card class="mt8"  shadow="hover" >
-<el-form :model="state.filter" :inline="true" @submit.stop.prevent>
+      <!--操作-->
+      <el-col :xs="24">
+        <el-card class="mt8" shadow="hover">
+          <el-form :model="state.filter" :inline="true" @submit.stop.prevent>
             <el-form-item prop="name" style="width: 100%">
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-                <el-form-item label="序列号">
-                  <el-input v-model="state.filter.serno" placeholder="单行输入" clearable></el-input>
-                </el-form-item>
-              </el-col>
- <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-                <el-form-item label="外部序列号">
-                  <el-input v-model="state.filter.exserno" placeholder="单行输入" clearable></el-input>
-                </el-form-item>
-              </el-col>             
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-  <el-form-item label="主板类型">
-                  <el-select v-model="state.filter.boardType" placeholder="">
-                    <el-option v-for="(value, key) in PCBABoardType" :key="key" :label="value[1].name"
-                      :value="Number(value[1].value)" />
-                  </el-select>
-                </el-form-item>
-              </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-  <el-form-item label="功能码">
-                    <el-select  v-model="state.filter.code" default-first-option="true" filterable allow-create 
-                      value-key="code"
-                      @blur="codeblur()"
-                      title='可直接输入具体功能码'
-                      ref="codeSel">
-                    <el-option v-for="item in options" :key="item.key" :label="item.name"
-                      :value="Number(item.value)" />
-                  </el-select>
-                </el-form-item>
-              </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-  <el-form-item label="测试结果">
-                  <el-select v-model="state.filter.result" placeholder="">
-                    <el-option v-for="(value, key) in PCBATestState" :key="key" :label="value[1].name"
-                      :value="Number(value[1].value)" />
-                  </el-select>
-                </el-form-item>
-              </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-            <el-form-item label="开始创建日期">
-                  <el-date-picker
-                    v-model="state.filter.beginCreateTime"
-                    type="datetime"
-                    value-format="YYYY-MM-DD HH:mm:ss"
-                    range-separator="To"
-                    start-placeholder="Start date"
-                    end-placeholder="End date"
-                  />
-                </el-form-item>
-              </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-            <el-form-item label="结束创建日期">
-                  <el-date-picker
-                    v-model="state.filter.endCreateTime"
-                    type="datetime"
-                    value-format="YYYY-MM-DD HH:mm:ss"
-                    range-separator="To"
-                    start-placeholder="Start date"
-                    end-placeholder="End date"
-                  />
-                </el-form-item>
-              </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-                <el-form-item label="最新测试员">
-                  <el-input v-model="state.filter.lastTestUser" placeholder="单行输入" clearable></el-input>
-                </el-form-item>
-              </el-col>
-</el-form-item>
+              <el-row :gutter="20">
+                <!-- 第一行 -->
+                <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+                  <el-form-item label="序列号">
+                    <el-input v-model="state.filter.serno" placeholder="单行输入" clearable></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+                  <el-form-item label="外部序列号">
+                    <el-input v-model="state.filter.exserno" placeholder="单行输入" clearable></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+                  <el-form-item label="主板类型">
+                    <el-select v-model="state.filter.boardType" placeholder="">
+                      <el-option v-for="(value, key) in PCBABoardType" :key="key" :label="value[1].name"
+                                 :value="Number(value[1].value)" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <!-- 第二行 -->
+                <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+                  <el-form-item label="功能码">
+                    <el-select v-model="state.filter.code" default-first-option="true" filterable allow-create
+                               value-key="code"
+                               @blur="codeblur()"
+                               title='可直接输入具体功能码'
+                               ref="codeSel">
+                      <el-option v-for="item in options" :key="item.key" :label="item.name"
+                                 :value="Number(item.value)" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+                  <el-form-item label="测试结果">
+                    <el-select v-model="state.filter.result" placeholder="">
+                      <el-option v-for="(value, key) in PCBATestState" :key="key" :label="value[1].name"
+                                 :value="Number(value[1].value)" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :xs="24" :sm="16" :md="12" :lg="10" :xl="8" class="mb20">
+                  <el-form-item label="创建时间范围">
+                    <el-date-picker
+                        v-model="state.filter.createTimeRange"
+                        type="daterange"
+                        value-format="YYYY-MM-DD HH:mm:ss"
+                        range-separator="To"
+                        start-placeholder="开始日期"
+                        end-placeholder="结束日期"
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+                  <el-form-item label="最新测试员">
+                    <el-input v-model="state.filter.lastTestUser" placeholder="单行输入" clearable></el-input>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form-item>
           </el-form>
-<div class="my-flex my-flex-start" >
-<el-button  type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
-</div>
-</el-card>
+          <div class="my-flex my-flex-start" style="margin-top: -35px;">
+            <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
+          </div>
+        </el-card>
       </el-col>
-<!--表格-->
-      <el-col  :xs="24" >
-        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
-<el-table v-loading="state.loading" stripe :data="state.tableModel" row-key="id" style="width: 100%">
-        <!--<el-table-column v-for="column in state.dynamicColumns" :key="column.prop" :prop="column.prop" :label="column.label"  >
-        </el-table-column>-->
-
-
-        <el-table-column prop="serno" label="序列号" />
-        <el-table-column prop="exserno" label="外部序列号" />
+      <!--表格-->
+      <el-col :xs="24">
+        <el-card style="height: 50vh" class="my-fill mt8" shadow="hover">
+          <el-table v-loading="state.loading" stripe :data="state.tableModel" row-key="id" style="width: 100%">
+            <el-table-column prop="serno" label="序列号" />
+            <el-table-column prop="exserno" label="外部序列号" />
             <el-table-column prop="boardType" label="主板类型">
               <template #default="{ row }">
                 <div :style="{ color: getPCBABoardType(row.boardType).color }" class="bold-font">
@@ -107,10 +94,10 @@
                 </div>
               </template>
             </el-table-column>
-            <el-table-column prop="onceTestPass" label="是否一次通过" >
+            <el-table-column prop="onceTestPass" label="是否一次通过">
               <template #default="{ row }">
-              <el-text  v-if="row.onceTestPass">是</el-text>
-              <el-text  v-else>否</el-text>
+                <el-text v-if="row.onceTestPass">是</el-text>
+                <el-text v-else>否</el-text>
               </template>
             </el-table-column>
             <el-table-column prop="testTimes" label="测试次数" />
@@ -119,169 +106,177 @@
             <el-table-column prop="lastTestTime" label="最近测试时间" />
             <el-table-column prop="lastTestUser" label="最新检测员" />
             <el-table-column prop="info" label="备注" />
-</el-table>
-<div class="my-flex my-flex-end" style="margin-top: 20px">
+          </el-table>
+          <div class="my-flex my-flex-end" style="margin-top: 20px">
             <el-pagination
-              v-model:currentPage="state.pageInput.CurrentPage"
-              v-model:page-size="state.pageInput.PageSize"
-              :total="state.total"
-              :page-sizes="[10, 20, 50, 100]"
-              small
-              background
-              @size-change="onSizeChange"
-              @current-change="onCurrentChange"
-              layout="total, sizes, prev, pager, next, jumper"
+                v-model:currentPage="state.pageInput.CurrentPage"
+                v-model:page-size="state.pageInput.PageSize"
+                :total="state.total"
+                :page-sizes="[10, 20, 50, 100]"
+                small
+                background
+                @size-change="onSizeChange"
+                @current-change="onCurrentChange"
+                layout="total, sizes, prev, pager, next, jumper"
             />
           </div>
-</el-card>
+        </el-card>
       </el-col>
-</el-row>
-    </div>
-  </template>
-  <script setup lang="ts">
-  import {onBeforeMount, onMounted, reactive, watch,ref} from "vue";
-  import eventBus from "/@/utils/mitt";
-import { BoardFunctionResultApi } from '/@/api/admin/PCBA/BoardFunctionResultApi'
-import { BoardFunctionResultDto } from '/@/api/admin/PCBA/BoardFunctionResultDto'
+    </el-row>
+  </div>
+</template>
+<script setup lang="ts">
+import { onBeforeMount, onMounted, reactive, watch, ref } from "vue";
+import eventBus from "/@/utils/mitt";
+import { BoardFunctionResultApi } from '/@/api/admin/PCBA/BoardFunctionResultApi';
+import { BoardFunctionResultDto } from '/@/api/admin/PCBA/BoardFunctionResultDto';
 import type { pageInput } from "/@/api/admin/shareDto/shareDto";
 import { useGlobalCacheStore } from "/@/stores/globalCacheStore";
 import { getCurrentInstance } from 'vue';
 const { proxy: ctx } = getCurrentInstance();
 
-
 /**获取全局缓存*/
-const globalCacheStore = useGlobalCacheStore()
+const globalCacheStore = useGlobalCacheStore();
 /**数据字典缓存*/
-const PCBATestState = ref(globalCacheStore.getGlobalStore().get('pcbaTestState'))
-const PCBABoardType = ref(globalCacheStore.getGlobalStore().get('pcbaBoardType'))
+const PCBATestState = ref(globalCacheStore.getGlobalStore().get('pcbaTestState'));
+const PCBABoardType = ref(globalCacheStore.getGlobalStore().get('pcbaBoardType'));
 
 const getPCBATestState = (val) => {
-  val = String(val)
-  if(PCBATestState.value?.has(val)){
-    return PCBATestState.value.get(val)
-  }else {
-    return val
+  val = String(val);
+  if (PCBATestState.value?.has(val)) {
+    const stateObj = PCBATestState.value.get(val);
+    if (stateObj.name === '未测试') {
+      return { ...stateObj, color:'royalblue' };
+    }
+    return stateObj;
+  } else {
+    return { name: val, color: 'inherit' };
   }
-}
+};
+
 
 const getPCBABoardType = (val) => {
-  val = String(val)
-  if(PCBABoardType.value?.has(val)){
-    return PCBABoardType.value.get(val)
-  }else {
-    return val
+  val = String(val);
+  if (PCBABoardType.value?.has(val)) {
+    return PCBABoardType.value.get(val);
+  } else {
+    return val;
   }
-}
-
-const  codeblur = ()=>{
+};
 
-let value = ctx.$refs.codeSel.selectedLabel
-
-if(value == '所有' || value == '')
-{
-  value = -1
-}
-state.filter.code = value
-}
-
-const options= [{
-      value: -1,
-      name: '所有',
-      key:"-1"
-    }]
+const codeblur = () => {
+  let value = ctx.$refs.codeSel.selectedLabel;
+  if (value == '所有' || value == '') {
+    value = -1;
+  }
+  state.filter.code = value;
+};
 
+const options = [{
+  value: -1,
+  name: '所有',
+  key: "-1"
+}];
 
 /**数据对象*/
-  const state = reactive({
-    /**加载显示 */
-    loading: false,
-    /**条件查询模块 */
-      filter: {
-/**序列号 */
-        serno: "",
-/**外部序列号 */
-        exserno: "",
-/**boardType */
-        boardType: -1,
-/**code */
-        code: -1,
-/**测试结果 */
-        result: -1,
-/**起始创建时间 */
-        beginCreateTime: "",
-/**结束创建时间 */
-        endCreateTime: "",
-/**最新测试员 */
-        lastTestUser: "",},
+const state = reactive({
+  /**加载显示 */
+  loading: false,
+  /**条件查询模块 */
+  filter: {
+    /**序列号 */
+    serno: "",
+    /**外部序列号 */
+    exserno: "",
+    /**boardType */
+    boardType: -1,
+    /**code */
+    code: -1,
+    /**测试结果 */
+    result: -1,
+    /**创建时间范围 */
+    createTimeRange: [],
+    /**最新测试员 */
+    lastTestUser: "",
+  },
   /**表格信息 */
-tableModel: [] as BoardFunctionResultDto,
-    /**动态表头 */
-    dynamicColumns: [
-{ prop: 'serno', label: '序列号' },
-{ prop: 'boardType', label: '主板类型' },
-{ prop: 'code', label: '功能码' },
-{ prop: 'name', label: '功能名称' },
-{ prop: 'result', label: '测试结果' },
-{ prop: 'onceTestPass', label: '是否一次通过' },
-{ prop: 'testTimes', label: '测试次数' },
-{ prop: 'successTimes', label: '成功次数' },
-{ prop: 'createTime', label: '创建时间' },
-{ prop: 'lastTestTime', label: '最新测试时间' },
-{ prop: 'lastTestUser', label: '最新测试员' },
-{ prop: 'duration', label: '测试总耗时' },
-{ prop: 'info', label: '备注' },],
-/**分页标识 */
-    pageInput:{
-      CurrentPage: 1,
-      PageSize: 10,
-    } as pageInput,
-    /**分页总数 */
-    total: 0,
-})
-  onMounted(() => {
-    init()
-    eventBus.off('refreshView')
-    eventBus.on('refreshView', async () => {
-      await init()
-    })
-  })
-  onBeforeMount(() => {
-    eventBus.off('refreshView')
-  })
+  tableModel: [] as BoardFunctionResultDto,
+  /**动态表头 */
+  dynamicColumns: [
+    { prop:'serno', label: '序列号' },
+    { prop: 'boardType', label: '主板类型' },
+    { prop: 'code', label: '功能码' },
+    { prop: 'name', label: '功能名称' },
+    { prop:'result', label: '测试结果' },
+    { prop: 'onceTestPass', label: '是否一次通过' },
+    { prop: 'testTimes', label: '测试次数' },
+    { prop:'successTimes', label: '成功次数' },
+    { prop: 'createTime', label: '创建时间' },
+    { prop: 'lastTestTime', label: '最新测试时间' },
+    { prop: 'lastTestUser', label: '最新检测员' },
+    { prop: 'duration', label: '测试总耗时' },
+    { prop: 'info', label: '备注' },
+  ],
+  /**分页标识 */
+  pageInput: {
+    CurrentPage: 1,
+    PageSize: 10,
+  } as pageInput,
+  /**分页总数 */
+  total: 0,
+});
 
+onMounted(() => {
+  init();
+  eventBus.off('refreshView');
+  eventBus.on('refreshView', async () => {
+    await init();
+  });
+});
+onBeforeMount(() => {
+  eventBus.off('refreshView');
+});
 
-    /**页条数变化*/
+/**页条数变化*/
 const onSizeChange = () => {
-  init()
-}
+  init();
+};
 
 /**页数变化*/
 const onCurrentChange = () => {
-  init()
-}
+  init();
+};
 
+/**
+ * 监听变换
+ */
+watch(() => {}, () => {});
 
-  /**
-  * 监听变换
-  */
-  watch(() => {},() => {})
 /**条件查询 */
-          const onQuery = () => {
-          init()
-        }
-        /**初始化 */
-        const init = async () => {
-          state.loading = true
-
- 
+const onQuery = () => {
+  init();
+};
 
-const res:any = await new BoardFunctionResultApi().getList({...state.pageInput, Filter:state.filter})
-            state.total = res?.data?.total ?? 0
-
-
-state.tableModel = res?.data?.list ?? []
-          state.loading = false
-        }
+/**初始化 */
+const init = async () => {
+  state.loading = true;
+  // 处理时间范围,将数组中的开始和结束时间分别赋值给API需要的字段
+  const { createTimeRange, ...filterWithoutTimeRange } = state.filter;
+  const beginCreateTime = createTimeRange.length > 0? createTimeRange[0] : "";
+  const endCreateTime = createTimeRange.length > 1? createTimeRange[1] : "";
+  const res: any = await new BoardFunctionResultApi().getList({
+    ...state.pageInput,
+    Filter: {
+      ...filterWithoutTimeRange,
+      beginCreateTime,
+      endCreateTime,
+    },
+  });
+  state.total = res?.data?.total?? 0;
+  state.tableModel = res?.data?.list?? [];
+  state.loading = false;
+};
 </script>
 <style scoped lang="scss">
-  </style>
+
+</style>    

+ 29 - 33
admin.ui.plus-master/src/views/admin/PCBA/boardFunctionSummary/index.vue

@@ -20,33 +20,21 @@
                   <el-input v-model="state.filter.lastTestUser" placeholder="单行输入" clearable></el-input>
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-            <el-form-item label="开始创建时间">
-                  <el-date-picker
-                    v-model="state.filter.beginCreateTime"
-                    type="datetime"
-                    value-format="YYYY-MM-DD HH:mm:ss"
-                    range-separator="To"
-                    start-placeholder="Start date"
-                    end-placeholder="End date"
-                  />
-                </el-form-item>
-              </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-            <el-form-item label="结束创建时间">
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
+                <el-form-item label="创建时间范围">
                   <el-date-picker
-                    v-model="state.filter.endCreateTime"
-                    type="datetime"
+                    v-model="state.filter.createTimeRange"
+                    type="daterange"
                     value-format="YYYY-MM-DD HH:mm:ss"
                     range-separator="To"
-                    start-placeholder="Start date"
-                    end-placeholder="End date"
+                    start-placeholder="开始日期"
+                    end-placeholder="结束日期"
                   />
                 </el-form-item>
               </el-col>
 </el-form-item>
           </el-form>
-      <div class="my-flex my-flex-start" >
+      <div class="my-flex my-flex-start" style="margin-top: -38px;">
 <el-button  type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
 <el-button  type="primary" icon="ele-Document" @click="exportDataToExcel"> 导出 </el-button>
 </div>
@@ -54,7 +42,7 @@
       </el-col>
 <!--表格-->
       <el-col  :xs="24" >
-        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
+        <el-card style="height: 55vh" class="my-fill mt8" shadow="hover">
 <el-table v-loading="state.loading" ref="myTable" stripe :data="state.tableModel" row-key="id" style="width: 100%">
         <!--<el-table-column v-for="column in state.dynamicColumns" :key="column.prop" :prop="column.prop" :label="column.label"  >
         </el-table-column>-->
@@ -162,10 +150,9 @@ const getPCBABoardType = (val) => {
         boardType: -1,
 /**检测员 */
         lastTestUser: "",
-/**起始创建时间 */
-        beginCreateTime: "",
-/**结束创建时间 */
-        endCreateTime: "",},
+// 创建时间范围
+        createTimeRange:[],
+      },
   /**表格信息 */
 tableModel: [] as BoardFunctionSummaryOutput,
     /**动态表头 */
@@ -220,15 +207,24 @@ const onCurrentChange = () => {
           init()
         }
 /**初始化 */
-      const init = async () => {
-          state.loading = true
-const res:any = await new BoardFunctionSummaryApi().getList({...state.pageInput, Filter:state.filter})
-            state.total = res?.data?.total ?? 0
-
-state.tableModel = res?.data?.list ?? []
-
-          state.loading = false
-      }
+const init = async () => {
+  state.loading = true;
+  // 处理时间范围,将数组中的开始和结束时间分别赋值给API需要的字段
+  const { createTimeRange, ...filterWithoutTimeRange } = state.filter;
+  const beginCreateTime = createTimeRange.length > 0? createTimeRange[0] : "";
+  const endCreateTime = createTimeRange.length > 1? createTimeRange[1] : "";
+  const res: any = await new BoardFunctionSummaryApi().getList({
+   ...state.pageInput,
+    Filter: {
+     ...filterWithoutTimeRange,
+      beginCreateTime,
+      endCreateTime,
+    },
+  });
+  state.total = res?.data?.total?? 0;
+  state.tableModel = res?.data?.list?? [];
+  state.loading = false;
+};
 
 
       async function exportDataToExcel() {

+ 156 - 172
admin.ui.plus-master/src/views/admin/PCBA/boardList/index.vue

@@ -1,95 +1,67 @@
-
 <template>
   <div class="layout-pd">
     <el-row>
-<!--操作-->
-      <el-col :xs="24" >
-        <el-card class="mt8"  shadow="hover" >
-<el-form :model="state.filter" :inline="true" @submit.stop.prevent>
+      <!--操作-->
+      <el-col :xs="24">
+        <el-card class="mt8" shadow="hover">
+          <el-form :model="state.filter" :inline="true" @submit.stop.prevent>
             <el-form-item prop="name" style="width: 100%">
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
                 <el-form-item label="序列号">
                   <el-input v-model="state.filter.serno" placeholder="单行输入" clearable></el-input>
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
                 <el-form-item label="外部序列号">
                   <el-input v-model="state.filter.exserno" placeholder="单行输入" clearable></el-input>
                 </el-form-item>
               </el-col>
               <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-
                 <el-form-item label="主板类型">
-                  <!--<el-input v-model="state.filter.boardType" placeholder="单行输入" clearable></el-input>-->
                   <el-select v-model="state.filter.boardType" placeholder="">
                     <el-option v-for="(value, key) in PCBABoardType" :key="key" :label="value[1].name"
                       :value="Number(value[1].value)" />
                   </el-select>
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-            <el-form-item label="开始创建时间">
-                  <el-date-picker
-                    v-model="state.filter.beginCreateTime"
-                    type="datetime"
-                    value-format="YYYY-MM-DD HH:mm:ss"
-                    range-separator="To"
-                    start-placeholder="Start date"
-                    end-placeholder="End date"
-                  />
-                </el-form-item>
-              </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-            <el-form-item label="结束创建时间">
-                  <el-date-picker
-                    v-model="state.filter.endCreateTime"
-                    type="datetime"
-                    value-format="YYYY-MM-DD HH:mm:ss"
-                    range-separator="To"
-                    start-placeholder="Start date"
-                    end-placeholder="End date"
-                  />
-                </el-form-item>
-              </el-col>
-
-
-
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
                 <el-form-item label="最新测试状态">
-                  <!--el-input v-model="state.filter.lastTestState" placeholder="单行输入" clearable></el-input-->
-                  <!--<el-select id="fruits" name="fruits" v-model="state.filter.lastTestState">
-                    <el-option value="-1" >所有</el-option>
-                    <el-option value="0">未测试</el-option>
-                    <el-option value="1">成功</el-option>
-                    <el-option value="2">失败</el-option>
-                  </el-select>-->
                   <el-select v-model="state.filter.lastTestState" placeholder="">
                     <el-option v-for="(value, key) in PCBATestState" :key="key" :label="value[1].name"
                       :value="Number(value[1].value)" />
                   </el-select>
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
                 <el-form-item label="最新检测员">
                   <el-input v-model="state.filter.lastTestUser" placeholder="单行输入" clearable></el-input>
                 </el-form-item>
               </el-col>
-</el-form-item>
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb20">
+                <el-form-item label="创建时间范围">
+                  <el-date-picker
+                    v-model="state.filter.createTimeRange"
+                    type="daterange"
+                    value-format="YYYY-MM-DD HH:mm:ss"
+                    range-separator="To"
+                    start-placeholder="开始日期"
+                    end-placeholder="结束日期"
+                  />
+                </el-form-item>
+              </el-col>
+            </el-form-item>
           </el-form>
-<div class="my-flex my-flex-start" >
-<el-button  type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
-</div>
-</el-card>
+          <div class="my-flex my-flex-start" style="margin-top:-38px">
+            <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
+          </div>
+        </el-card>
       </el-col>
-<!--表格-->
-      <el-col  :xs="24" >
-        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
-<el-table v-loading="state.loading" stripe :data="state.tableModel" row-key="id" style="width: 100%">
-<!--        <el-table-column v-for="column in state.dynamicColumns" :key="column.prop" :prop="column.prop" :label="column.label"  >
-        </el-table-column>
--->
-        <el-table-column prop="serno" label="序列号" />
-        <el-table-column prop="exserno" label="外部序列号" />
+      <!--表格-->
+      <el-col :xs="24">
+        <el-card style="height: 50vh" class="my-fill mt8" shadow="hover">
+          <el-table v-loading="state.loading" stripe :data="state.tableModel" row-key="id" style="width: 100%">
+            <el-table-column prop="serno" label="序列号" />
+            <el-table-column prop="exserno" label="外部序列号" />
             <el-table-column prop="boardType" label="主板类型">
               <template #default="{ row }">
                 <div :style="{ color: getPCBABoardType(row.boardType).color }" class="bold-font">
@@ -107,20 +79,19 @@
               </template>
             </el-table-column>
             <el-table-column prop="lastTestUser" label="最新检测员" />
-            <el-table-column prop="onceTestPass" label="是否一次通过" >
-            <template #default="{ row }">
-            <el-text  v-if="row.onceTestPass">是</el-text>
-            <el-text  v-else>否</el-text>
-            </template>
+            <el-table-column prop="onceTestPass" label="是否一次通过">
+              <template #default="{ row }">
+                <el-text v-if="row.onceTestPass">是</el-text>
+                <el-text v-else>否</el-text>
+              </template>
             </el-table-column>
             <el-table-column prop="testTimes" label="测试次数" />
             <el-table-column prop="successTimes" label="测试成功次数" />
             <el-table-column prop="functionNum" label="功能项数" />
             <el-table-column prop="functionSuccessNum" label="功能项成功数" />
             <el-table-column prop="info" label="备注" />
-
-</el-table>
-<div class="my-flex my-flex-end" style="margin-top: 20px">
+          </el-table>
+          <div class="my-flex my-flex-end" style="margin-top: 20px">
             <el-pagination
               v-model:currentPage="state.pageInput.CurrentPage"
               v-model:page-size="state.pageInput.PageSize"
@@ -133,132 +104,145 @@
               layout="total, sizes, prev, pager, next, jumper"
             />
           </div>
-</el-card>
+        </el-card>
       </el-col>
-</el-row>
-    </div>
-  </template>
-  <script setup lang="ts">
-  import {onBeforeMount, onMounted, reactive, watch, ref} from "vue";
-  import eventBus from "/@/utils/mitt";
-import { BoardListApi } from '/@/api/admin/PCBA/boardListApi'
-import { BoardListDto } from '/@/api/admin/PCBA/boardListDto'
+    </el-row>
+  </div>
+</template>
+<script setup lang="ts">
+import { onBeforeMount, onMounted, reactive, watch, ref } from "vue";
+import eventBus from "/@/utils/mitt";
+import { BoardListApi } from '/@/api/admin/PCBA/boardListApi';
+import { BoardListDto } from '/@/api/admin/PCBA/boardListDto';
 import type { pageInput } from "/@/api/admin/shareDto/shareDto";
 import { useGlobalCacheStore } from "/@/stores/globalCacheStore";
 
-
 /**获取全局缓存*/
-const globalCacheStore = useGlobalCacheStore()
+const globalCacheStore = useGlobalCacheStore();
 /**数据字典缓存*/
-const PCBATestState = ref(globalCacheStore.getGlobalStore().get('pcbaTestState'))
-const PCBABoardType = ref(globalCacheStore.getGlobalStore().get('pcbaBoardType'))
+const PCBATestState = ref(globalCacheStore.getGlobalStore().get('pcbaTestState'));
+const PCBABoardType = ref(globalCacheStore.getGlobalStore().get('pcbaBoardType'));
 
 const getPCBATestState = (val) => {
-  val = String(val)
-  if(PCBATestState.value?.has(val)){
-    return PCBATestState.value.get(val)
-  }else {
-    return val
+  val = String(val);
+  if (PCBATestState.value?.has(val)) {
+    const stateObj = PCBATestState.value.get(val);
+    if (stateObj.name === '未测试') {
+      return { ...stateObj, color:'royalblue' };
+    }
+    return stateObj;
+  } else {
+    return { name: val, color: 'inherit' };
   }
-}
+};
 
 const getPCBABoardType = (val) => {
-  val = String(val)
-  if(PCBABoardType.value?.has(val)){
-    return PCBABoardType.value.get(val)
-  }else {
-    return val
+  val = String(val);
+  if (PCBABoardType.value?.has(val)) {
+    return PCBABoardType.value.get(val);
+  } else {
+    return { name: val, color: 'inherit' };
   }
-}
+};
 
 /**数据对象*/
-  const state = reactive({
-    /**加载显示 */
-    loading: false,
-    /**条件查询模块 */
-      filter: {
-/**序列号 */
-        serno: "",
-/**外部序列号 */
-        exserno: "",
-
-/**boardType */
-        boardType: -1,
-/**起始创建时间 */
-        beginCreateTime: "",
-/**结束创建时间 */
-        endCreateTime: "",
-/**lastTestState */
-        lastTestState: -1,
-/**最新检测员 */
-        lastTestUser: "",},
-
-        testState_text:"所有",
+const state = reactive({
+  /**加载显示 */
+  loading: false,
+  /**条件查询模块 */
+  filter: {
+    /**序列号 */
+    serno: "",
+    /**外部序列号 */
+    exserno: "",
+    /**boardType */
+    boardType: -1,
+    /**创建时间范围 */
+    createTimeRange: [], // 新增属性,用于存储时间范围
+    /**lastTestState */
+    lastTestState: -1,
+    /**最新检测员 */
+    lastTestUser: "",
+  },
+  testState_text: "所有",
   /**表格信息 */
-tableModel: [] as BoardListDto,
-    /**动态表头 */
-    dynamicColumns: [
-{ prop: 'serno', label: '序列号' },
-{ prop: 'boardType', label: '主板类型' },
-{ prop: 'boardName', label: '主板名称' },
-{ prop: 'createTime', label: '创建时间' },
-{ prop: 'lastTestTime', label: '最近检测时间' },
-{ prop: 'lastTestState', label: '最新检测状态' },
-{ prop: 'lastTestUser', label: '最新检测员' },
-{ prop: 'onceTestPass', label: '是否一次通过' },
-{ prop: 'testTimes', label: '测试次数' },
-{ prop: 'successTimes', label: '测试成功次数' },
-{ prop: 'functionNum', label: '功能项数' },
-{ prop: 'functionSuccessNum', label: '功能项成功数' },
-{ prop: 'duration', label: '测试总耗时' },
-{ prop: 'info', label: '备注' },],
-/**分页标识 */
-    pageInput:{
-      CurrentPage: 1,
-      PageSize: 10,
-    } as pageInput,
-    /**分页总数 */
-    total: 0,
-})
-  onMounted(() => {
-    init()
-    eventBus.off('refreshView')
-    eventBus.on('refreshView', async () => {
-      await init()
-    })
-  })
-  onBeforeMount(() => {
-    eventBus.off('refreshView')
-  })
-  
-
-    /**页条数变化*/
+  tableModel: [] as BoardListDto,
+  /**动态表头 */
+  dynamicColumns: [
+    { prop:'serno', label: '序列号' },
+    { prop: 'boardType', label: '主板类型' },
+    { prop: 'boardName', label: '主板名称' },
+    { prop: 'createTime', label: '创建时间' },
+    { prop: 'lastTestTime', label: '最近检测时间' },
+    { prop: 'lastTestState', label: '最新检测状态' },
+    { prop: 'lastTestUser', label: '最新检测员' },
+    { prop: 'onceTestPass', label: '是否一次通过' },
+    { prop: 'testTimes', label: '测试次数' },
+    { prop:'successTimes', label: '测试成功次数' },
+    { prop: 'functionNum', label: '功能项数' },
+    { prop: 'functionSuccessNum', label: '功能项成功数' },
+    { prop: 'duration', label: '测试总耗时' },
+    { prop: 'info', label: '备注' },
+  ],
+  /**分页标识 */
+  pageInput: {
+    CurrentPage: 1,
+    PageSize: 10,
+  } as pageInput,
+  /**分页总数 */
+  total: 0,
+});
+
+onMounted(() => {
+  init();
+  eventBus.off('refreshView');
+  eventBus.on('refreshView', async () => {
+    await init();
+  });
+});
+onBeforeMount(() => {
+  eventBus.off('refreshView');
+});
+
+/**页条数变化*/
 const onSizeChange = () => {
-  init()
-}
+  init();
+};
 
 /**页数变化*/
 const onCurrentChange = () => {
-  init()
-}
+  init();
+};
 
+/**
+ * 监听变换
+ */
+watch(() => {}, () => {});
 
-  /**
-  * 监听变换
-  */
-  watch(() => {},() => {})
 /**条件查询 */
-          const onQuery = () => {
-          init()
-        }
-        /**初始化 */
-        const init = async () => {
-          state.loading = true
-const res:any = await new BoardListApi().getList({...state.pageInput, Filter:state.filter})
-            state.total = res?.data?.total ?? 0
-state.tableModel = res?.data?.list ?? []
-          state.loading = false
-        }
+const onQuery = () => {
+  init();
+};
+
+/**初始化 */
+const init = async () => {
+  state.loading = true;
+  // 处理时间范围,将数组中的开始和结束时间分别赋值给API需要的字段
+  const { createTimeRange, ...filterWithoutTimeRange } = state.filter;
+  const beginCreateTime = createTimeRange.length > 0? createTimeRange[0] : "";
+  const endCreateTime = createTimeRange.length > 1? createTimeRange[1] : "";
+  const res: any = await new BoardListApi().getList({
+   ...state.pageInput,
+    Filter: {
+     ...filterWithoutTimeRange,
+      beginCreateTime,
+      endCreateTime,
+    },
+  });
+  state.total = res?.data?.total?? 0;
+  state.tableModel = res?.data?.list?? [];
+  state.loading = false;
+};
 </script>
 <style scoped lang="scss">
-  </style>
+  </style>    

+ 159 - 240
admin.ui.plus-master/src/views/admin/PCBA/boardSummary/index.vue

@@ -1,69 +1,52 @@
-
 <template>
   <div class="layout-pd">
     <el-row>
-<!--操作-->
-      <el-col :xs="24" >
-        <el-card class="mt8"  shadow="hover" >
-<el-form :model="state.filter" :inline="true" @submit.stop.prevent>
+      <!--操作-->
+      <el-col :xs="24">
+        <el-card class="mt8" shadow="hover">
+          <el-form :model="state.filter" :inline="true" @submit.stop.prevent>
             <el-form-item prop="name" style="width: 100%">
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-  <el-form-item label="主板类型">
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+                <el-form-item label="主板类型">
                   <el-select v-model="state.filter.boardType" placeholder="">
                     <el-option v-for="(value, key) in PCBABoardType" :key="key" :label="value[1].name"
                       :value="Number(value[1].value)" />
                   </el-select>
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
                 <el-form-item label="检测员">
                   <el-input v-model="state.filter.lastTestUser" placeholder="单行输入" clearable></el-input>
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-            <el-form-item label="开始创建时间">
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+                <el-form-item label="创建时间范围">
                   <el-date-picker
-                    v-model="state.filter.beginCreateTime"
-                    type="datetime"
+                    v-model="state.filter.createTimeRange"
+                    type="daterange"
                     value-format="YYYY-MM-DD HH:mm:ss"
                     range-separator="To"
-                    start-placeholder="Start date"
-                    end-placeholder="End date"
+                    start-placeholder="开始日期"
+                    end-placeholder="结束日期"
                   />
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-            <el-form-item label="结束创建时间">
-                  <el-date-picker
-                    v-model="state.filter.endCreateTime"
-                    type="datetime"
-                    value-format="YYYY-MM-DD HH:mm:ss"
-                    range-separator="To"
-                    start-placeholder="Start date"
-                    end-placeholder="End date"
-                  />
-                </el-form-item>
-              </el-col>
-</el-form-item>
+            </el-form-item>
           </el-form>
-<div class="my-flex my-flex-start" >
-<el-button  type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
-<el-button  type="primary" icon="ele-Document" @click="exportDataToExcel"> 导出 </el-button>
-<!--<el-button  type="primary" icon="ele-CirclePlus" @click="onBatExport"> 批量导出 </el-button>-->
-</div>
-</el-card>
+          <div class="my-flex my-flex-start" style="margin-top: -38px;">
+            <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
+            <el-button type="primary" icon="ele-Document" @click="exportDataToExcel"> 导出 </el-button>
+            <!--<el-button  type="primary" icon="ele-CirclePlus" @click="onBatExport"> 批量导出 </el-button>-->
+          </div>
+        </el-card>
       </el-col>
-<!--表格-->
-      <el-col  :xs="24" >
-        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
-
-<el-table id="myTable" ref="myTable" v-loading="state.loading" stripe :data="state.tableModel" row-key="id" style="width: 100%">
-        <!--<el-table-column v-for="column in state.dynamicColumns" :key="column.prop" :prop="column.prop" :label="column.label"  >
-        </el-table-column>-->
-
-
-
-        <el-table-column prop="boardType" label="主板类型">
+      <!--表格-->
+      <el-col :xs="24">
+        <el-card style="height: 55vh" class="my-fill mt8" shadow="hover">
+          <el-table id="myTable" ref="myTable" v-loading="state.loading" stripe :data="state.tableModel" row-key="id" style="width: 100%">
+            <!--<el-table-column v-for="column in state.dynamicColumns" :key="column.prop" :prop="column.prop" :label="column.label"  >
+            </el-table-column>-->
+            <el-table-column prop="boardType" label="主板类型">
               <template #default="{ row }">
                 <div :style="{ color: getPCBABoardType(row.boardType).color }" class="bold-font">
                   {{ getPCBABoardType(row.boardType).name }}
@@ -75,25 +58,23 @@
             <el-table-column prop="boardOneTestSuccessNum" label="一次通过数量" />
             <el-table-column prop="boardTestTimes" label="测试次数" />
             <el-table-column prop="boardSuccessTimes" label="测试成功次数" />
-            <el-table-column prop="boardSuccessRate" label="测试通过率" >
-            <template #default="{ row }">
+            <el-table-column prop="boardSuccessRate" label="测试通过率">
+              <template #default="{ row }">
                 <div> {{row.boardSuccessRate }}%</div>
               </template>
             </el-table-column>
-            <el-table-column prop="boardOneTestSuccessRate" label="测试一次通过率" >
-            <template #default="{ row }">
+            <el-table-column prop="boardOneTestSuccessRate" label="测试一次通过率">
+              <template #default="{ row }">
                 <div> {{row.boardOneTestSuccessRate }}%</div>
               </template>
             </el-table-column>
-            <el-table-column prop="boardTestSuccessRate" label="测试成功率" >
-            <template #default="{ row }">
+            <el-table-column prop="boardTestSuccessRate" label="测试成功率">
+              <template #default="{ row }">
                 <div> {{row.boardTestSuccessRate }}%</div>
               </template>
             </el-table-column>
-</el-table>
-
-<!--
-<div class="my-flex my-flex-end" style="margin-top: 20px">
+          </el-table>
+          <div class="my-flex my-flex-end" style="margin-top: 20px">
             <el-pagination
               v-model:currentPage="state.pageInput.CurrentPage"
               v-model:page-size="state.pageInput.PageSize"
@@ -106,220 +87,158 @@
               layout="total, sizes, prev, pager, next, jumper"
             />
           </div>
--->
-
-</el-card>
+        </el-card>
       </el-col>
-</el-row>
-    </div>
-  </template>
-  
-
-
-  <script setup lang="ts">
-  import {onBeforeMount, onMounted, reactive, watch,ref} from "vue";
-  import eventBus from "/@/utils/mitt";
-import { BoardSummaryApi } from '/@/api/admin/PCBA/boardSummaryApi'
-import { BoardSummaryOutput } from '/@/api/admin/PCBA/boardSummaryDto'
+    </el-row>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { onBeforeMount, onMounted, reactive, watch, ref } from "vue";
+import eventBus from "/@/utils/mitt";
+import { BoardSummaryApi } from '/@/api/admin/PCBA/boardSummaryApi';
+import { BoardSummaryOutput } from '/@/api/admin/PCBA/boardSummaryDto';
 import type { pageInput } from "/@/api/admin/shareDto/shareDto";
 import { useGlobalCacheStore } from "/@/stores/globalCacheStore";
 import { getCurrentInstance } from 'vue';
 import { saveAs } from 'file-saver';
 import * as ExcelJS from 'exceljs';
 
-
 const { proxy: ctx } = getCurrentInstance();
 
-
 /**获取全局缓存*/
-const globalCacheStore = useGlobalCacheStore()
+const globalCacheStore = useGlobalCacheStore();
 /**数据字典缓存*/
-const PCBATestState = ref(globalCacheStore.getGlobalStore().get('pcbaTestState'))
-const PCBABoardType = ref(globalCacheStore.getGlobalStore().get('pcbaBoardType'))
+const PCBATestState = ref(globalCacheStore.getGlobalStore().get('pcbaTestState'));
+const PCBABoardType = ref(globalCacheStore.getGlobalStore().get('pcbaBoardType'));
 
 const getPCBATestState = (val) => {
-  val = String(val)
-  if(PCBATestState.value?.has(val)){
-    return PCBATestState.value.get(val)
-  }else {
-    return val
+  val = String(val);
+  if (PCBATestState.value?.has(val)) {
+    return PCBATestState.value.get(val);
+  } else {
+    return val;
   }
-}
+};
 
 const getPCBABoardType = (val) => {
-  val = String(val)
-  if(PCBABoardType.value?.has(val)){
-    return PCBABoardType.value.get(val)
-  }else {
-    return val
+  val = String(val);
+  if (PCBABoardType.value?.has(val)) {
+    return PCBABoardType.value.get(val);
+  } else {
+    return val;
   }
-}
-
+};
 
 /**数据对象*/
 const state = reactive({
-    /**加载显示 */
-    loading: false,
-    /**条件查询模块 */
-      filter: {
-/**boardType */
-        boardType: -1,
-/**检测员 */
-        lastTestUser: "",
-/**起始创建时间 */
-        beginCreateTime: "",
-/**结束创建时间 */
-        endCreateTime: "",},
+  /**加载显示 */
+  loading: false,
+  /**条件查询模块 */
+  filter: {
+    /**boardType */
+    boardType: -1,
+    /**检测员 */
+    lastTestUser: "",
+    /**创建时间范围 */
+    createTimeRange: [], // 新增属性,用于存储时间范围
+  },
   /**表格信息 */
-tableModel: [] as BoardSummaryOutput,
-    /**动态表头 */
-    dynamicColumns: [
-    ],
-/**分页标识 */
-    pageInput:{
-      CurrentPage: 1,
-      PageSize: 10,
-    } as pageInput,
-    /**分页总数 */
-    total: 0,
-})
-
-  onMounted(() => {
-
-  //const script = document.createElement('script');
-  //script.src = 'https://cdnjs.cloudflare.com/ajax/libs/tableexport/1.0.4/tableExport.min.js';
- 
-
-
-
-    init()
-    eventBus.off('refreshView')
-    eventBus.on('refreshView', async () => {
-      await init()
-    })
-
- //document.head.appendChild(script);
- // const script2 = document.createElement('script');
-  //script.src = 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js'
-  //script2.src = 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js';
-  //document.head.appendChild(script);
-
-
-  })
-
-
+  tableModel: [] as BoardSummaryOutput,
+  /**动态表头 */
+  dynamicColumns: [],
+  /**分页标识 */
+  pageInput: {
+    CurrentPage: 1,
+    PageSize: 10,
+  } as pageInput,
+  /**分页总数 */
+  total: 0,
+});
+
+onMounted(() => {
+  init();
+  eventBus.off('refreshView');
+  eventBus.on('refreshView', async () => {
+    await init();
+  });
+});
+
+onBeforeMount(() => {
+  eventBus.off('refreshView');
+});
+
+/**
+ * 监听变换
+ */
+watch(() => {}, () => {});
 
-  onBeforeMount(() => {
-    eventBus.off('refreshView')
-  })
-
-
-
-  /**
-  * 监听变换
-  */
-  watch(() => {},() => {})
 /**条件查询 */
-          const onQuery = () => {
-          init()
-        }
-        /**初始化 */
-        const init = async () => {
-          state.loading = true
-
-          const res:any = await new BoardSummaryApi().getList({...state.pageInput, Filter:state.filter})
-            state.total = res?.data?.total ?? 0
-
-          state.tableModel = res?.data?.list ?? []
-
-
-        /*
-const res:any = await new BoardSummaryApi().getList({...state.filter})
-const array = [res.data] as BoardSummaryOutput;
-state.tableModel = array
-*/
-          state.loading = false
-        }
-        
-/**导出 
-
-
-        const onExport=()=>{
-          //ctx.$refs.myTable.tableExport({type:'excel', escape:'false'}); 
+const onQuery = () => {
+  init();
+};
+
+/**初始化 */
+const init = async () => {
+  state.loading = true;
+  // 处理时间范围,将数组中的开始和结束时间分别赋值给API需要的字段
+  const { createTimeRange, ...filterWithoutTimeRange } = state.filter;
+  const beginCreateTime = createTimeRange.length > 0? createTimeRange[0] : "";
+  const endCreateTime = createTimeRange.length > 1? createTimeRange[1] : "";
+  const res: any = await new BoardSummaryApi().getList({
+   ...state.pageInput,
+    Filter: {
+     ...filterWithoutTimeRange,
+      beginCreateTime,
+      endCreateTime,
+    },
+  });
+  state.total = res?.data?.total?? 0;
+  state.tableModel = res?.data?.list?? [];
+  state.loading = false;
+};
 
-          const tableData = ctx.$refs.myTable.data; // 确保你的el-table有ref="myTable"
-    const ws = XLSX.utils.json_to_sheet(tableData); // 将数据转换为工作表对象
-    const wb = XLSX.utils.book_new(); // 创建一个新的工作簿
-    XLSX.utils.book_append_sheet(wb, ws, 'Sheet1'); // 将工作表添加到工作簿中
-    // 生成 Excel 文件并导出
-    const excelBuffer = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });
-    const data = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8' });
-    saveAs(data, 'data.xlsx'); // 使用file-saver保存文件
-        }
-*/
-
-
-
- 
 async function exportDataToExcel() {
-
-const tableData = ctx.$refs.myTable.data;
-
-    const workbook = new ExcelJS.Workbook();
-    const worksheet = workbook.addWorksheet('My Sheet');
-    worksheet.columns = [
-        { header: '主板数量', key: 'boardNum', width: 15 },
-        { header: '测试通过数量', key: 'boardSuccessNum', width: 15 },
-        { header: '一次通过数量', key: 'boardOneTestSuccessNum', width: 15 },
-        { header: '测试次数', key: 'boardTestTimes', width: 15 },
-        { header: '测试成功次数', key: 'boardSuccessTimes', width: 15 },
-        { header: '测试通过率', key: 'boardSuccessRate', width: 15 },
-        { header: '测试一次通过率', key: 'boardOneTestSuccessRate', width: 15 },
-        { header: '测试成功率', key: 'boardTestSuccessRate', width: 15 }
-
-    ];
-
-
-
-
-    for (let i = 0; i < tableData.length; i++)
-    {
-      let data = tableData[i];
-      data.boardSuccessRate +="%";
-      data.boardOneTestSuccessRate +="%";
-      data.boardTestSuccessRate +="%";
-
-      worksheet.addRow(tableData[i]);
-    }
-
-
-
-    
-  
-    // await workbook.xlsx.writeFile('output.xlsx');
-
-    // 生成 Excel 文件
-    const buffer = await workbook.xlsx.writeBuffer();
-
-    // 将文件保存到本地
-    const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
-    saveAs(blob, '主板检测汇总.xlsx');
-
-      console.log('文件已成功导出!');
+  const tableData = ctx.$refs.myTable.data;
+  const workbook = new ExcelJS.Workbook();
+  const worksheet = workbook.addWorksheet('My Sheet');
+  worksheet.columns = [
+    { header: '主板数量', key: 'boardNum', width: 15 },
+    { header: '测试通过数量', key: 'boardSuccessNum', width: 15 },
+    { header: '一次通过数量', key: 'boardOneTestSuccessNum', width: 15 },
+    { header: '测试次数', key: 'boardTestTimes', width: 15 },
+    { header: '测试成功次数', key: 'boardSuccessTimes', width: 15 },
+    { header: '测试通过率', key: 'boardSuccessRate', width: 15 },
+    { header: '测试一次通过率', key: 'boardOneTestSuccessRate', width: 15 },
+    { header: '测试成功率', key: 'boardTestSuccessRate', width: 15 }
+  ];
+
+  for (let i = 0; i < tableData.length; i++) {
+    let data = tableData[i];
+    data.boardSuccessRate += "%";
+    data.boardOneTestSuccessRate += "%";
+    data.boardTestSuccessRate += "%";
+    worksheet.addRow(tableData[i]);
   }
-  
-  // exportDataToExcel().catch(error => {
-  //     console.error('导出失败:', error);
-  // });
-
-
-
-
-
-
 
+  // 生成 Excel 文件
+  const buffer = await workbook.xlsx.writeBuffer();
+  // 将文件保存到本地
+  const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
+  saveAs(blob, '主板检测汇总.xlsx');
+  console.log('文件已成功导出!');
+}
 
+/** 页条数变化 */
+const onSizeChange = () => {
+  init();
+};
 
+/** 页数变化 */
+const onCurrentChange = () => {
+  init();
+};
 </script>
+
 <style scoped lang="scss">
-  </style>
+</style>

+ 183 - 200
admin.ui.plus-master/src/views/admin/PCBA/boardTestRecord/index.vue

@@ -1,48 +1,42 @@
-
 <template>
   <div class="layout-pd">
     <el-row>
-<!--操作-->
-      <el-col :xs="24" >
-        <el-card class="mt8"  shadow="hover" >
-<el-form :model="state.filter" :inline="true" @submit.stop.prevent>
+      <!--操作-->
+      <el-col :xs="24">
+        <el-card class="mt8" shadow="hover">
+          <el-form :model="state.filter" :inline="true" @submit.stop.prevent>
             <el-form-item prop="name" style="width: 100%">
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
                 <el-form-item label="序列号">
                   <el-input v-model="state.filter.serno" placeholder="单行输入" clearable></el-input>
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
                 <el-form-item label="外部序列号">
                   <el-input v-model="state.filter.exserno" placeholder="单行输入" clearable></el-input>
                 </el-form-item>
               </el-col>
               <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-  <el-form-item label="主板类型">
+                <el-form-item label="主板类型">
                   <el-select v-model="state.filter.boardType" placeholder="">
                     <el-option v-for="(value, key) in PCBABoardType" :key="key" :label="value[1].name"
                       :value="Number(value[1].value)" />
                   </el-select>
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
                 <el-form-item label="功能码">
-                    <el-select  v-model="state.filter.functionCode" default-first-option="true" filterable allow-create 
-                      value-key="code"
-                      @blur="codeblur()"
-                      title='可直接输入具体功能码'
-                      ref="codeSel">
+                  <el-select v-model="state.filter.functionCode" default-first-option="true" filterable allow-create 
+                    value-key="code"
+                    @blur="codeblur()"
+                    title='可直接输入具体功能码'
+                    ref="codeSel">
                     <el-option v-for="item in options" :key="item.key" :label="item.name"
-                      :value="Number(item.value)" >
-
-                    </el-option>
-                    <!--<el-option  key = "-1" label="所有" value=-1>所有</el-option>-->
-                    
+                      :value="Number(item.value)" />
                   </el-select>
                 </el-form-item>
-                
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
                 <el-form-item label="检测类型">
                   <el-select v-model="state.filter.testType" placeholder="">
                     <el-option v-for="(value, key) in PCBATestType" :key="key" :label="value[1].name"
@@ -50,61 +44,45 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-            <el-form-item label="开始时间">
-                  <el-date-picker
-                    v-model="state.filter.beginTime"
-                    type="datetime"
-                    value-format="YYYY-MM-DD HH:mm:ss"
-                    range-separator="To"
-                    start-placeholder="Start date"
-                    end-placeholder="End date"
-                  />
-                </el-form-item>
-              </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-            <el-form-item label="结束时间">
-                  <el-date-picker
-                    v-model="state.filter.endTime"
-                    type="datetime"
-                    value-format="YYYY-MM-DD HH:mm:ss"
-                    range-separator="To"
-                    start-placeholder="Start date"
-                    end-placeholder="End date"
-                  />
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+                <el-form-item label="测试员">
+                  <el-input v-model="state.filter.user" placeholder="单行输入" clearable></el-input>
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-  <el-form-item label="测试结果">
+              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+                <el-form-item label="测试结果">
                   <el-select v-model="state.filter.result" placeholder="">
                     <el-option v-for="(value, key) in PCBATestState" :key="key" :label="value[1].name"
                       :value="Number(value[1].value)" />
                   </el-select>
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
-                <el-form-item label="测试员">
-                  <el-input v-model="state.filter.user" placeholder="单行输入" clearable></el-input>
+              <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+                <el-form-item label="检测时间范围">
+                  <el-date-picker
+                    v-model="state.filter.testTimeRange"
+                    type="daterange"
+                    value-format="YYYY-MM-DD HH:mm:ss"
+                    range-separator="To"
+                    start-placeholder="开始日期"
+                    end-placeholder="结束日期"
+                  />
+                  <el-button type="primary" icon="ele-Search" @click="onQuery" style="margin-left: 80vh;"> 查询 </el-button>
                 </el-form-item>
               </el-col>
-</el-form-item>
+            </el-form-item>
           </el-form>
-<div class="my-flex my-flex-start" >
-<el-button  type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
-</div>
-</el-card>
-      </el-col>
-<!--表格-->
-      <el-col  :xs="24" >
-        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
-<el-table v-loading="state.loading" stripe :data="state.tableModel" row-key="id" style="width: 100%">
-        <!--<el-table-column v-for="column in state.dynamicColumns" :key="column.prop" :prop="column.prop" :label="column.label"  >
-        </el-table-column>-->
-
- 
+          <div class="my-flex my-flex-start" style="margin-top: -35px;">
 
-        <el-table-column prop="serno" label="序列号" />
-        <el-table-column prop="exserno" label="外部序列号" />
+          </div>
+        </el-card>
+      </el-col>
+      <!--表格-->
+      <el-col :xs="24">
+        <el-card style="height: 45vh" class="my-fill mt8" shadow="hover">
+          <el-table v-loading="state.loading" stripe :data="state.tableModel" row-key="id" style="width: 100%">
+            <el-table-column prop="serno" label="序列号" />
+            <el-table-column prop="exserno" label="外部序列号" />
             <el-table-column prop="boardType" label="主板类型">
               <template #default="{ row }">
                 <div :style="{ color: getPCBABoardType(row.boardType).color }" class="bold-font">
@@ -114,7 +92,7 @@
             </el-table-column>
             <el-table-column prop="functionCode" label="功能码" />
             <el-table-column prop="functionName" label="功能名称" />
-            <el-table-column prop="testType" label="检测类型" >
+            <el-table-column prop="testType" label="检测类型">
               <template #default="{ row }">
                 <div :style="{ color: getPCBATestType(row.testType).color }" class="bold-font">
                   {{ getPCBATestType(row.testType).name }}
@@ -133,8 +111,8 @@
             <el-table-column prop="testSuccessNum" label="测试成功功能数" />
             <el-table-column prop="user" label="测试员" />
             <el-table-column prop="info" label="备注" />
-</el-table>
-<div class="my-flex my-flex-end" style="margin-top: 20px">
+          </el-table>
+          <div class="my-flex my-flex-end" style="margin-top: 20px">
             <el-pagination
               v-model:currentPage="state.pageInput.CurrentPage"
               v-model:page-size="state.pageInput.PageSize"
@@ -147,169 +125,174 @@
               layout="total, sizes, prev, pager, next, jumper"
             />
           </div>
-</el-card>
+        </el-card>
       </el-col>
-</el-row>
-    </div>
-  </template>
-  <script setup lang="ts">
-  import {onBeforeMount, onMounted, reactive, watch,ref} from "vue";
-  import eventBus from "/@/utils/mitt";
-import { BoardTestRecordApi } from '/@/api/admin/PCBA/boardTestRecordApi'
-import { BoardTestRecordDto } from '/@/api/admin/PCBA/boardTestRecordDto'
+    </el-row>
+  </div>
+</template>
+<script setup lang="ts">
+import { onBeforeMount, onMounted, reactive, watch, ref } from "vue";
+import eventBus from "/@/utils/mitt";
+import { BoardTestRecordApi } from '/@/api/admin/PCBA/boardTestRecordApi';
+import { BoardTestRecordDto } from '/@/api/admin/PCBA/boardTestRecordDto';
 import type { pageInput } from "/@/api/admin/shareDto/shareDto";
 import { useGlobalCacheStore } from "/@/stores/globalCacheStore";
 import { getCurrentInstance } from 'vue';
 const { proxy: ctx } = getCurrentInstance();
 
 /**获取全局缓存*/
-const globalCacheStore = useGlobalCacheStore()
+const globalCacheStore = useGlobalCacheStore();
 /**数据字典缓存*/
-const PCBATestState = ref(globalCacheStore.getGlobalStore().get('pcbaTestState'))
-const PCBABoardType = ref(globalCacheStore.getGlobalStore().get('pcbaBoardType'))
-const PCBATestType = ref(globalCacheStore.getGlobalStore().get('pcbaTestType'))
+const PCBATestState = ref(globalCacheStore.getGlobalStore().get('pcbaTestState'));
+const PCBABoardType = ref(globalCacheStore.getGlobalStore().get('pcbaBoardType'));
+const PCBATestType = ref(globalCacheStore.getGlobalStore().get('pcbaTestType'));
 
 const getPCBATestState = (val) => {
-  val = String(val)
-  if(PCBATestState.value?.has(val)){
-    return PCBATestState.value.get(val)
-  }else {
-    return val
+  val = String(val);
+  if (PCBATestState.value?.has(val)) {
+    const stateObj = PCBATestState.value.get(val);
+    if (stateObj.name === '未测试') {
+      return { ...stateObj, color:'royalblue' };
+    }
+    return stateObj;
+  } else {
+    return { name: val, color: 'inherit' };
   }
-}
+};
 
 const getPCBABoardType = (val) => {
-  val = String(val)
-  if(PCBABoardType.value?.has(val)){
-    return PCBABoardType.value.get(val)
-  }else {
-    return val
+  val = String(val);
+  if (PCBABoardType.value?.has(val)) {
+    return PCBABoardType.value.get(val);
+  } else {
+    return val;
   }
-}
+};
 
 const getPCBATestType = (val) => {
-  val = String(val)
-  if(PCBATestType.value?.has(val)){
-    return PCBATestType.value.get(val)
-  }else {
-    return val
+  val = String(val);
+  if (PCBATestType.value?.has(val)) {
+    return PCBATestType.value.get(val);
+  } else {
+    return val;
   }
-}
+};
 
-
-
-const  codeblur = ()=>{
-
-  let value = ctx.$refs.codeSel.selectedLabel
-
-  if(value == '所有'  || value == '')
-  {
-    value = -1
-
-   // ctx.$refs.codeSel.selectedValue = -1 
-
-   // return
+const codeblur = () => {
+  let value = ctx.$refs.codeSel.selectedLabel;
+  if (value == '所有' || value == '') {
+    value = -1;
   }
+  state.filter.functionCode = value;
+};
 
-  state.filter.functionCode = value
-  
-}
-  
-const options= [{
-        value: -1,
-        name: '所有',
-        key:"-1",
-        info:"可直接输入具体功能码"
-      }
-    ]
+const options = [{
+  value: -1,
+  name: '所有',
+  key: "-1",
+  info: "可直接输入具体功能码"
+}];
 
 /**数据对象*/
-  const state = reactive({
-    /**加载显示 */
-    loading: false,
-    /**条件查询模块 */
-      filter: {
-/**serno */
-        serno: "",
-/**exserno */
-exserno: "",        
-/**boardType */
-        boardType: -1,
-/**functionCode */
-        functionCode: -1,
-/**检测类型 */
-        testType: -1,
-/**起始检测时间 */
-        beginTime: "",
-/**结束检测时间 */
-        endTime: "",
-/**测试结果 */
-        result: -1,
-/**测试员 */
-        user: "",},
+const state = reactive({
+  /**加载显示 */
+  loading: false,
+  /**条件查询模块 */
+  filter: {
+    /**serno */
+    serno: "",
+    /**exserno */
+    exserno: "",
+    /**boardType */
+    boardType: -1,
+    /**functionCode */
+    functionCode: -1,
+    /**检测类型 */
+    testType: -1,
+    /**检测时间范围 */
+    testTimeRange: [], // 新增属性,用于存储时间范围
+    /**测试结果 */
+    result: -1,
+    /**测试员 */
+    user: "",
+  },
   /**表格信息 */
-tableModel: [] as BoardTestRecordDto,
-    /**动态表头 */
-    dynamicColumns: [
-{ prop: 'serno', label: '序列号' },
-{ prop: 'boardType', label: '主板类型' },
-{ prop: 'boardName', label: '主板名称' },
-{ prop: 'functionCode', label: '功能码' },
-{ prop: 'functionName', label: '功能名称' },
-{ prop: 'testType', label: '检测类型' },
-{ prop: 'time', label: '检测时间' },
-{ prop: 'result', label: '测试结果' },
-{ prop: 'testNum', label: '测试功能数' },
-{ prop: 'testSuccessNum', label: '测试成功功能数' },
-{ prop: 'user', label: '测试员' },
-{ prop: 'duration', label: '测试耗时' },
-{ prop: 'info', label: '备注' },],
-/**分页标识 */
-    pageInput:{
-      CurrentPage: 1,
-      PageSize: 10,
-    } as pageInput,
-    /**分页总数 */
-    total: 0,
-})
-  onMounted(() => {
-    init()
-    eventBus.off('refreshView')
-    eventBus.on('refreshView', async () => {
-      await init()
-    })
-  })
-  onBeforeMount(() => {
-    eventBus.off('refreshView')
-  })
-  
-    /**页条数变化*/
+  tableModel: [] as BoardTestRecordDto,
+  /**动态表头 */
+  dynamicColumns: [
+    { prop:'serno', label: '序列号' },
+    { prop: 'boardType', label: '主板类型' },
+    { prop: 'boardName', label: '主板名称' },
+    { prop: 'functionCode', label: '功能码' },
+    { prop: 'functionName', label: '功能名称' },
+    { prop: 'testType', label: '检测类型' },
+    { prop: 'time', label: '检测时间' },
+    { prop:'result', label: '测试结果' },
+    { prop: 'testNum', label: '测试功能数' },
+    { prop: 'testSuccessNum', label: '测试成功功能数' },
+    { prop: 'user', label: '测试员' },
+    { prop: 'duration', label: '测试耗时' },
+    { prop: 'info', label: '备注' },
+  ],
+  /**分页标识 */
+  pageInput: {
+    CurrentPage: 1,
+    PageSize: 10,
+  } as pageInput,
+  /**分页总数 */
+  total: 0,
+});
+
+onMounted(() => {
+  init();
+  eventBus.off('refreshView');
+  eventBus.on('refreshView', async () => {
+    await init();
+  });
+});
+onBeforeMount(() => {
+  eventBus.off('refreshView');
+});
+
+/**页条数变化*/
 const onSizeChange = () => {
-  init()
-}
+  init();
+};
 
 /**页数变化*/
 const onCurrentChange = () => {
-  init()
-}
+  init();
+};
 
+/**
+ * 监听变换
+ */
+watch(() => {}, () => {});
 
-  /**
-  * 监听变换
-  */
-  watch(() => {},() => {})
 /**条件查询 */
-          const onQuery = () => {
-          init()
-        }
-        /**初始化 */
-        const init = async () => {
-          state.loading = true
-const res:any = await new BoardTestRecordApi().getList({...state.pageInput, Filter:state.filter})
-            state.total = res?.data?.total ?? 0
-state.tableModel = res?.data?.list ?? []
-          state.loading = false
-        }
+const onQuery = () => {
+  init();
+};
+
+/**初始化 */
+const init = async () => {
+  state.loading = true;
+  // 处理时间范围,将数组中的开始和结束时间分别赋值给API需要的字段
+  const { testTimeRange, ...filterWithoutTimeRange } = state.filter;
+  const beginTime = testTimeRange.length > 0? testTimeRange[0] : "";
+  const endTime = testTimeRange.length > 1? testTimeRange[1] : "";
+  const res: any = await new BoardTestRecordApi().getList({
+   ...state.pageInput,
+    Filter: {
+     ...filterWithoutTimeRange,
+      beginTime,
+      endTime,
+    },
+  });
+  state.total = res?.data?.total?? 0;
+  state.tableModel = res?.data?.list?? [];
+  state.loading = false;
+};
 </script>
 <style scoped lang="scss">
   </style>

+ 5 - 6
admin.ui.plus-master/src/views/admin/authorize/dispenserAuthCode/index.vue

@@ -11,21 +11,20 @@
             <h1 style="margin-bottom: 10px;color: #81B337;font-size: 20px;">授权码申请成功</h1>
           </div>
           <div style="width: 100%;">
-            <el-form :inline="true" @submit.stop.prevent style="width: 20%;">
+            <el-form :inline="true" @submit.stop.prevent style="width: 30%;display: inline-block;">
               <el-form-item label="油站名称" style="width: 100%;">
                 <el-input v-model="state.filter.station" style="width: 100%;" placeholder="请输入油站名称"
                   @keyup.enter="onQuery" />
               </el-form-item>
             </el-form>
-          </div>
-          <div style="width: 100%;">
-            <el-form :inline="true" @submit.stop.prevent style="width: 20%;">
+            <el-form :inline="true" @submit.stop.prevent style="width: 30%;display: inline-block;margin-left:20vh">
               <el-form-item label="油机id" style="width: 100%;">
                 <el-input v-model="state.filter.dispenserID" style="width: 100%;" placeholder="请输入油机id"
                   @keyup.enter="onQuery" />
               </el-form-item>
             </el-form>
           </div>
+
           <div v-if="state.pwdDisplay" style="width: 100%;">
             <el-form :inline="true" @submit.stop.prevent style="width: 20%;">
               <el-form-item label="油机授权码" style="width: 82%;">
@@ -46,7 +45,7 @@
             </el-row>
             <el-row>
               <div v-if="state.btnDisplay" style="display: flex;justify-content: center;align-items: center;">
-                <el-button style="margin-top: 10px;margin-bottom: 10px;width: 264px;height: 42px;" type="primary"
+                <el-button style="margin-top: 0px;margin-bottom: 10px;width: 264px;height: 42px;" type="primary"
                   @click="onQuery">申请油机授权码</el-button>
               </div>
             </el-row>
@@ -57,7 +56,7 @@
       </el-col>
       <!--表格-->
       <el-col :xs="24">
-        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
+        <el-card style="height: 50vh" class="my-fill mt8" shadow="hover">
           <el-table ref="multipleTableRef" v-loading="state.loading" stripe :data="state.tableModel" row-key="id"
             style="width: 100%">
             <el-table-column type="index" label="记录" width="60" />

+ 2 - 2
admin.ui.plus-master/src/views/admin/authorize/fuelingFTP/index.vue

@@ -11,7 +11,7 @@
             <h1 style="margin-bottom: 10px;color: #81B337;font-size: 20px;">密码申请成功</h1>
           </div>
           <div style="width: 100%;">
-            <el-form @submit.stop.prevent style="width: 20%;">
+            <el-form @submit.stop.prevent style="width: 40%;">
               <el-form-item label="申请备注" style="width: 100%;">
                 <el-input v-model="state.filter.info" style="width: 100%;" placeholder="请输入申请备注"
                   @keyup.enter="onQuery" />
@@ -56,7 +56,7 @@
       </el-col>
       <!--表格-->
       <el-col :xs="24">
-        <el-card style="height: 65vh" class="my-fill mt8" shadow="hover">
+        <el-card style="height: 45vh" class="my-fill mt8" shadow="hover">
           <el-table ref="multipleTableRef" v-loading="state.loading" stripe :data="state.tableModel" row-key="id"
             style="width: 100%">
             <el-table-column type="index" label="记录" width="60" />

+ 5 - 9
admin.ui.plus-master/src/views/admin/authorize/fuelingFTPofDate/index.vue

@@ -11,16 +11,12 @@
           <div v-if="state.msgDisplay" style="width: 100%;">
             <h1 style="margin-bottom: 10px;color: #81B337;font-size: 20px;">密码申请成功</h1>
           </div>
-          <div style="width: 100%;">
+          <div style="width: 100%;margin-top:20px">
             <el-form :inline="true" @submit.stop.prevent style="width: 60%;">
-              <el-form-item label="密钥使用日期" style="width: 100%;">
-                <el-input type="date" v-model="state.filter.useDate" style="width: 30%;" @keyup.enter="onQuery" />
+              <el-form-item label="密钥使用日期" style="width: 40%;">
+                <el-input type="date" v-model="state.filter.useDate" style="width: 100%;" @keyup.enter="onQuery" value-format="yyyy/MM" />
               </el-form-item>
-            </el-form>
-          </div>
-          <div style="width: 100%;">
-            <el-form :inline="true" @submit.stop.prevent style="width: 60%;">
-              <el-form-item label="申请备注" style="width: 35%;">
+              <el-form-item label="申请备注" style="width: 40%;">
                 <el-input v-model="state.filter.info" style="width: 100%;" placeholder="请输入申请备注"
                   @keyup.enter="onQuery" />
               </el-form-item>
@@ -62,7 +58,7 @@
       </el-col>
       <!--表格-->
       <el-col :xs="24">
-        <el-card style="height: 60vh" class="my-fill mt8" shadow="hover">
+        <el-card style="height: 44vh" class="my-fill mt8" shadow="hover">
           <el-table ref="multipleTableRef" v-loading="state.loading" stripe :data="state.tableModel" row-key="id"
             style="width: 100%">
             <el-table-column type="index" label="记录" width="60" />

+ 11 - 2
admin.ui.plus-master/src/views/admin/authorize/fuelingsdk/index.vue

@@ -26,10 +26,19 @@
                   <el-input v-model="sdkData.Filter.Key" placeholder="单行输入" clearable></el-input>
                 </el-form-item>
               </el-col>
+              <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
+                              <el-form-item label="状态">
+                                  <el-select  placeholder="请选择上传状态">
+                                   <el-option label="所有" :value="''"></el-option>
+                                   <el-option label="正常" :value="''"></el-option>
+                                   <el-option label="未授权" :value="''"></el-option>
+                                 </el-select>
+                             </el-form-item>
+                           </el-col>
               <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
                 <el-form-item label="失效时间">
                   <el-date-picker v-model="sdkData.time" type="datetimerange" value-format="YYYY-MM-DD HH:mm:ss"
-                    range-separator="To" start-placeholder="Start date" end-placeholder="End date" />
+                    range-separator="To" start-placeholder="开始日期" end-placeholder="结束日期" />
                 </el-form-item>
               </el-col>
             </el-form-item>
@@ -55,7 +64,7 @@
       </el-col>
       <!--表格-->
       <el-col :xs="24">
-        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
+        <el-card style="height: 45vh" class="my-fill mt8" shadow="hover">
           <el-table ref="multipleTableRef" v-loading="sdkData.loading" stripe :data="sdkData.tableModel" row-key="id"
             style="width: 100%" @row-click="onOilSdkRowClick">
             <el-table-column type="selection" width="50"></el-table-column>

+ 1 - 1
admin.ui.plus-master/src/views/admin/authorize/softwarePackageManagement/index.vue

@@ -68,7 +68,7 @@
       </el-col>
       <!--表格-->
       <el-col :xs="24">
-        <el-card style="height: 65vh" class="my-fill mt8" shadow="hover">
+        <el-card style="height: 45vh" class="my-fill mt8" shadow="hover">
           <el-table v-loading="softwareData.loading" stripe :data="softwareData.tableModel" row-key="id"
             style="width: 100%">
             <el-table-column v-for="column in softwareData.dynamicColumns" :key="column.prop" :prop="column.prop"

+ 4 - 4
admin.ui.plus-master/src/views/admin/product/groupLogo/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="layout-pd">
+  <div class="layout-pd" >
     <el-row>
       <el-col>
         <el-card class="mt8" shadow="hover">
@@ -48,9 +48,9 @@
 
         </el-card>
       </el-col>
-      <el-col  style="max-height:40vh" :xs="24">
-        <el-card class="mt8" shadow="hover">
-          <el-table v-loading="state.loading" stripe :data="state.list" row-key="id" style="width: 100%">
+      <el-col :xs="24">
+        <el-card style="height: 45vh" class="my-fill mt8" shadow="hover" >
+          <el-table v-loading="state.loading" stripe :data="state.list" row-key="id" style="width: 100%;">
             <el-table-column prop="keyGuid" label="GUID" />
             <el-table-column prop="state" label="状态">
               <template #default="{ row }">

+ 3 - 3
admin.ui.plus-master/src/views/admin/product/qrBook/components/qrbook-edit.vue

@@ -50,7 +50,7 @@
   <script setup lang="ts">
   import {defineAsyncComponent, reactive, ref, watch, inject, computed} from "vue";
   import {FormRules} from "element-plus";
-  import { usePersonalStore } from "/@/stores/personalStore"; // 引入新的 Store
+  import { useUserInfo } from "/@/stores/userInfo"; // 引入新的 Store
   import {useGlobalCacheStore} from "/@/stores/globalCacheStore";
   import { QRBookFileInfoRequset, QRBookTableInfo } from "/@/api/admin/productionManagement/QRBookDto";
   import { QRBookApi } from "/@/api/admin/productionManagement/qrBookApi";
@@ -66,9 +66,9 @@ import { log } from "console";
   /** 获取文件状态 */
   const statusType = ref(globalCacheStore.getGlobalStore().get('qrBookFileStatus'))
   
-  const personalStore = usePersonalStore();
+  const UserInfo = useUserInfo();
   // 使用computed确保数据变化时能及时更新
-  const injectedNickName = computed(() => personalStore.personalFormNickName);
+  const injectedNickName = computed(() => UserInfo.userInfos.userName);
 
   // 可以添加watch用于调试,观察数据变化
   watch(injectedNickName, (newValue) => {

+ 1 - 1
admin.ui.plus-master/src/views/admin/product/qrBook/index.vue

@@ -58,7 +58,7 @@
 
             <!-- 表格 -->
             <el-col :xs="24">
-                <el-card style="height: 65vh;" class="my-fill mt8" shadow="hover">
+                <el-card style="height: 45vh;" class="my-fill mt8" shadow="hover">
                     <el-table v-loading="qrBookData.loading" stripe :data="qrBookData.tableModel" row-key="id"
                         style="width: 100%;">
                         <el-table-column v-for="column in qrBookData.dynamicColumns" :key="column.prop"

+ 9 - 6
admin.ui.plus-master/src/views/admin/product/record/index.vue

@@ -1,10 +1,10 @@
 <template>
-  <div class="layout-pd">
+  <div class="layout-pd" >
     <!--部件电子档案-->
     <el-row>
-      <!--操作-->
-      <el-col :xs="24">
-        <el-card  class="mt8" shadow="hover">
+      <!--操作--> 
+      <el-col :xs="24" >
+        <el-card  class="mt8" shadow="never" >
           <el-form :model="bomModel.filterModel" @submit.stop.prevent>
             <el-form-item class="form_item" prop="name" style="width:100%">
               <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
@@ -61,8 +61,9 @@
         </el-card>
       </el-col>
       <!--表格-->
+    
       <el-col :xs="24">
-        <el-card style="height: 60vh" class="my-fill mt8" shadow="hover">
+        <el-card  style="height: 47vh;overflow: hidden;"  class="my-fill mt8" shadow="never">
           <el-table v-loading="bomModel.loading" stripe :data="bomModel.bomListData" row-key="id" style="width: 100%">
             <el-table-column prop="guid" label="序号" />
             <el-table-column prop="manufacturer" label="厂商" />
@@ -156,7 +157,9 @@
               layout="total, sizes, prev, pager, next, jumper" />
           </div>
         </el-card>
-      </el-col>
+        </el-col>
+      
+    
     </el-row>
   </div>
 </template>

+ 1 - 1
admin.ui.plus-master/src/views/admin/product/type/index.vue

@@ -49,7 +49,7 @@
 
       <!--表格-->
       <el-col :xs="24">
-        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
+        <el-card style="height: 55vh" class="my-fill mt8" shadow="hover">
           <el-table v-loading="state.loading" stripe :data="state.bomListData" row-key="id" style="width: 100%">
             <el-table-column prop="guid" label="序号" />
             <el-table-column prop="type" label="部件类型">

+ 3 - 3
admin.ui.plus-master/src/views/admin/statement/alarmManagement/index.vue

@@ -55,7 +55,7 @@
               <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
                 <el-form-item label="创建时间">
                   <el-date-picker v-model="Data.time" type="datetimerange" value-format="YYYY-MM-DD HH:mm:ss"
-                    range-separator="To" start-placeholder="Start date" end-placeholder="End date" />
+                    range-separator="To" start-placeholder="开始日期" end-placeholder="结束日期" />
                 </el-form-item>
               </el-col>
               <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
@@ -68,7 +68,7 @@
           <hr>
 
           <!-- 按钮 -->
-          <el-row justify="space-between" class="submit-button">
+          <el-row justify="space-between" class="submit-button" style="margin-bottom:-6px">
             <el-row>
               <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
               <el-button type="primary" icon="ele-RefreshRight" @click="onReset"> 重置 </el-button>
@@ -78,7 +78,7 @@
       </el-col>
       <!--表格-->
       <el-col :xs="24">
-        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
+        <el-card style="height: 40vh" class="my-fill mt8" shadow="hover">
           <el-table ref="multipleTableRef" v-loading="Data.loading" stripe :data="Data.tableModel" row-key="id"
             style="width: 100%">
             <el-table-column v-for="column in Data.dynamicColumns" :key="column.prop" :prop="column.prop"

+ 21 - 3
admin.ui.plus-master/src/views/admin/statement/alarmRules/index.vue

@@ -12,13 +12,31 @@
                   <el-input v-model="Data.time1" placeholder="请输入规则名称" clearable></el-input>
                 </el-form-item>
               </el-col>
+              <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
+                              <el-form-item label="状态">
+                                  <el-select  placeholder="请选择上传状态">
+                                   <el-option label="所有" :value="''"></el-option>
+                                   <el-option label="启动" :value="''"></el-option>
+                                   <el-option label="禁用" :value="''"></el-option>
+                                 </el-select>
+                             </el-form-item>
+                           </el-col>
+                           <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
+                              <el-form-item label="推送方式">
+                                  <el-select  placeholder="请选择推送方式">
+                                   <el-option label="所有" :value="''"></el-option>
+                                   <el-option label="电子邮箱" :value="''"></el-option>
+                                   <el-option label="微信" :value="''"></el-option>
+                                 </el-select>
+                             </el-form-item>
+                           </el-col>
             </el-form-item>
           </el-form>
 
           <hr>
 
           <!-- 按钮 -->
-          <el-row justify="space-between" class="submit-button">
+          <el-row justify="space-between" class="submit-button" style="margin-bottom: -9px;">
             <el-row>
               <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
               <el-button type="primary" icon="ele-RefreshRight" @click="onReset"> 重置 </el-button>
@@ -31,7 +49,7 @@
       </el-col>
       <!--表格-->
       <el-col :xs="24">
-        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
+        <el-card style="height: 55vh" class="my-fill mt8" shadow="hover">
           <el-table ref="multipleTableRef" v-loading="Data.loading" stripe :data="Data.tableModel" row-key="id"
             style="width: 100%">
             <el-table-column v-for="column in Data.dynamicColumns" :key="column.prop" :prop="column.prop"
@@ -101,7 +119,7 @@ const Data = reactive({
     { prop: 'regular', label: '正则匹配' },
     { prop: 'taskPriority', label: '优先级' },
     { prop: 'isExclusive', label: '是否互斥' },
-    { prop: 'stationName', label: '推送方式' },
+    // { prop: 'stationName', label: '推送方式' },
     { prop: 'pushTemplateMappingID', label: '模板' },
     { prop: 'remark', label: '备注' },
 

+ 26 - 6
admin.ui.plus-master/src/views/admin/statement/alarmRules/template.vue

@@ -7,18 +7,37 @@
                 <el-card class="mt8" shadow="hover">
                     <el-form :model="Data.Filter" @submit.stop.prevent>
                         <el-form-item prop="name" style="width: 100%">
-                            <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
+                            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
                                 <el-form-item label="模板名称">
                                     <el-input v-model="Data.time1" placeholder="请输入模板名称" clearable></el-input>
                                 </el-form-item>
                             </el-col>
+                            <el-col :xs="24" :sm="14" :md="10" :lg="8" :xl="6" class="mb20">
+                              <el-form-item label="状态">
+                                  <el-select  placeholder="请选择上传状态">
+                                   <el-option label="所有" :value="''"></el-option>
+                                   <el-option label="正常" :value="''"></el-option>
+                                   <el-option label="未授权" :value="''"></el-option>
+                                 </el-select>
+                             </el-form-item>
+                           </el-col>
+                           <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+                <el-form-item label="模板类型">
+                  <el-select placeholder="请选择模板类型类型">
+                    <el-option label="所有" :value="''"></el-option>
+                    <el-option label="电子邮箱" :value="''"></el-option>
+                    <el-option label="微信" :value="''"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
                         </el-form-item>
-                    </el-form>
 
+                    </el-form>
+ 
                     <hr>
 
                     <!-- 按钮 -->
-                    <el-row justify="space-between" class="submit-button">
+                    <el-row justify="space-between" class="submit-button"  style="margin-bottom: -9px;">
                         <el-row>
                             <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
                             <el-button type="primary" icon="ele-RefreshRight" @click="onReset"> 重置 </el-button>
@@ -31,11 +50,13 @@
             </el-col>
             <!--表格-->
             <el-col :xs="24">
-                <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
+                <el-card style="height: 55vh" class="my-fill mt8" shadow="hover">
                     <el-table ref="multipleTableRef" v-loading="Data.loading" stripe :data="Data.tableModel"
                         row-key="id" style="width: 100%">
                         <el-table-column v-for="column in Data.dynamicColumns" :key="column.prop" :prop="column.prop"
                             :label="column.label" />
+                            <el-table-column prop="creator" label="添加人" />
+                            <el-table-column prop="createTime" label="添加时间" />
                         <el-table-column label="状态" width="80" align="center" show-overflow-tooltip>
                             <template #default="{ row }">
                                 <el-tag type="success" v-if="row.isActive">启用</el-tag>
@@ -45,7 +66,7 @@
 
                         <!-- 操作 -->
                         <el-table-column label="操作" fixed="right" header-align="center" align="center"
-                            class="right-operation" width="100">
+                            class="right-operation" width="100" >
                             <template #default="{ row }">
                                 <el-link class="my-el-link mr12 ml12" @click="addTemplate(row)" type="primary"
                                     icon="ele-Edit" :underline="false" target="_blank">编辑</el-link>
@@ -100,7 +121,6 @@ const Data = reactive({
         { prop: 'templateName', label: '模板名称' },
         { prop: 'templateType', label: '模板类型' },
         { prop: 'templateContent', label: '模板内容' },
-
     ],
     /**分页总数 */
     total: 0,

+ 2 - 2
admin.ui.plus-master/src/views/admin/statement/associationManagement/index.vue

@@ -17,7 +17,7 @@
           <hr>
 
           <!-- 按钮 -->
-          <el-row justify="space-between" class="submit-button">
+          <el-row justify="space-between" class="submit-button" style="margin-bottom:-7px">
             <el-row>
               <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
               <el-button type="primary" icon="ele-RefreshRight" @click="onReset"> 重置 </el-button>
@@ -27,7 +27,7 @@
       </el-col>
       <!--表格-->
       <el-col :xs="24">
-        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
+        <el-card style="height: 55vh" class="my-fill mt8" shadow="hover">
           <el-table ref="multipleTableRef" v-loading="Data.loading" stripe :data="Data.tableModel" row-key="id"
             style="width: 100%">
             <el-table-column v-for="column in Data.dynamicColumns" :key="column.prop" :prop="column.prop"

+ 2 - 2
admin.ui.plus-master/src/views/admin/statement/gasStationManagement/index.vue

@@ -22,7 +22,7 @@
           <hr>
 
           <!-- 按钮 -->
-          <el-row justify="space-between" class="submit-button">
+          <el-row justify="space-between" class="submit-button" style="margin-bottom:-7px">
             <el-row>
               <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
               <el-button type="primary" icon="ele-RefreshRight" @click="onReset"> 重置 </el-button>
@@ -32,7 +32,7 @@
       </el-col>
       <!--表格-->
       <el-col :xs="24">
-        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
+        <el-card style="height: 55vh" class="my-fill mt8" shadow="hover">
           <el-table ref="multipleTableRef" v-loading="Data.loading" stripe :data="Data.tableModel" row-key="id"
             style="width: 100%">
             <el-table-column v-for="column in Data.dynamicColumns" :key="column.prop" :prop="column.prop"

+ 2 - 2
admin.ui.plus-master/src/views/admin/statement/listOfOilEngines/index.vue

@@ -43,7 +43,7 @@
           <hr>
 
           <!-- 按钮 -->
-          <el-row justify="space-between" class="submit-button">
+          <el-row justify="space-between" class="submit-button" style="margin-bottom:-6px">
             <el-row>
               <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
               <el-button type="primary" icon="ele-RefreshRight" @click="onReset"> 重置 </el-button>
@@ -53,7 +53,7 @@
       </el-col>
       <!--列表-->
       <el-col :xs="24">
-        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
+        <el-card style="height: 46vh" class="my-fill mt8" shadow="hover">
           <el-table v-loading="oilEngineData.loading" stripe :data="oilEngineData.tableModel" row-key="id"
             style="width: 100%">
             <el-table-column prop="name" label="油机号" />

+ 3 - 3
admin.ui.plus-master/src/views/admin/statement/partsManagement/oilGun/index.vue

@@ -31,7 +31,7 @@
               <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
                 <el-form-item label="出厂时间">
                   <el-date-picker v-model="Data.time1" type="datetimerange" value-format="YYYY-MM-DD HH:mm:ss"
-                    range-separator="To" start-placeholder="Start date" end-placeholder="End date" />
+                    range-separator="To" start-placeholder="开始日期" end-placeholder="结束日期" />
                 </el-form-item>
               </el-col>
             </el-form-item>
@@ -40,7 +40,7 @@
           <hr>
 
           <!-- 按钮 -->
-          <el-row justify="space-between" class="submit-button">
+          <el-row justify="space-between" class="submit-button" style="margin-bottom:-6px">
             <el-row>
               <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
               <el-button type="primary" icon="ele-RefreshRight" @click="onReset"> 重置 </el-button>
@@ -50,7 +50,7 @@
       </el-col>
       <!--表格-->
       <el-col :xs="24">
-        <el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
+        <el-card style="height: 47vh" class="my-fill mt8" shadow="hover">
           <el-table ref="multipleTableRef" v-loading="Data.loading" stripe :data="Data.tableModel" row-key="id"
             style="width: 100%">
             <el-table-column v-for="column in Data.dynamicColumns" :key="column.prop" :prop="column.prop"

+ 5 - 4
admin.ui.plus-master/src/views/admin/workbench/index.vue

@@ -645,7 +645,7 @@ watch(
 <style scoped lang="scss">
 $homeNavLengh: 8;
 .home-container {
-  // overflow: hidden;
+  overflow: hidden;
   max-height:100%;
   .home-card-one,
   .home-card-two,
@@ -695,9 +695,9 @@ $homeNavLengh: 8;
   .home-card-three {
     .home-card-item {
       // height: 600px;
-      min-height: 59vh;
+      height: 60vh;
       width: 100%;
-      // overflow: hidden;
+      overflow: hidden;
       .home-monitor {
         height: 100%;
         .flex-warp-item {
@@ -733,7 +733,8 @@ $homeNavLengh: 8;
   }
   .home-card-one{
     .home-card-item{
-      min-height: 20vh;
+      overflow: hidden;
+      height: 16vh;
     }
   }
 

+ 2 - 2
admin.ui.plus-master/src/views/example/codeGeneration/index.vue

@@ -446,8 +446,8 @@ const onsubmit=()=>{
                     type="datetimerange"
                     value-format="YYYY-MM-DD HH:mm:ss"
                     range-separator="To"
-                    start-placeholder="Start date"
-                    end-placeholder="End date"
+                    start-placeholder="开始日期"
+                    end-placeholder="结束日期"
                   />
                 </el-form-item>
               </el-col>`