Commit b24756926e84d54d3a4f88fe7961e668507ac54e

Authored by guzijian
1 parent 84e0dee7

feat: 新增查询字段,场地查询

src/api/equipment/equipment.js
@@ -60,3 +60,10 @@ export function getEquipmentAll(params) { @@ -60,3 +60,10 @@ export function getEquipmentAll(params) {
60 params 60 params
61 }) 61 })
62 } 62 }
  63 +
  64 +export function getEquipmentSiteName() {
  65 + return request({
  66 + url: '/equipment/equipment/getEquipmentSiteName',
  67 + method: 'get'
  68 + })
  69 +}
src/views/in/in/index.vue
@@ -2,30 +2,35 @@ @@ -2,30 +2,35 @@
2 <div class="app-container"> 2 <div class="app-container">
3 <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch"> 3 <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
4 <el-form-item label="工号" prop="jobCode"> 4 <el-form-item label="工号" prop="jobCode">
5 - <el-input v-model="queryParams.jobCode" placeholder="请输入工号" clearable @keyup.enter="handleQuery" /> 5 + <el-input style="width: 120px;" v-model="queryParams.jobCode" placeholder="请输入工号" clearable
  6 + @keyup.enter="handleQuery" />
6 </el-form-item> 7 </el-form-item>
7 <el-form-item label="打卡结果" prop="status"> 8 <el-form-item label="打卡结果" prop="status">
8 - <el-select v-model="queryParams.status" placeholder="请选择打卡结果" clearable> 9 + <el-select style="width: 120px;" v-model="queryParams.status" placeholder="打卡结果" clearable>
9 <el-option v-for="dict in sign_in" :key="dict.value" :label="dict.label" :value="dict.value" /> 10 <el-option v-for="dict in sign_in" :key="dict.value" :label="dict.label" :value="dict.value" />
10 </el-select> 11 </el-select>
11 </el-form-item> 12 </el-form-item>
12 <el-form-item label="酒精测试" prop="alcoholFlag"> 13 <el-form-item label="酒精测试" prop="alcoholFlag">
13 - <el-select v-model="queryParams.alcoholFlag" placeholder="请选择酒精测试" clearable> 14 + <el-select style="width: 120px;" v-model="queryParams.alcoholFlag" placeholder="是否酒测" clearable>
14 <el-option v-for="dict in alcohol" :key="dict.value" :label="dict.label" :value="dict.value" /> 15 <el-option v-for="dict in alcohol" :key="dict.value" :label="dict.label" :value="dict.value" />
15 </el-select> 16 </el-select>
16 </el-form-item> 17 </el-form-item>
17 <el-form-item label="签到签退" prop="type"> 18 <el-form-item label="签到签退" prop="type">
18 - <el-select v-model="queryParams.type" placeholder="请选择签到签退" clearable> 19 + <el-select style="width: 120px;" v-model="queryParams.type" placeholder="签到签退" clearable>
19 <el-option v-for="dict in sign_type" :key="dict.value" :label="dict.label" :value="dict.value" /> 20 <el-option v-for="dict in sign_type" :key="dict.value" :label="dict.label" :value="dict.value" />
20 </el-select> 21 </el-select>
21 </el-form-item> 22 </el-form-item>
22 <el-form-item label="打卡日期" prop="date"> 23 <el-form-item label="打卡日期" prop="date">
23 <!-- 日期 --> 24 <!-- 日期 -->
24 - <el-date-picker v-model="queryParams.date" type="date" align="right" unlink-panels format="YYYY/MM/DD"  
25 - value-format="YYYY-MM-DD"> 25 + <el-date-picker style="width: 140px;" v-model="queryParams.date" type="date" align="right" unlink-panels
  26 + format="YYYY/MM/DD" value-format="YYYY-MM-DD">
26 </el-date-picker> 27 </el-date-picker>
27 </el-form-item> 28 </el-form-item>
28 - 29 + <el-form-item label="打卡场地" prop="date">
  30 + <el-select style="width: 120px;" filterable v-model="queryParams.siteName" placeholder="打卡场地" clearable>
  31 + <el-option v-for="dict in siteNameList" :key="dict" :label="dict" :value="dict" />
  32 + </el-select>
  33 + </el-form-item>
29 <el-form-item> 34 <el-form-item>
30 <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> 35 <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
31 <el-button icon="Refresh" @click="resetQuery">重置</el-button> 36 <el-button icon="Refresh" @click="resetQuery">重置</el-button>
@@ -34,7 +39,8 @@ @@ -34,7 +39,8 @@
34 39
35 <el-row :gutter="10" class="mb8"> 40 <el-row :gutter="10" class="mb8">
36 <el-col :span="1.5"> 41 <el-col :span="1.5">
37 - <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['in:in:export']">导出</el-button> 42 + <el-button type="warning" plain icon="Download" @click="handleExport"
  43 + v-hasPermi="['in:in:export']">导出</el-button>
