Commit 16839a52947b2ac056fbfca7b5eb139d3de1510e

Authored by liujun001
1 parent 24fb111f

临港巴士系统

.env.devTest 0 → 100644
  1 +# 页面标题
  2 +VITE_APP_TITLE = 临港巴士岗前检测系统
  3 +
  4 +# 测试
  5 +VITE_APP_ENV = 'devTest'
  6 +
  7 +# 签到机系统/测试
  8 +VITE_APP_BASE_API = 'http://192.168.169.100:8100'
  9 +# VITE_APP_BASE_API = 'http://101.95.136.202:8100'
  10 +
  11 +# 是否在打包时开启压缩,支持 gzip 和 brotli
  12 +VITE_BUILD_COMPRESS = gzip
.env.development
1 # 页面标题 1 # 页面标题
2 -VITE_APP_TITLE = 青浦巴士岗前检测系统 2 +VITE_APP_TITLE = 临港巴士岗前检测系统
3 3
4 # 开发环境配置 4 # 开发环境配置
5 VITE_APP_ENV = 'development' 5 VITE_APP_ENV = 'development'
.env.production
1 # 页面标题 1 # 页面标题
2 -VITE_APP_TITLE = "青浦巴士岗前检测系统" 2 +VITE_APP_TITLE = "临港巴士岗前检测系统"
3 3
4 # 生产环境配置 4 # 生产环境配置
5 VITE_APP_ENV = 'production' 5 VITE_APP_ENV = 'production'
.env.staging
1 # 页面标题 1 # 页面标题
2 -VITE_APP_TITLE = 青浦巴士岗前检测系统 2 +VITE_APP_TITLE = 临港巴士岗前检测系统
3 3
4 # 测试 4 # 测试
5 VITE_APP_ENV = 'staging' 5 VITE_APP_ENV = 'staging'
index.html
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" 9 content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
10 /> 10 />
11 <link rel="icon" href="public/favicon.ico" /> 11 <link rel="icon" href="public/favicon.ico" />
12 - <title>青浦巴士岗前检测系统</title> 12 + <title>临港巴士岗前检测系统</title>
13 <!--[if lt IE 11 13 <!--[if lt IE 11
14 ]><script> 14 ]><script>
15 window.location.href = "/html/ie.html"; 15 window.location.href = "/html/ie.html";
package.json
1 { 1 {
2 "name": "bsth", 2 "name": "bsth",
3 "version": "3.8.5", 3 "version": "3.8.5",
4 - "description": "青浦巴士岗前检测系统", 4 + "description": "临港巴士岗前检测系统",
5 "author": "bsth", 5 "author": "bsth",
6 "license": "MIT", 6 "license": "MIT",
7 "scripts": { 7 "scripts": {
8 "dev": "vite", 8 "dev": "vite",
  9 + "dev:devTest": "vite --mode devTest",
9 "build:prod": "vite build --mode production", 10 "build:prod": "vite build --mode production",
10 "build:stage": "vite build --mode staging", 11 "build:stage": "vite build --mode staging",
  12 + "build:devTest": "vite build --mode devTest",
11 "preview": "vite preview" 13 "preview": "vite preview"
12 }, 14 },
13 "repository": { 15 "repository": {
src/api/system/dict/data.js
@@ -25,6 +25,13 @@ export function getDicts(dictType) { @@ -25,6 +25,13 @@ export function getDicts(dictType) {
25 }) 25 })
26 } 26 }
27 27
  28 +export function getDictsDelFlag(){
  29 + return request({
  30 + url: '/system/dict/data/type/del/flag',
  31 + method: 'get'
  32 + })
  33 +}
  34 +