38 </el-col> 44 </el-col>
39 <el-col :span="1.5"> 45 <el-col :span="1.5">
40 <el-button type="warning" plain icon="CirclePlus" @click="handleAdd" 46 <el-button type="warning" plain icon="CirclePlus" @click="handleAdd"
@@ -79,7 +85,6 @@ @@ -79,7 +85,6 @@
79 <el-table-column label="备注" align="center" prop="remark" width="300" /> 85 <el-table-column label="备注" align="center" prop="remark" width="300" />
80 <el-table-column label="打卡场地" align="center" prop="siteName" width="130" /> 86 <el-table-column label="打卡场地" align="center" prop="siteName" width="130" />
81 <el-table-column label="打卡时间" align="center" prop="createTime" width="160" /> 87 <el-table-column label="打卡时间" align="center" prop="createTime" width="160" />
82 -  
83 <el-table-column label="打卡操作" align="center" prop="singnIn" width="320"> 88 <el-table-column label="打卡操作" align="center" prop="singnIn" width="320">
84 <template #default="scope"> 89 <template #default="scope">
85 <dict-tag :options="sys_status" :value="scope.row.singnIn ? scope.row.singnIn.split(',') : []" /> 90 <dict-tag :options="sys_status" :value="scope.row.singnIn ? scope.row.singnIn.split(',') : []" />
@@ -87,8 +92,8 @@ @@ -87,8 +92,8 @@
87 </el-table-column> 92 </el-table-column>
88 </el-table> 93 </el-table>
89 94
90 - <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"  
91 - @pagination="getList" /> 95 + <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
  96 + v-model:limit="queryParams.pageSize" @pagination="getList" />
92 97
93 <!-- 添加或修改签到对话框 --> 98 <!-- 添加或修改签到对话框 -->
94 <el-dialog :title="title" v-model="open" width="500px"> 99 <el-dialog :title="title" v-model="open" width="500px">
@@ -108,13 +113,14 @@ @@ -108,13 +113,14 @@
108 </el-form-item> 113 </el-form-item>
109 <el-form-item label="酒精测试" prop="alcoholFlag"> 114 <el-form-item label="酒精测试" prop="alcoholFlag">
110 <el-radio-group v-model="form.alcoholFlag"> 115 <el-radio-group v-model="form.alcoholFlag">
111 - <el-radio v-for="dict in alcohol" :key="dict.value" :label="parseInt(dict.value)">{{ dict.label }}</el-radio> 116 + <el-radio v-for="dict in alcohol" :key="dict.value" :label="parseInt(dict.value)">{{ dict.label
  117 + }}</el-radio>
112 </el-radio-group> 118 </el-radio-group>
113 </el-form-item> 119 </el-form-item>
114 <el-form-item label="签到签退" prop="type"> 120 <el-form-item label="签到签退" prop="type">
115 <el-radio-group v-model="form.type"> 121 <el-radio-group v-model="form.type">
116 <el-radio v-for="dict in sign_type" :key="dict.value" :label="parseInt(dict.value)">{{ dict.label 122 <el-radio v-for="dict in sign_type" :key="dict.value" :label="parseInt(dict.value)">{{ dict.label
117 - }}</el-radio> 123 + }}</el-radio>
118 </el-radio-group> 124 </el-radio-group>
119 </el-form-item> 125 </el-form-item>
120 <el-form-item label="补签日期" prop="date"> 126 <el-form-item label="补签日期" prop="date">
@@ -140,14 +146,14 @@ @@ -140,14 +146,14 @@
140 146
141 <script setup name="In"> 147 <script setup name="In">
142 import { getPeopleInfo } from '@/api/attendance/attendance'; 148 import { getPeopleInfo } from '@/api/attendance/attendance';
143 -import { getEquipmentAll } from "@/api/equipment/equipment"; 149 +import { getEquipmentAll, getEquipmentSiteName } from "@/api/equipment/equipment";
144 import { delIn, getIn, listIn, supplementarySignature } from "@/api/in/in"; 150 import { delIn, getIn, listIn, supplementarySignature } from "@/api/in/in";
145 import { getReportDetail } from "@/api/report/report.js"; 151 import { getReportDetail } from "@/api/report/report.js";
146 import moment from "moment"; 152 import moment from "moment";
147 import { computed, ref, watch } from "vue"; 153 import { computed, ref, watch } from "vue";
148 const { proxy } = getCurrentInstance(); 154 const { proxy } = getCurrentInstance();
149 const { sys_status, sign_type, sign_in, alcohol } = proxy.useDict('sys_status', 'sign_type', 'sign_in', 'alcohol'); 155 const { sys_status, sign_type, sign_in, alcohol } = proxy.useDict('sys_status', 'sign_type', 'sign_in', 'alcohol');
150 - 156 +const siteNameList = ref([])
151 const inList = ref([]); 157 const inList = ref([]);
152 const signLoading = ref(false) 158 const signLoading = ref(false)
153 const open = ref(false); 159 const open = ref(false);
@@ -219,6 +225,9 @@ onBeforeUnmount(() =&gt; { @@ -219,6 +225,9 @@ onBeforeUnmount(() =&gt; {
219 clearInterval(timer.value) 225 clearInterval(timer.value)
220 }) 226 })
221 onMounted(() => { 227 onMounted(() => {
  228 + getEquipmentSiteName().then((res) => {
  229 + siteNameList.value = res.data
  230 + })
222 queryParams.value.date = moment().format("YYYY-MM-DD"); 231 queryParams.value.date = moment().format("YYYY-MM-DD");
223 getList(); 232 getList();
224 timer.value = setInterval(() => { 233 timer.value = setInterval(() => {