28 // 新增字典数据 35 // 新增字典数据
29 export function addData(data) { 36 export function addData(data) {
30 return request({ 37 return request({
src/layout/components/Sidebar/Logo.vue
@@ -30,7 +30,7 @@ defineProps({ @@ -30,7 +30,7 @@ defineProps({
30 } 30 }
31 }) 31 })
32 32
33 -const title = ref('青浦巴士岗前检测系统'); 33 +const title = ref('临港巴士岗前检测系统');
34 const settingsStore = useSettingsStore(); 34 const settingsStore = useSettingsStore();
35 const sideTheme = computed(() => settingsStore.sideTheme); 35 const sideTheme = computed(() => settingsStore.sideTheme);
36 </script> 36 </script>
src/views/equipment/equipment_keyinfo/keyInfo.vue
@@ -2,21 +2,17 @@ @@ -2,21 +2,17 @@
2 <div class="app-container"> 2 <div class="app-container">
3 <div class="query-from"> 3 <div class="query-from">
4 <el-form :inline="true" :queryOfKeyInfo="queryOfKeyInfo" :model="queryParamsOfKeyInfo" class="demo-form-inline"> 4 <el-form :inline="true" :queryOfKeyInfo="queryOfKeyInfo" :model="queryParamsOfKeyInfo" class="demo-form-inline">
5 - <el-form-item label="名称" props="name">  
6 - <el-input style="width: 120px;" v-model="queryParamsOfKeyInfo.name" placeholder="请输入名称(如:XX车的钥匙)" clearable  
7 - @keyup.enter="handleQueryOfKeyInfo" /> 5 + <el-form-item label="钥匙编码" props="keyCode">
  6 + <el-form-item label="钥匙编码" props="keyCode">
  7 + <el-input style="width: 120px;" v-model="queryParamsOfKeyInfo.keyCode" placeholder="请输入钥匙编码" clearable @keyup.enter="handleQueryOfKeyInfo" />
8 </el-form-item> 8 </el-form-item>
  9 + </el-form-item>
  10 +
  11 + <el-form-item label="车牌号" props="plateNum">
9 <el-form-item label="车牌号" props="plateNum"> 12 <el-form-item label="车牌号" props="plateNum">
10 - <el-select v-model="queryParamsOfKeyInfo.plateNum" value-on-clear>  
11 - <el-option v-for="item in carNos" :key="item.plateNum" :label="item.plateNum" :value="item.plateNum" />  
12 - </el-select> 13 + <el-input style="width: 120px;" v-model="queryParamsOfKeyInfo.plateNum" placeholder="请输入车牌号" clearable @keyup.enter="handleQueryOfKeyInfo" />
13 </el-form-item> 14 </el-form-item>
14 -  
15 - <el-form-item label="所在设备" prop="deviceId">  
16 - <el-select v-model="queryParamsOfKeyInfo.deviceId" value-on-clear>  
17 - <el-option v-for="item in deviceIds" :key="item.id" :label="item.siteName" :value="item.id" />  
18 - </el-select>  
19 - </el-form-item> 15 + </el-form-item>
20 16
21 <el-form-item> 17 <el-form-item>
22 <el-button type="primary" icon="Search" @click="handleQueryOfKeyInfo">搜索</el-button> 18 <el-button type="primary" icon="Search" @click="handleQueryOfKeyInfo">搜索</el-button>
@@ -33,31 +29,27 @@ @@ -33,31 +29,27 @@
33 <el-button type="success" plain icon="Edit" :disabled="singleKeyInfo" @click="handleUpdateOfKeyInfo" v-hasPermi="['key:info:update']">修改</el-button> 29 <el-button type="success" plain icon="Edit" :disabled="singleKeyInfo" @click="handleUpdateOfKeyInfo" v-hasPermi="['key:info:update']">修改</el-button>
34 30
35 </el-col> 31 </el-col>
36 - <el-col :span="1.5">  
37 - <el-button type="danger" plain icon="Delete" :disabled=multipleKeyInfo @click="handleDeleteOfKeyInfo" v-hasPermi="['key:info:del']">删除</el-button>  
38 -  
39 - </el-col>  
40 - <el-col :span="1.5">  
41 - <el-button type="warning" plain icon="Download" @click="handleExportOfKeyInfo" v-hasPermi="['key:info:export']">导出</el-button>  
42 -  
43 - </el-col> 32 +
  33 +
44 <right-toolbar v-model:showSearch="showSearchOfKeyInfo" @queryTable="getListOfKeyInfo"></right-toolbar> 34 <right-toolbar v-model:showSearch="showSearchOfKeyInfo" @queryTable="getListOfKeyInfo"></right-toolbar>
45 </el-row> 35 </el-row>
46 </div> 36 </div>
47 37
48 <el-table v-loading="loadingOfKeyInfo" :data="listOfKeyInfo" @selection-change="handleSelectionChangeOfKeyInfo" border max-height="600" 38 <el-table v-loading="loadingOfKeyInfo" :data="listOfKeyInfo" @selection-change="handleSelectionChangeOfKeyInfo" border max-height="600"
49 - :default-expand-all="false" :row-class-name="tableRowClassName" @sort-change="sortChangeFunction"> 39 + :default-expand-all="false" :row-class-name="tableRowClassName" @sort-change="sortChangeOfKeyInfo">
50 <el-table-column type="selection" width="50" align="center" /> 40 <el-table-column type="selection" width="50" align="center" />
51 <el-table-column label="序号" type="index" width="60" align="center"> 41 <el-table-column label="序号" type="index" width="60" align="center">
52 <template #default="scope"> 42 <template #default="scope">
53 {{ (queryParamsOfKeyInfo.pageNum - 1) * queryParamsOfKeyInfo.pageSize + scope.$index + 1 }} 43 {{ (queryParamsOfKeyInfo.pageNum - 1) * queryParamsOfKeyInfo.pageSize + scope.$index + 1 }}
54 </template> 44 </template>
55 </el-table-column> 45 </el-table-column>
56 - <el-table-column label="名称" align="center" prop="name" sortable />  
57 - <el-table-column label="状态" align="center" prop="status" sortable />  
58 - <el-table-column label="车牌号" align="center" prop="plateNum" sortable />  
59 - <el-table-column label="所在设备" align="center" prop="deviceLabel" sortable />  
60 46
  47 + <el-table-column label="钥匙编码" align="center" prop="keyCode" sortable />
  48 + <el-table-column label="车牌号" align="center" prop="plateNum" sortable />
  49 + <el-table-column label="名称" align="center" prop="name" sortable />
  50 + <el-table-column label="是否删除" align="center" prop="delFlagStr" sortable >
  51 +
  52 + </el-table-column>
61 <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="160"> 53 <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="160">
62 <template #default="scope"> 54 <template #default="scope">
63 <el-button type="success" plain icon="Edit" :disabled="singleKeyInfo" @click="handleUpdateOfKeyInfo(scope.row)" v-hasPermi="['key:info:update']">修改</el-button> 55 <el-button type="success" plain icon="Edit" :disabled="singleKeyInfo" @click="handleUpdateOfKeyInfo(scope.row)" v-hasPermi="['key:info:update']">修改</el-button>
@@ -71,22 +63,23 @@ @@ -71,22 +63,23 @@
71 63
72 <el-dialog :title="titleOfKeyInfo" v-model="openOfKeyInfo" width="500px" append-to-body> 64 <el-dialog :title="titleOfKeyInfo" v-model="openOfKeyInfo" width="500px" append-to-body>
73 <el-form :model="formOfKeyInfo" ref="rulesOfKeyInfo" label-width="80px" :rules="checkRulesOfKeyInfo"> 65 <el-form :model="formOfKeyInfo" ref="rulesOfKeyInfo" label-width="80px" :rules="checkRulesOfKeyInfo">
74 - 66 + <el-form-item label="钥匙编码" prop="keyCode">
  67 + <el-input el-input="input" v-model="formOfKeyInfo.keyCode" placeholder="请输入钥匙编码" />
  68 + </el-form-item>
  69 +
  70 + <el-form-item label="车牌号" prop="plateNum">
  71 + <el-input el-input="input" v-model="formOfKeyInfo.plateNum" placeholder="请输入车牌号" />
  72 + </el-form-item>
  73 +
75 <el-form-item label="名称" prop="name"> 74 <el-form-item label="名称" prop="name">
76 <el-input el-input="input" v-model="formOfKeyInfo.name" placeholder="请输入名称(如:XX车的钥匙)" /> 75 <el-input el-input="input" v-model="formOfKeyInfo.name" placeholder="请输入名称(如:XX车的钥匙)" />
77 </el-form-item> 76 </el-form-item>
78 - <el-form-item label="车牌号" props="plateNum">  
79 - <el-select v-model="formOfKeyInfo.plateNum" >  
80 - <el-option v-for="item in carNos" :key="item.plateNum" :label="item.plateNum" :value="item.plateNum" /> 77 +
  78 + <el-form-item label="是否删除" prop="delFlag">
  79 + <el-select v-model="formOfKeyInfo.delFlag" placeholder="请选择" style="width: 380px;">
  80 + <el-option v-for="dict in deleteFlags" :key="dict.value" :label="dict.dictLabel" :value="dict.dictValue"></el-option>
81 </el-select> 81 </el-select>
82 </el-form-item> 82 </el-form-item>
83 - <el-form-item label="所在设备" prop="deviceId">{{formOfKeyInfo.deviceId}}  
84 - <el-select v-model="formOfKeyInfo.deviceId" >  
85 - <el-option v-for="item in deviceIds" :key="item.id" :label="item.siteName" :value="item.id" />  
86 - </el-select>  
87 - </el-form-item>  
88 -  
89 -  
90 </el-form> 83 </el-form>
91 84
92 <template #footer> 85 <template #footer>
@@ -101,10 +94,8 @@ @@ -101,10 +94,8 @@
101 94
102 95
103 <script setup name="KeyInfo"> 96 <script setup name="KeyInfo">
  97 + import { getDicts,getDictsDelFlag } from '@/api/system/dict/data';
104 import { listLimitOfKeyInfo, viewOfKeyInfo, addOfKeyInfo, updateOfKeyInfo,updateStatusOfKeyInfo,deleteOfKeyInfo } from "@/api/keyInfo/keyInfo"; 98 import { listLimitOfKeyInfo, viewOfKeyInfo, addOfKeyInfo, updateOfKeyInfo,updateStatusOfKeyInfo,deleteOfKeyInfo } from "@/api/keyInfo/keyInfo";
105 - import { selectListOfCarInfo } from "@/api/carInfo/carInfo";  
106 - import { selectList } from "@/api/equipment/equipment";  
107 -  
108 const { proxy } = getCurrentInstance(); 99 const { proxy } = getCurrentInstance();
109 100
110 const listOfKeyInfo = ref([]); 101 const listOfKeyInfo = ref([]);
@@ -115,8 +106,6 @@ @@ -115,8 +106,6 @@
115 const idsOfKeyInfo = ref([]); 106 const idsOfKeyInfo = ref([]);
116 const singleKeyInfo = ref(true); 107 const singleKeyInfo = ref(true);
117 const multipleKeyInfo = ref(true); 108 const multipleKeyInfo = ref(true);
118 - const deviceIds=ref([]);  
119 - const carNos=ref([]);  
120 109
121 110
122 const pageOfKeyInfo = ref(1) //第几页 111 const pageOfKeyInfo = ref(1) //第几页
@@ -125,8 +114,10 @@ @@ -125,8 +114,10 @@
125 const pageSizesOfKeyInfo = [5, 10, 20, 50]; //每页显示多少条 114 const pageSizesOfKeyInfo = [5, 10, 20, 50]; //每页显示多少条
126 const currentPageOfKeyInfo = ref(1) // 当前页 115 const currentPageOfKeyInfo = ref(1) // 当前页
127 const globalRowOfKeyInfo = ref(null) // 当前行数据 116 const globalRowOfKeyInfo = ref(null) // 当前行数据
128 - 117 +
129 const changeFlagOfKeyInfo = ref(true) 118 const changeFlagOfKeyInfo = ref(true)
  119 + const deleteFlags = ref([])
  120 +
130 121
131 const dataOfKeyInfo = reactive({ 122 const dataOfKeyInfo = reactive({
132 formOfKeyInfo: {}, 123 formOfKeyInfo: {},
@@ -141,9 +132,8 @@ @@ -141,9 +132,8 @@
141 createTime : null, 132 createTime : null,
142 updateby : null, 133 updateby : null,
143 updateTime : null, 134 updateTime : null,
144 - yardId : null,  
145 - deviceId : null,  
146 - cabinetno : null, 135 + plateNum : null,
  136 + keyCode : null,
147 137
148 }, 138 },
149 checkRulesOfKeyInfo: { 139 checkRulesOfKeyInfo: {
@@ -159,26 +149,11 @@ @@ -159,26 +149,11 @@
159 delFlag : [ 149 delFlag : [
160 { required: true, message: "是否删除", trigger: "blur" } 150 { required: true, message: "是否删除", trigger: "blur" }
161 ], 151 ],
162 - createBy : [  
163 - { required: true, message: "创建人员", trigger: "blur" } 152 + plateNum : [
  153 + { required: true, message: "车牌号", trigger: "blur" }
164 ], 154 ],
165 - createTime : [  
166 - { required: true, message: "创建时间", trigger: "blur" }  
167 - ],  
168 - updateby : [  
169 - { required: true, message: "修改人员", trigger: "blur" }  
170 - ],  
171 - updateTime : [  
172 - { required: true, message: "修改时间", trigger: "blur" }  
173 - ],  
174 - yardId : [  
175 - { required: true, message: "钥匙所在场站ID", trigger: "blur" }  
176 - ],  
177 - deviceId : [  
178 - { required: true, message: "钥匙锁在的设备ID", trigger: "blur" }  
179 - ],  
180 - cabinetno : [  
181 - { required: true, message: "钥匙所在的位置", trigger: "blur" } 155 + keyCode : [
  156 + { required: true, message: "钥匙编码", trigger: "blur" }
182 ], 157 ],
183 } 158 }
184 }); 159 });
@@ -191,17 +166,25 @@ @@ -191,17 +166,25 @@
191 listLimitOfKeyInfo(queryParamsOfKeyInfo.value,queryParamsOfKeyInfo.value.pageNum,queryParamsOfKeyInfo.value.pageSize).then(response => { 166 listLimitOfKeyInfo(queryParamsOfKeyInfo.value,queryParamsOfKeyInfo.value.pageNum,queryParamsOfKeyInfo.value.pageSize).then(response => {
192 listOfKeyInfo.value = response.records; 167 listOfKeyInfo.value = response.records;
193 totalOfKeyInfo.value = response.total; 168 totalOfKeyInfo.value = response.total;
194 - loadingOfKeyInfo.value = false; 169 + deleteFlagsFunction(function(res){
  170 + loadingOfKeyInfo.value = false;
  171 + });
  172 +
195 }); 173 });
196 } 174 }
197 175
198 - function getSelectListOfCarInfo(){  
199 - selectListOfCarInfo({"status":1}).then(response=>{  
200 - carNos.value=response.data; 176 + function deleteFlagsFunction(fun){
  177 + getDictsDelFlag().then(response=>{
  178 + deleteFlags.value = response.data;
  179 +
  180 +
  181 + if(fun){
  182 + fun(response);
  183 + }
201 }); 184 });
202 } 185 }
203 -  
204 - function sortChangeFunction(data){ 186 + /**排序*/
  187 + function sortChangeOfKeyInfo(data){
205 queryParamsOfKeyInfo.value.order=data.order; 188 queryParamsOfKeyInfo.value.order=data.order;
206 queryParamsOfKeyInfo.value.prop=data.prop; 189 queryParamsOfKeyInfo.value.prop=data.prop;
207 getListOfKeyInfo(); 190 getListOfKeyInfo();
@@ -233,9 +216,8 @@ @@ -233,9 +216,8 @@
233 createTime : null, 216 createTime : null,
234 updateby : null, 217 updateby : null,
235 updateTime : null, 218 updateTime : null,
236 - yardId : null,  
237 - deviceId : null,  
238 - cabinetno : null, 219 + plateNum : null,
  220 + keyCode : null,
239 }; 221 };
240 proxy.resetForm("rulesOfKeyInfo"); 222 proxy.resetForm("rulesOfKeyInfo");
241 } 223 }
@@ -317,14 +299,6 @@ @@ -317,14 +299,6 @@
317 }, `KeyInfo_${new Date().getTime()}.xlsx`) 299 }, `KeyInfo_${new Date().getTime()}.xlsx`)
318 } 300 }
319 301
320 - function selectEquipment(){  
321 - selectList({"promise":4}).then(res=>{  
322 -  
323 - deviceIds.value=res.data;  
324 - })  
325 - }  
326 302
327 getListOfKeyInfo(); 303 getListOfKeyInfo();
328 - selectEquipment();  
329 - getSelectListOfCarInfo();  
330 </script> 304 </script>
331 \ No newline at end of file 305 \ No newline at end of file
src/views/home/index.vue
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 <div class="big-view-container-title"> 7 <div class="big-view-container-title">
8 <!-- 标题 --> 8 <!-- 标题 -->
9 <div class="big-view-container-box"> 9 <div class="big-view-container-box">
10 - 青浦巴士岗前检查 10 + 临港巴士岗前检查
11 </div> 11 </div>
12 <div class="big-view-container-time"> 12 <div class="big-view-container-time">
13 <text> 13 <text>
src/views/login.vue
1 <template> 1 <template>
2 <div class="login"> 2 <div class="login">
3 <el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form"> 3 <el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form">
4 - <h3 class="title">青浦巴士岗前检测系统</h3> 4 + <h3 class="title">临港巴士岗前检测系统</h3>
5 <el-form-item prop="username"> 5 <el-form-item prop="username">
6 <el-input v-model="loginForm.username" type="text" size="large" auto-complete="off" placeholder="账号"> 6 <el-input v-model="loginForm.username" type="text" size="large" auto-complete="off" placeholder="账号">
7 <template #prefix><svg-icon icon-class="user" class="el-input__icon input-icon" /></template> 7 <template #prefix><svg-icon icon-class="user" class="el-input__icon input-icon" /></template>
src/views/register.vue
1 <template> 1 <template>
2 <div class="register"> 2 <div class="register">
3 <el-form ref="registerRef" :model="registerForm" :rules="registerRules" class="register-form"> 3 <el-form ref="registerRef" :model="registerForm" :rules="registerRules" class="register-form">
4 - <h3 class="title">青浦巴士岗前检测系统</h3> 4 + <h3 class="title">临港巴士岗前检测系统</h3>
5 <el-form-item prop="username"> 5 <el-form-item prop="username">
6 <el-input v-model="registerForm.username" type="text" size="large" auto-complete="off" placeholder="账号"> 6 <el-input v-model="registerForm.username" type="text" size="large" auto-complete="off" placeholder="账号">
7 <template #prefix><svg-icon icon-class="user" class="el-input__icon input-icon" /></template> 7 <template #prefix><svg-icon icon-class="user" class="el-input__icon input-icon" /></template>