From 254899911b6ca9b2e6085060902990cff8c84ef0 Mon Sep 17 00:00:00 2001
From: clll <1320612696@qq.com>
Date: 星期五, 27 十月 2023 16:33:19 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes
---
CanadaMes-ui/src/api/rolePermission.js | 20
CanadaMes-ui/src/views/role/index.vue | 136 +++
CanadaMes-ui/vue.config.js | 2
CanadaMes-ui/src/views/home/index.vue | 1345 ++++++++++++++++++++++---------------------
CanadaMes-ui/src/views/user/index.vue | 2
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java | 12
CanadaMes-ui/src/layout/index.vue | 4
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java | 39
springboot-vue3/src/main/java/com/example/springboot/entity/Role.java | 3
springboot-vue3/pom.xml | 12
CanadaMes-ui/src/api/home.js | 8
springboot-vue3/src/main/java/com/example/springboot/controller/RoleController.java | 3
springboot-vue3/src/main/java/com/example/springboot/mapper/RolePermissionMapper.java | 21
CanadaMes-ui/src/img/xmjc.png | 0
springboot-vue3/src/main/java/com/example/springboot/controller/RolePermissionController.java | 187 ++++-
springboot-vue3/src/main/resources/application.properties | 4
CanadaMes-ui/src/lang/locales/en-US.json | 8
springboot-vue3/src/main/java/com/example/springboot/entity/RolePermission.java | 5
CanadaMes-ui/src/api/role.js | 8
19 files changed, 1,058 insertions(+), 761 deletions(-)
diff --git a/CanadaMes-ui/src/api/home.js b/CanadaMes-ui/src/api/home.js
index ac639c6..5f8aaad 100644
--- a/CanadaMes-ui/src/api/home.js
+++ b/CanadaMes-ui/src/api/home.js
@@ -123,3 +123,11 @@
data
})
}
+
+export function SelectGlass(orderid) {
+ return request({
+ url: '/home/SelectGlass?orderid=' + orderid,
+ method: 'post',
+ data:""
+ })
+}
diff --git a/CanadaMes-ui/src/api/role.js b/CanadaMes-ui/src/api/role.js
index 55da730..14527eb 100644
--- a/CanadaMes-ui/src/api/role.js
+++ b/CanadaMes-ui/src/api/role.js
@@ -13,7 +13,13 @@
})
}
-
+export function saveOrUpdate2(data) {
+ return request({
+ url: '/api/role/saveOrUpdate2',
+ method: 'post',
+ data
+ })
+}
/**
* 鏍规嵁id鍒犻櫎瑙掕壊
diff --git a/CanadaMes-ui/src/api/rolePermission.js b/CanadaMes-ui/src/api/rolePermission.js
index bf909d7..3a3e370 100644
--- a/CanadaMes-ui/src/api/rolePermission.js
+++ b/CanadaMes-ui/src/api/rolePermission.js
@@ -1,3 +1,7 @@
+
+
+
+
import request from "../utils/request";
/**
@@ -51,3 +55,19 @@
params: data
})
}
+
+export function getById2(data) {
+ return request({
+ url: '/api/rolePermission/getByRoleId',
+ method: 'get',
+ params: data
+ })
+}
+
+export function saveOrUpdate2(data) {
+ return request({
+ url: '/api/rolePermission/savePermissions',
+ method: 'post',
+ data
+ })
+}
\ No newline at end of file
diff --git a/CanadaMes-ui/src/img/xmjc.png b/CanadaMes-ui/src/img/xmjc.png
index 3a682f5..5935f14 100644
--- a/CanadaMes-ui/src/img/xmjc.png
+++ b/CanadaMes-ui/src/img/xmjc.png
Binary files differ
diff --git a/CanadaMes-ui/src/lang/locales/en-US.json b/CanadaMes-ui/src/lang/locales/en-US.json
index 60e56b0..994ccc2 100644
--- a/CanadaMes-ui/src/lang/locales/en-US.json
+++ b/CanadaMes-ui/src/lang/locales/en-US.json
@@ -240,7 +240,7 @@
"width":"width",
"Operate":"Operate",
"end task":"end task",
- "cancal":"cancal",
+ "cancel":"cancel",
"confirm":"confirm",
"number":"number",
"Outfeed Barcodid":"Outfeed Barcodid",
@@ -288,6 +288,10 @@
"Disable":"Disable",
"Usage":"Usage",
"Space (Pieces)":"Space (Pieces)",
- "This glass is already in the cage":"This glass is already in the cage"
+ "This glass is already in the cage":"This glass is already in the cage",
+ "Enter the Order lD":"Enter the Order lD",
+ "OrderInfo":"OrderInfo",
+ "Query":"Query",
+ "permission update":"permission update"
}
\ No newline at end of file
diff --git a/CanadaMes-ui/src/layout/index.vue b/CanadaMes-ui/src/layout/index.vue
index fa2c7b6..c235d51 100644
--- a/CanadaMes-ui/src/layout/index.vue
+++ b/CanadaMes-ui/src/layout/index.vue
@@ -157,9 +157,7 @@
goToHome() {
this.$router.push('/home');
},
- youhua() {
- this.$router.push('/device/talk');
- },
+
...mapMutations('tags', ['addTag', 'removeTag', 'switchTag']),
addTag(router) {
let submenuItem;
diff --git a/CanadaMes-ui/src/views/home/index.vue b/CanadaMes-ui/src/views/home/index.vue
index 0c25867..ec6e292 100644
--- a/CanadaMes-ui/src/views/home/index.vue
+++ b/CanadaMes-ui/src/views/home/index.vue
@@ -1,276 +1,282 @@
<style>
* {
- margin: 0;
- padding: 0;
+ margin: 0;
+ padding: 0;
}
.occupy {
- height: 100%;
- width: 10%;
- background-color: white;
- margin: 0px 8px 0px 8px;
- border: 1px #EBEEF5 solid;
- text-align: center;
- padding: 5px;
+ height: 100%;
+ width: 10%;
+ background-color: white;
+ margin: 0px 8px 0px 8px;
+ border: 1px #EBEEF5 solid;
+ text-align: center;
+ padding: 5px;
}
.el-col {
- margin-top: 4px;
+ margin-top: 4px;
}
.biao {
- font-size: 12px;
+ font-size: 12px;
}
.zhi {
- font-size: 18px;
- font-weight: bold;
+ font-size: 18px;
+ font-weight: bold;
}
.el-main {
- padding: 3px;
- min-height: 40vh;
+ padding: 3px;
+ min-height: 40vh;
}
.el-footer {
- max-height: 60vh;
- padding: 0px;
- margin: 0px;
+ max-height: 60vh;
+ padding: 0px;
+ margin: 0px;
}
.green {
- background-color: green;
+ background-color: green;
}
.blue {
- background-color: blue;
+ background-color: blue;
}
.red {
- background-color: red;
+ background-color: red;
}
.yellow {
- background-color: yellow;
+ background-color: yellow;
}
.black {
- background-color: black;
+ background-color: black;
}
.gezi {
- height: 35px;
+ height: 35px;
- position: absolute;
- width: 3.08px;
- /* width: 4.22px; */
+ position: absolute;
+ width: 3.08px;
+ /* width: 4.22px; */
}
-
-
.blocks {
- background-image: url('../../img/xmjclzh.png');
- margin: 0 auto;
- background-repeat: no-repeat;
- background-attachment: local;
- width: 1660px;
- min-height: 55vh;
- max-width: 94vw;
- background-size: 1200px 510px;
- /* max-width: 100vw;
+ background-image: url('../../img/xmjc.png');
+ margin: 0 auto;
+ background-repeat: no-repeat;
+ background-attachment: local;
+ width: 1660px;
+ min-height: 55vh;
+ max-width: 94vw;
+ background-size: 1200px 510px;
+ /* max-width: 100vw;
background-size: 1660px 560px; */
}
.blocks-img {
- height: 100px;
- max-width: 100vw;
- background-repeat: no-repeat;
- background-attachment: local;
- width: 32px;
- position: absolute;
- background-image: url('../../img/bigcar01.png');
- background-size: 40px 87px;
- /* background-size: 46px 94px; */
+ height: 100px;
+ max-width: 100vw;
+ background-repeat: no-repeat;
+ background-attachment: local;
+ width: 32px;
+ position: absolute;
+ background-image: url('../../img/bigcar01.png');
+ background-size: 40px 87px;
+ /* background-size: 46px 94px; */
}
.blocks-img2 {
- height: 100px;
- max-width: 100vw;
- background-repeat: no-repeat;
- background-attachment: local;
- width: 100px;
- position: absolute;
- background-image: url('../../img/dipan.png');
- background-size: 70px 85px;
- left: 654px;
- top: 333px;
- /* background-size: 85px 100px;
+ height: 100px;
+ max-width: 100vw;
+ background-repeat: no-repeat;
+ background-attachment: local;
+ width: 100px;
+ position: absolute;
+ background-image: url('../../img/dipan.png');
+ background-size: 70px 85px;
+ left: 654px;
+ top: 333px;
+ /* background-size: 85px 100px;
left: 912px;
top: 366px; */
}
+.orderbutton {
+ position: absolute;
+ left: 1070px;
+ top: 70px;
+}
+
.blocks-img3 {
- height: 90px;
- max-width: 100vw;
- background-repeat: no-repeat;
- background-attachment: local;
- width: 160px;
- position: absolute;
- background-image: url('../../img/taimian.png');
- background-size: 120px 30px;
- left: 630px;
- top: 420px;
- /* background-size: 160px 40px;
+ height: 90px;
+ max-width: 100vw;
+ background-repeat: no-repeat;
+ background-attachment: local;
+ width: 160px;
+ position: absolute;
+ background-image: url('../../img/taimian.png');
+ background-size: 120px 30px;
+ left: 630px;
+ top: 420px;
+ /* background-size: 160px 40px;
left: 875px;
top: 455px; */
}
.el-table td,
.el-table th {
- padding: 5px 0;
+ padding: 5px 0;
}
.el-table__empty-block {
- min-height: 41px;
+ min-height: 41px;
}
.el-table__empty-text {
- line-height: 41px;
+ line-height: 41px;
}
.box {
- width: 90%;
- margin-left: 5%;
- color: red;
- font-size: 12px;
- overflow: hidden;
- height: 20px;
- /* height: 35px; */
+ width: 90%;
+ margin-left: 5%;
+ color: red;
+ font-size: 12px;
+ overflow: hidden;
+ height: 20px;
+ /* height: 35px; */
}
.text {
- width: auto;
+ width: auto;
- white-space: nowrap;
- animation: textScroll 20s linear infinite;
- margin: 0 auto;
- line-height: 20px;
- /* line-height: 35px; */
+ white-space: nowrap;
+ animation: textScroll 20s linear infinite;
+ margin: 0 auto;
+ line-height: 20px;
+ /* line-height: 35px; */
}
@keyframes textScroll {
- 0% {
- transform: translateX(100%);
- }
+ 0% {
+ transform: translateX(100%);
+ }
- 100% {
- transform: translateX(-150%);
- }
+ 100% {
+ transform: translateX(-150%);
+ }
}
.el-dialog {
- width: 90%;
+ width: 90%;
}
</style>
<template>
- <el-container>
- <!-- <el-header style="padding: 10px;"></el-header> -->
- <el-main>
- <div class="box" @click="dialogFormVisible2 = true">
- <div class="text">
- <!-- Alarm: -->
- {{ this.text }}
- <label v-for="item in this.alarm" :key="item['id']">
- {{ item['content'] }}
- </label>
- </div>
- </div>
- <div style="display:flex;justify-content: space-around;width: 95%;margin: 0 auto;">
- <el-input style="width:15%;" :placeholder="$t('Enter the glass lD')" v-model="glassid"></el-input>
- <el-button type="primary" @click="showform(1)">{{ $t('Infeed barcodid') }}</el-button>
- <el-input style="width:15%;" :placeholder="$t('Enter the order number')" v-model="order"></el-input>
- <el-button type="warning" @click="showform1();">{{ $t('Exit the glass by order number') }}</el-button>
- </div>
- <div>
- <el-table :data="this.tasklist1" border style="width: 100%">
- <el-table-column :width="130" prop="cage" :label="$t('The Cage number being used')"></el-table-column>
- <el-table-column :width="130" prop="cell" :label="$t('The Slot number being used')"></el-table-column>
- <el-table-column :width="150" prop="glassId" :label="$t('Outfeed Barcodid')"></el-table-column>
- <el-table-column :width="130" prop="orderId" :label="$t('Order Nmuber')"></el-table-column>
- <el-table-column prop="list" :label="$t('List Number')"></el-table-column>
- <el-table-column prop="box" :label="$t('Box Number')"></el-table-column>
- <el-table-column prop="lengthWidth" :label="$t('Length and Width')"></el-table-column>
- <el-table-column :label="$t('Operate')">
- <template slot-scope='scope'>
- <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
- @click="endtask(1, scope.row.glassId, scope.row.cell)">{{ $t('end task') }}</el-button>
- </template>
- </el-table-column>
- </el-table>
- <el-table :data="this.tasklist2" border style="width: 100%">
- <el-table-column :width="130" prop="cage" :label="$t('The Cage number being used')"></el-table-column>
- <el-table-column :width="130" prop="cell" :label="$t('The Slot number being used')"></el-table-column>
- <el-table-column :width="150" prop="glassId" :label="$t('Infeed Barcodid')"></el-table-column>
- <el-table-column :width="130" prop="orderId" :label="$t('Order Nmuber')"></el-table-column>
- <el-table-column prop="list" :label="$t('List Number')"></el-table-column>
- <el-table-column prop="box" :label="$t('Box Number')"></el-table-column>
- <el-table-column prop="lengthWidth" :label="$t('Length and Width')"></el-table-column>
- <el-table-column :label="$t('Operate')">
- <template slot-scope='scope'>
- <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
- @click="endtask(0, scope.row.glassId, scope.row.cell)">{{ $t('end task') }}</el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- <div style="padding: 10px;display: flex;height:85px;">
- <div v-for="item in tableData" :key="item['cageno']" class="occupy">
- <el-col style="text-align:left;font-weight: bold;">#{{ item['cage'] }}</el-col>
- <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
- <span class="biao">{{ $t('Usage') }}</span><span class="zhi">{{ item['cell'] }}%</span>
- </el-col>
- <hr style="width:80%;margin: 0 auto;" />
- <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
- <span class="biao">{{ $t('Space (Pieces)') }}</span><span class="zhi">{{ item['state'] }}</span>
- </el-col>
- </div>
- </div>
- </el-main>
- <el-footer>
- <div class="blocks" style="position: relative;">
- <div style="display:flex;position: absolute;float:left;z-index: 999;top:102px;left:237px;">
- <div :class="getStatusClass(item.state)" v-for="(item, index) in cagelist1" :key="item['date']"
- :style="{ height: 35 * item['glassWidth'] + 'px', left: 3.07 * index + Math.abs(item['cage'] - 10) * 6.8 + 'px' }"
- @click="showcageinfo(item['cage'])"></div>
- </div>
- <div style="display:flex;position: absolute;float:left;z-index: 999;top:102px;left:640px;">
- <div :class="getStatusClass(item.state)" v-for="(item, index) in cagelist2" :key="item['date']"
- :style="{ height: 35 * item['glassWidth'] + 'px', left: 3.07 * index + Math.abs(item['cage'] - 5) * 6.8 + 'px' }"
- @click="showcageinfo(item['cage'])"></div>
- </div>
- <div style="display:flex;position: absolute;float:left;z-index: 999;top:139px;left:237px;">
- <div :class="getStatusClass(item.state)" v-for="(item, index) in cagelist3" :key="item['date']"
- :style="{ height: 35 * item['glassWidth'] + 'px', top: item['width'] * 35 - 35 + 'px', left: 3.07 * index + Math.abs(item['cage'] - 10) * 6.8 + 'px' }"
- @click="showcageinfo(item['cage'])">
- </div>
- </div>
- <div style="display:flex;position: absolute;float:left;z-index: 999;top:139px;left:640px;">
- <div :class="getStatusClass(item.state)" v-for="(item, index) in cagelist4" :key="item['date']"
- :style="{ height: 35 * item['glassWidth'] + 'px', top: item['width'] * 35 - 35 + 'px', left: 3.07 * index + Math.abs(item['cage'] - 5) * 6.8 + 'px' }"
- @click="showcageinfo(item['cage'])"></div>
- </div>
- <div class="blue gezi"
- :style="{ display: 'flex', position: 'absolute', float: 'left', top: 105 + 'px', left: 1050 + 'px', height: loadglassheight + 'px', width: 5 + 'px' }">
- </div>
- <div class="blocks-img" :style="{ left: car1 + 'px', top: '16px' }"></div>
- <div class="blocks-img" :style="{ left: car2 + 'px', top: '175px' }"></div>
- <div class="blocks-img2"></div>
- <div class="blocks-img3"></div>
- <!-- <div style="display:flex;position: absolute;float:left;z-index: 999;top:112px;left:328px;">
+ <el-container>
+ <!-- <el-header style="padding: 10px;"></el-header> -->
+ <el-main>
+ <div class="box" @click="dialogFormVisible2 = true">
+ <div class="text">
+ <!-- Alarm: -->
+ {{ this.text }}
+ <label v-for="item in this.alarm" :key="item['id']">
+ {{ item['content'] }}
+ </label>
+ </div>
+ </div>
+ <div style="display:flex;justify-content: space-around;width: 95%;margin: 0 auto;">
+ <el-input style="width:15%;" :placeholder="$t('Enter the glass lD')" v-model="glassid"></el-input>
+ <el-button type="primary" @click="showform(1)">{{ $t('Infeed barcodid') }}</el-button>
+ <el-input style="width:15%;" :placeholder="$t('Enter the order number')" v-model="order"></el-input>
+ <el-button type="warning" @click="showform1();">{{ $t('Exit the glass by order number') }}</el-button>
+ </div>
+ <div>
+ <el-table :data="this.tasklist1" border style="width: 100%">
+ <el-table-column :width="130" prop="cage" :label="$t('The Cage number being used')"></el-table-column>
+ <el-table-column :width="130" prop="cell" :label="$t('The Slot number being used')"></el-table-column>
+ <el-table-column :width="150" prop="glassId" :label="$t('Outfeed Barcodid')"></el-table-column>
+ <el-table-column :width="130" prop="orderId" :label="$t('Order Nmuber')"></el-table-column>
+ <el-table-column prop="list" :label="$t('List Number')"></el-table-column>
+ <el-table-column prop="box" :label="$t('Box Number')"></el-table-column>
+ <el-table-column prop="lengthWidth" :label="$t('Length and Width')"></el-table-column>
+ <el-table-column :label="$t('Operate')">
+ <template slot-scope='scope'>
+ <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+ @click="endtask(1, scope.row.glassId, scope.row.cell)">{{ $t('end task') }}</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-table :data="this.tasklist2" border style="width: 100%">
+ <el-table-column :width="130" prop="cage" :label="$t('The Cage number being used')"></el-table-column>
+ <el-table-column :width="130" prop="cell" :label="$t('The Slot number being used')"></el-table-column>
+ <el-table-column :width="150" prop="glassId" :label="$t('Infeed Barcodid')"></el-table-column>
+ <el-table-column :width="130" prop="orderId" :label="$t('Order Nmuber')"></el-table-column>
+ <el-table-column prop="list" :label="$t('List Number')"></el-table-column>
+ <el-table-column prop="box" :label="$t('Box Number')"></el-table-column>
+ <el-table-column prop="lengthWidth" :label="$t('Length and Width')"></el-table-column>
+ <el-table-column :label="$t('Operate')">
+ <template slot-scope='scope'>
+ <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+ @click="endtask(0, scope.row.glassId, scope.row.cell)">{{ $t('end task') }}</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <div style="padding: 10px;display: flex;height:85px;">
+ <div v-for="item in tableData" :key="item['cageno']" class="occupy">
+ <el-col style="text-align:left;font-weight: bold;">#{{ item['cage'] }}</el-col>
+ <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+ <span class="biao">{{ $t('Usage') }}</span><span class="zhi">{{ item['cell'] }}%</span>
+ </el-col>
+ <hr style="width:80%;margin: 0 auto;" />
+ <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+ <span class="biao">{{ $t('Space (Pieces)') }}</span><span class="zhi">{{ item['state'] }}</span>
+ </el-col>
+ </div>
+ </div>
+ </el-main>
+ <el-footer>
+ <div class="blocks" style="position: relative;">
+ <div style="display:flex;position: absolute;float:left;z-index: 999;top:102px;left:237px;">
+ <div :class="getStatusClass(item.state)" v-for="(item, index) in cagelist1" :key="item['date']"
+ :style="{ height: 35 * item['glassWidth'] + 'px', left: 3.07 * index + Math.abs(item['cage'] - 10) * 6.8 + 'px' }"
+ @click="showcageinfo(item['cage'])"></div>
+ </div>
+ <div style="display:flex;position: absolute;float:left;z-index: 999;top:102px;left:640px;">
+ <div :class="getStatusClass(item.state)" v-for="(item, index) in cagelist2" :key="item['date']"
+ :style="{ height: 35 * item['glassWidth'] + 'px', left: 3.07 * index + Math.abs(item['cage'] - 5) * 6.8 + 'px' }"
+ @click="showcageinfo(item['cage'])"></div>
+ </div>
+ <div style="display:flex;position: absolute;float:left;z-index: 999;top:139px;left:237px;">
+ <div :class="getStatusClass(item.state)" v-for="(item, index) in cagelist3" :key="item['date']"
+ :style="{ height: 35 * item['glassWidth'] + 'px', top: item['width'] * 35 - 35 + 'px', left: 3.07 * index + Math.abs(item['cage'] - 10) * 6.8 + 'px' }"
+ @click="showcageinfo(item['cage'])">
+ </div>
+ </div>
+ <div style="display:flex;position: absolute;float:left;z-index: 999;top:139px;left:640px;">
+ <div :class="getStatusClass(item.state)" v-for="(item, index) in cagelist4" :key="item['date']"
+ :style="{ height: 35 * item['glassWidth'] + 'px', top: item['width'] * 35 - 35 + 'px', left: 3.07 * index + Math.abs(item['cage'] - 5) * 6.8 + 'px' }"
+ @click="showcageinfo(item['cage'])"></div>
+ </div>
+ <div class="blue gezi"
+ :style="{ display: 'flex', position: 'absolute', float: 'left', top: 105 + 'px', left: 1050 + 'px', height: loadglassheight + 'px', width: 5 + 'px' }">
+ </div>
+ <div class="blocks-img" :style="{ left: car1 + 'px', top: '16px' }"></div>
+ <div class="blocks-img" :style="{ left: car2 + 'px', top: '175px' }"></div>
+ <div class="blocks-img2"></div>
+ <div class="blocks-img3"></div>
+ <el-button class="orderbutton" type="primary" @click="showform2()">{{ $t('OrderInfo') }}</el-button>
+
+ <!-- <div style="display:flex;position: absolute;float:left;z-index: 999;top:112px;left:328px;">
<div :class="getStatusClass(item.state)" v-for="(item,index) in cagelist1" :key="item['date']"
:style="{ height: 35 * item['glassWidth'] + 'px',left:4.22*index+'px' }"
@click="showcageinfo(item['cage'])"></div>
@@ -294,499 +300,528 @@
<div class="blocks-img" :style="{ left: car2 + 'px', top: '194px' }"></div>
<div class="blocks-img2" :style="{ left: '912px', top: '366px' }"></div>
<div class="blocks-img3" :style="{ left: '875px', top: '455px' }"></div> -->
+ </div>
+ </el-footer>
+ <el-dialog :visible.sync="dialogFormVisible" :title="$t('Please confirm the glass information')">
+ <el-form :model="form" label-width="100px" style="padding-right: 30px">
- </div>
- </el-footer>
- <el-dialog :visible.sync="dialogFormVisible" :title="$t('Please confirm the glass information')">
- <el-form :model="form" label-width="100px" style="padding-right: 30px">
+ <el-form-item :label="$t('Barcodid')">
+ <el-input style="width:15%;" :placeholder="$t('Enter the glass lD')" v-model="glassid"></el-input>
+ <el-button type="primary" @click="showform(3)">{{ $t('Query') }}</el-button>
+ </el-form-item>
+ <el-form-item :label="$t('order')">
+ <el-input v-model="form.orderId" readonly autocomplete="off" />
+ </el-form-item>
+ <el-form-item :label="$t('length')">
+ <el-input v-model="form.height" readonly autocomplete="off" />
+ </el-form-item>
+ <el-form-item :label="$t('width')">
+ <el-input v-model="form.width" readonly autocomplete="off" />
+ </el-form-item>
+ <el-form-item :label="$t('Barcodid')">
+ <el-input v-model="form.glassId" readonly autocomplete="off" />
+ </el-form-item>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="sbumitglassid()" :style="{ display: confirm1 == true ? '' : 'none' }"
+ type="primary">{{
+ $t('confirm') }}</el-button>
+ <el-button @click="FeedInglassid()" :style="{ display: confirm2 == true ? '' : 'none' }"
+ type="primary">{{
+ $t('confirm') }}</el-button>
+ <el-button @click="cancel()">{{ $t('cancel') }}</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ <el-dialog :visible.sync="dialogFormVisible1" :title="$t('Please confirm the Ordering Information')">
+ <el-form :model="form1" label-width="100px" style="padding-right: 30px">
+ <el-form-item :label="$t('order')">
+ <el-input v-model="form1.order" autocomplete="off" />
+ </el-form-item>
+ <el-form-item :label="$t('number')">
+ <el-input v-model="form1.number" autocomplete="off" />
+ </el-form-item>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="getOrder();" type="primary">{{ $t('confirm') }}</el-button>
+ <el-button @click="cancel1()">{{ $t('cancel') }}</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ <el-dialog :visible.sync="dialogFormVisible2" :title="$t('Alarm Information')">
+ <el-table :data="this.alarm" border style="width: 100%;">
+ <el-table-column prop="id" :label="$t('id')"></el-table-column>
+ <el-table-column prop="content" :label="$t('content')"></el-table-column>
+ <el-table-column prop="timeons" :label="$t('timeon')"></el-table-column>
+ <el-table-column prop="endTime" :label="$t('endTime')"></el-table-column>
+ </el-table>
+ </el-dialog>
+ <el-dialog :visible.sync="dialogFormVisible3" :title="$t('Cage Details')" top="5vh">
+ <el-table :data="this.cageinfo" :height="700" border style="width: 100%;overflow: auto;">
+ <el-table-column :width="90" prop="cage" :label="$t('The Cage number')"></el-table-column>
+ <el-table-column :width="90" prop="cell" :label="$t('The Slot Number')"></el-table-column>
+ <el-table-column :width="55" prop="tier" :label="$t('The Side')"></el-table-column>
+ <el-table-column :width="100" prop="glassId" :label="$t('Barcodid')"></el-table-column>
+ <el-table-column :width="100" prop="orderId" :label="$t('Order Number')"></el-table-column>
+ <el-table-column :width="100" prop="list" :label="$t('List Number')"></el-table-column>
+ <el-table-column :width="100" prop="box" :label="$t('Box Number')"></el-table-column>
+ <el-table-column :width="170" prop="lengthWidth" :label="$t('Length and Width')"></el-table-column>
+ <el-table-column :width="280" :label="$t('Operate')">
+ <template slot-scope='scope'>
+ <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+ @click="deleteglass(scope.row.glassId, scope.row.state)">{{ $t('delete') }}</el-button>
+ <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+ @click="outglass(scope.row.glassId, scope.row.state)">{{ $t('out') }}</el-button>
+ <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+ @click="UpdateDisabled(scope.row.cage, scope.row.cell, scope.row.disabled == 0 ? 1 : 0)">
+ {{ scope.row.disabled == 0 ? $t('Enable') : $t('Disable') }}</el-button>
+ <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+ @click="insertglass(scope.row.cage, scope.row.cell, scope.row.tier)">{{ $t('increase')
+ }}</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-dialog>
+ <el-dialog :visible.sync="dialogFormVisible4" :title="$t('OrderInfo')" top="5vh">
+ <el-input style="width:15%;" :placeholder="$t('Enter the Order lD')" v-model="orderid"></el-input>
+ <el-button type="primary" @click="selectglassinfo()">{{ $t('Query') }}</el-button>
+ <el-table :data="this.GlassInfo" :height="700" border style="width: 100%;overflow: auto;">
- <el-form-item :label="$t('Barcodid')">
- <el-input style="width:15%;" :placeholder="$t('Enter the glass lD')" v-model="glassid"></el-input>
- <el-button type="primary" @click="showform(3)">query</el-button>
- </el-form-item>
- <el-form-item :label="$t('order')">
- <el-input v-model="form.orderId" readonly autocomplete="off" />
- </el-form-item>
- <el-form-item :label="$t('length')">
- <el-input v-model="form.height" readonly autocomplete="off" />
- </el-form-item>
- <el-form-item :label="$t('width')">
- <el-input v-model="form.width" readonly autocomplete="off" />
- </el-form-item>
- <el-form-item :label="$t('Barcodid')">
- <el-input v-model="form.glassId" readonly autocomplete="off" />
- </el-form-item>
- </el-form>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="sbumitglassid()" :style="{ display: confirm1 == true ? '' : 'none' }" type="primary">{{
- $t('confirm') }}</el-button>
- <el-button @click="FeedInglassid()" :style="{ display: confirm2 == true ? '' : 'none' }" type="primary">{{
- $t('confirm') }}</el-button>
- <el-button @click="cancal()">{{ $t('cancal') }}</el-button>
- </span>
- </template>
- </el-dialog>
- <el-dialog :visible.sync="dialogFormVisible1" :title="$t('Please confirm the Ordering Information')">
- <el-form :model="form1" label-width="100px" style="padding-right: 30px">
- <el-form-item :label="$t('order')">
- <el-input v-model="form1.order" autocomplete="off" />
- </el-form-item>
- <el-form-item :label="$t('number')">
- <el-input v-model="form1.number" autocomplete="off" />
- </el-form-item>
- </el-form>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="getOrder();" type="primary">{{ $t('confirm') }}</el-button>
- <el-button @click="cancal1()">{{ $t('cancal') }}</el-button>
- </span>
- </template>
- </el-dialog>
- <el-dialog :visible.sync="dialogFormVisible2" :title="$t('Alarm Information')">
- <el-table :data="this.alarm" border style="width: 100%;">
- <el-table-column prop="id" :label="$t('id')"></el-table-column>
- <el-table-column prop="content" :label="$t('content')"></el-table-column>
- <el-table-column prop="timeons" :label="$t('timeon')"></el-table-column>
- <el-table-column prop="endTime" :label="$t('endTime')"></el-table-column>
- </el-table>
- </el-dialog>
- <el-dialog :visible.sync="dialogFormVisible3" :title="$t('Cage Details')" top="5vh">
- <el-table :data="this.cageinfo" :height="700" border style="width: 100%;overflow: auto;">
- <el-table-column :width="90" prop="cage" :label="$t('The Cage number')"></el-table-column>
- <el-table-column :width="90" prop="cell" :label="$t('The Slot Number')"></el-table-column>
- <el-table-column :width="55" prop="tier" :label="$t('The Side')"></el-table-column>
- <el-table-column :width="100" prop="glassId" :label="$t('Barcodid')"></el-table-column>
- <el-table-column :width="100" prop="orderId" :label="$t('Order Number')"></el-table-column>
- <el-table-column :width="100" prop="list" :label="$t('List Number')"></el-table-column>
- <el-table-column :width="100" prop="box" :label="$t('Box Number')"></el-table-column>
- <el-table-column :width="170" prop="lengthWidth" :label="$t('Length and Width')"></el-table-column>
- <el-table-column :width="280" :label="$t('Operate')">
- <template slot-scope='scope'>
- <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
- @click="deleteglass(scope.row.glassId, scope.row.state)">{{ $t('delete') }}</el-button>
- <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
- @click="outglass(scope.row.glassId, scope.row.state)">{{ $t('out') }}</el-button>
- <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
- @click="UpdateDisabled(scope.row.cage, scope.row.cell, scope.row.disabled == 0 ? 1 : 0)">
- {{ scope.row.disabled == 0 ? $t('Enable') : $t('Disable') }}</el-button>
- <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
- @click="insertglass(scope.row.cage, scope.row.cell, scope.row.tier)">{{ $t('increase')
- }}</el-button>
- </template>
- </el-table-column>
- </el-table>
- </el-dialog>
- </el-container>
+ <el-table-column prop="glassId" :label="$t('Barcodid')"></el-table-column>
+ <el-table-column prop="orderId" :label="$t('Order Number')"></el-table-column>
+ <el-table-column prop="width" :label="$t('length')"></el-table-column>
+ <el-table-column prop="height" :label="$t('width')"></el-table-column>
+ </el-table>
+ </el-dialog>
+ </el-container>
</template>
<script>
//:disabled="scope.row.glassId > 0 || scope.row.disabled == 1 ? true : false"
import {
- home, home2, loadtask, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo,
- SelectCageInfo, DeleteByGlassID, OutByGlassID, Loadcarlist, SelectPassword, SelectGlassByGlassID, Disabled, Inglassid
+ home, home2, loadtask, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo,
+ SelectCageInfo, DeleteByGlassID, OutByGlassID, Loadcarlist, SelectPassword, SelectGlassByGlassID, Disabled, Inglassid, SelectGlass
} from "../../api/home";
import LanguageMixin from '../../lang/LanguageMixin'
let socket;
export default {
- name: "Home",
- data () {
- return {
- confirm1: false,
- confirm2: false,
- insertcage: 0,
- insertcell: 0,
- inserttier: 0,
- name: 'Confirm',
- mixins: [LanguageMixin],
- dialogFormVisible: false,
- dialogFormVisible1: false,
- dialogFormVisible2: false,
- dialogFormVisible3: false,
- form: {
- orderId: "",
- glassId: "",
- height: "",
- width: ""
- },
- form1: {
- order: "NG2210210",
- number: 800,
- },
- alarm: [],
- tableData: [],
- cagelist1: [],
- cagelist2: [],
- cagelist3: [],
- cagelist4: [],
- task1: 3,
- task2: 2,
- tasklist1: [],
- tasklist2: [],
- order: "",
- glassid: "",
- url: "../../img/bigcar01.png",
- car1: 145,
- car2: 210,
- // car1: 210,
- // car2: 300,
- cageinfo: [],
- cage: 0,
- carlist: [],
- loadglassheight: 0,
- password: 1,
- text: "",
- zhuangtai: ""
- };
- },
- created () {
- this.load();
- this.init();
- },
- methods: {
- init () {
- let viewname = "Home";
-
- if (typeof (WebSocket) == "undefined") {
- console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
- } else {
- //console.log("鎮ㄧ殑娴忚鍣ㄦ敮鎸乄ebSocket");
- let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
- if (socket != null) {
- socket.close();
- socket = null;
- }
- // 寮�鍚竴涓獁ebsocket鏈嶅姟
- socket = new WebSocket(socketUrl);
- //鎵撳紑浜嬩欢
- socket.onopen = function () {
- console.log("websocket宸叉墦寮�");
+ name: "Home",
+ data() {
+ return {
+ confirm1: false,
+ confirm2: false,
+ insertcage: 0,
+ insertcell: 0,
+ inserttier: 0,
+ name: 'Confirm',
+ mixins: [LanguageMixin],
+ dialogFormVisible: false,
+ dialogFormVisible1: false,
+ dialogFormVisible2: false,
+ dialogFormVisible3: false,
+ dialogFormVisible4: false,
+ form: {
+ orderId: "",
+ glassId: "",
+ height: "",
+ width: ""
+ },
+ form1: {
+ order: "NG2210210",
+ number: 800,
+ },
+ alarm: [],
+ tableData: [],
+ cagelist1: [],
+ cagelist2: [],
+ cagelist3: [],
+ cagelist4: [],
+ task1: 3,
+ task2: 2,
+ tasklist1: [],
+ tasklist2: [],
+ order: "",
+ glassid: "",
+ url: "../../img/bigcar01.png",
+ car1: 145,
+ car2: 210,
+ // car1: 210,
+ // car2: 300,
+ cageinfo: [],
+ cage: 0,
+ carlist: [],
+ loadglassheight: 0,
+ password: 1,
+ text: "",
+ zhuangtai: "",
+ orderid: "",
+ GlassInfo: []
};
- // 娴忚鍣ㄧ鏀舵秷鎭紝鑾峰緱浠庢湇鍔$鍙戦�佽繃鏉ョ殑鏂囨湰娑堟伅
- socket.onmessage = function (msg) {
+ },
+ created() {
+ this.load();
+ this.init();
+ },
+ methods: {
+ init() {
+ let viewname = "Home";
- //console.log("鏀跺埌鏁版嵁====" + msg.data);
- let obj = JSON.parse(msg.data);
- if (obj.params != null) {
- this.car1 = 145 + 8.15 * Math.abs(obj.params[0][0] - this.carlist[0]['start']) / Math.abs(this.carlist[0]['end'] - this.carlist[0]['start']) * 100;
- this.car2 = 210 + 8.15 * Math.abs(obj.params[0][1] - this.carlist[1]['start']) / Math.abs(this.carlist[1]['end'] - this.carlist[1]['start']) * 100;
- // this.car1 = 210 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100;
- // this.car2 = 300 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100;
- }
- this.tableData = obj.tableData[0];
- this.cagelist1 = obj.cagelist1[0];
- this.cagelist2 = obj.cagelist2[0];
- this.cagelist3 = obj.cagelist3[0];
- this.cagelist4 = obj.cagelist4[0];
- this.tasklist1 = obj.tasklist1[0];
- this.tasklist2 = obj.tasklist2[0];
- this.alarm = obj.alarmmg[0];
- this.loadglassheight = obj.loadglassheight;
- this.zhuangtai = obj.zhuangtai[0];
- //if (obj.dbconnected == "false") {
- this.text = this.$t('DataBase Connection failed');
- // }
- SelectCageInfo(this.cage).then(res => {
- this.cageinfo = res.data.cageinfo;
- });
+ if (typeof (WebSocket) == "undefined") {
+ console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
+ } else {
+ //console.log("鎮ㄧ殑娴忚鍣ㄦ敮鎸乄ebSocket");
+ let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+ if (socket != null) {
+ socket.close();
+ socket = null;
+ }
+ // 寮�鍚竴涓獁ebsocket鏈嶅姟
+ socket = new WebSocket(socketUrl);
+ //鎵撳紑浜嬩欢
+ socket.onopen = function () {
+ console.log("websocket宸叉墦寮�");
+ };
+ // 娴忚鍣ㄧ鏀舵秷鎭紝鑾峰緱浠庢湇鍔$鍙戦�佽繃鏉ョ殑鏂囨湰娑堟伅
+ socket.onmessage = function (msg) {
- this.$forceUpdate();
+ //console.log("鏀跺埌鏁版嵁====" + msg.data);
+ let obj = JSON.parse(msg.data);
+ if (obj.params != null) {
+ this.car1 = 145 + 8.15 * Math.abs(obj.params[0][0] - this.carlist[0]['start']) / Math.abs(this.carlist[0]['end'] - this.carlist[0]['start']) * 100;
+ this.car2 = 210 + 8.15 * Math.abs(obj.params[0][1] - this.carlist[1]['start']) / Math.abs(this.carlist[1]['end'] - this.carlist[1]['start']) * 100;
+ // this.car1 = 210 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100;
+ // this.car2 = 300 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100;
+ }
+ this.tableData = obj.tableData[0];
+ this.cagelist1 = obj.cagelist1[0];
+ this.cagelist2 = obj.cagelist2[0];
+ this.cagelist3 = obj.cagelist3[0];
+ this.cagelist4 = obj.cagelist4[0];
+ this.tasklist1 = obj.tasklist1[0];
+ this.tasklist2 = obj.tasklist2[0];
+ this.alarm = obj.alarmmg[0];
+ this.loadglassheight = obj.loadglassheight;
+ this.zhuangtai = obj.zhuangtai[0];
+ //if (obj.dbconnected == "false") {
+ this.text = this.$t('DataBase Connection failed');
+ // }
+ SelectCageInfo(this.cage).then(res => {
+ this.cageinfo = res.data.cageinfo;
+ });
+ SelectGlass(this.orderid).then(res => {
+ this.GlassInfo = res.data.glass;
+ });
- }.bind(this);
- //鍏抽棴浜嬩欢
- socket.onclose = function () {
- console.log("websocket宸插叧闂�");
- };
- //鍙戠敓浜嗛敊璇簨浠�
- socket.onerror = function () {
- console.log("websocket鍙戠敓浜嗛敊璇�");
- }
- }
- },
- load () {
- home().then(res => {
- this.tableData = res.data.list;
- });
- home2().then(res => {
- this.cagelist1 = res.data.list1;
- this.cagelist2 = res.data.list2;
- this.cagelist3 = res.data.list3;
- this.cagelist4 = res.data.list4;
- });
- loadtask(this.task1).then(res => {
- this.tasklist1 = res.data.list;
- if (res.data.list.length > 0) {
- this.incell = this.tasklist1[0]['cell'];
- }
- });
- loadtask(this.task2).then(res => {
- this.tasklist2 = res.data.list;
- if (res.data.list.length > 0) {
- this.outcell = this.tasklist2[0]['cell'];
- }
- });
- loadtask(this.task2).then(res => {
- this.tasklist2 = res.data.list;
- });
- SelectAlarmmgInfo().then(res => {
- this.alarm = res.data.alarmmg;
- });
- Loadcarlist().then(res => {
- this.carlist = res.data.carlist;
- });
- SelectPassword().then(res => {
- this.password = res.data.password;
- });
- },
- //鏍规嵁鏍煎瓙鐘舵�佷慨鏀归鑹�
- getStatusClass (state) {
- if (state == 0) {
- return "gezi";
- } else if (state == 1) {
- return "blue gezi";
- } else if (state == 2) {
- return "yellow gezi";
- } else if (state == 3) {
- return "red gezi";
- } else {
- return "black gezi";
- }
- },
- //鎸夎鍗曞嚭鐗�
- getOrder () {
- if (this.form1.order != "") {
- InsertOrder(this.order).then(res => {
- if (res.data.message == 200) {
- this.dialogFormVisible1 = false;
- this.$message.success(this.$t('Operation successful'));
+ this.$forceUpdate();
- } else {
- this.$message.error(this.$t('There is no glass for this order'));
- }
- this.load();
- });
- }
-
- },
- //鎵嬪姩涓婄墖
- sbumitglassid () {
- if (this.form.order != "") {
- if (this.form.height < 380 || this.form.width < 390 || this.form.height > 1810 || this.form.width > 2760) {
- this.$message.error(this.$t('The glass size is not within the range'));
- } else {
- if (this.zhuangtai == true) {
- Addglassid(this.glassid).then(res => {
- if (res.data.message2 == 200) {
- this.$message.success(this.$t('Operation successful'));
- this.cancal();
- } else if (res.data.message2 == 500) {
- this.$message.error(this.$t('There are currently tasks'));
- }
- else if (res.data.message2 == 300) {
- this.$message.error(this.$t('There is no such glass'));
- }
- else if (res.data.message2 == 400) {
- this.$message.error(this.$t('There is no such grid'));
- }
- });
- } else {
- this.$message.error(this.$t('There are currently tasks'));
- }
- }
- }
- },
- showform (buttons) {
- if (buttons == 1) {
- this.confirm1 = true;
- this.confirm2 = false;
- } else if (buttons == 2) {
- this.confirm1 = false;
- this.confirm2 = true;
- }
- SelectGlassByGlassID(this.glassid).then(res => {
- if (res.data.form != null) {
- this.form = res.data.form;
- this.dialogFormVisible = true;
- this.$message.success('query was successful');
- } else {
- this.dialogFormVisible = true;
- this.$message.error(this.$t('There is no such glass'));
- }
- });
- },
- showform1 () {
- if (this.order != "") {
- this.form1 =
- {
- order: "NG2210210",
- number: 800,
- };
- this.dialogFormVisible1 = true;
- }
-
-
- },
- cancal () {
- this.dialogFormVisible = false;
- this.form = {
- orderId: "",
- glassId: "",
- height: "",
- width: ""
- };
- },
- cancal1 () {
- this.dialogFormVisible1 = false;
- this.form1 = {};
- },
- endtask (type, glassid, cell) {
- this.$prompt(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), {
- inputType: 'password',
- inputPlaceholder: this.$t('Please enter the password'),
- confirmButtonText: this.$t('Yes'),
- cancelButtonText: this.$t('No'),
- type: 'warning'
- }).then(({ value }) => {
- if (this.password == value) {
- UpdateTask(type, glassid, cell).then(res => {
- if (res.data.message3 == 200) {
- this.$message.success(this.$t('Operation successful'));
+ }.bind(this);
+ //鍏抽棴浜嬩欢
+ socket.onclose = function () {
+ console.log("websocket宸插叧闂�");
+ };
+ //鍙戠敓浜嗛敊璇簨浠�
+ socket.onerror = function () {
+ console.log("websocket鍙戠敓浜嗛敊璇�");
+ }
}
- });
- } else {
- this.$message.error(this.$t('Password error'));//瀵嗙爜閿欒
- }
- }).catch(() => {
- this.$message({
- type: 'info',
- message: this.$t('Operation canceled')
- });
- });
- },
- showcageinfo (cage) {
- this.cage = cage;
- SelectCageInfo(cage).then(res => {
- this.cageinfo = res.data.cageinfo;
- this.dialogFormVisible3 = true;
- });
- },
- deleteglass (glassid, state) {
- this.$prompt(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), {
- inputType: 'password',
- inputPlaceholder: this.$t('Please enter the password'),
- confirmButtonText: this.$t('Yes'),
- cancelButtonText: this.$t('No'),
- type: 'warning'
- }).then(({ value }) => {
- if (this.password == value) {
- if (state == 1) {
- DeleteByGlassID(glassid).then(res => {
- if (res.data.message3 == 200) {
- this.$message.success(this.$t('Operation successful'));
- }
+ },
+ load() {
+ //鍔犺浇绗煎瓙浣跨敤鎯呭喌鏁版嵁
+ home().then(res => {
+ this.tableData = res.data.list;
});
- } else {
- this.$message.error(this.$t('No delete allowed'));
- }
- } else {
- this.$message.error(this.$t('Password error'));//瀵嗙爜閿欒
- }
+ //鍔犺浇鐞嗙墖绗肩幓鐠冩暟鎹�
+ home2().then(res => {
+ this.cagelist1 = res.data.list1;
+ this.cagelist2 = res.data.list2;
+ this.cagelist3 = res.data.list3;
+ this.cagelist4 = res.data.list4;
+ });
+ //鍔犺浇杩涚墖浠诲姟鏁版嵁
+ loadtask(this.task1).then(res => {
+ this.tasklist1 = res.data.list;
+ });
+ //鍔犺浇杩涘嚭鐗囦换鍔℃暟鎹�
+ loadtask(this.task2).then(res => {
+ this.tasklist2 = res.data.list;
+ });
+ //鍔犺浇鎶ヨ淇℃伅
+ SelectAlarmmgInfo().then(res => {
+ this.alarm = res.data.alarmmg;
+ });
+ //鍔犺浇灏忚溅浣嶇疆淇℃伅
+ Loadcarlist().then(res => {
+ this.carlist = res.data.carlist;
+ });
+ //鍔犺浇纭瀵嗙爜
+ SelectPassword().then(res => {
+ this.password = res.data.password;
+ });
+ },
+ //鏍规嵁鏍煎瓙鐘舵�佷慨鏀归鑹�
+ getStatusClass(state) {
+ if (state == 0) {
+ return "gezi";
+ } else if (state == 1) {
+ return "blue gezi";
+ } else if (state == 2) {
+ return "yellow gezi";
+ } else if (state == 3) {
+ return "red gezi";
+ } else {
+ return "black gezi";
+ }
+ },
+ //鎸夎鍗曞嚭鐗�
+ getOrder() {
+ if (this.form1.order != "") {
+ InsertOrder(this.order).then(res => {
+ if (res.data.message == 200) {
+ this.dialogFormVisible1 = false;
+ this.$message.success(this.$t('Operation successful'));
- }).catch(() => {
- this.$message({
- type: 'info',
- message: this.$t('Operation canceled')
- });
- });
- },
- outglass (glassid, state) {
- this.$prompt(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), {
- inputType: 'password',
- inputPlaceholder: this.$t('Please enter the password'),
- confirmButtonText: this.$t('Yes'),
- cancelButtonText: this.$t('No'),
- type: 'warning'
- }).then(({ value }) => {
- if (this.password == value) {
- if (state == 1) {
- OutByGlassID(glassid).then(res => {
- if (res.data.message3 == 200) {
- this.$message.success(this.$t('Operation successful'));
- }
- else if (res.data.message2 == 300) {
- this.$message.error(this.$t('There is no such grid'));
- }
- else if (res.data.message2 == 500) {
- this.$message.error(this.$t('This glass is already in the cage'));
- }
+ } else {
+ this.$message.error(this.$t('There is no glass for this order'));
+ }
+ this.load();
+ });
+ }
+
+ },
+ //鎵嬪姩涓婄墖
+ sbumitglassid() {
+ if (this.form.order != "") {
+ if (this.form.height < 380 || this.form.width < 390 || this.form.height > 1810 || this.form.width > 2760) {
+ this.$message.error(this.$t('The glass size is not within the range'));
+ } else {
+ if (this.zhuangtai == true) {
+ Addglassid(this.glassid).then(res => {
+ if (res.data.message2 == 200) {
+ this.$message.success(this.$t('Operation successful'));
+ this.cancel();
+ } else if (res.data.message2 == 500) {
+ this.$message.error(this.$t('There are currently tasks'));
+ }
+ else if (res.data.message2 == 300) {
+ this.$message.error(this.$t('There is no such glass'));
+ }
+ else if (res.data.message2 == 400) {
+ this.$message.error(this.$t('There is no such grid'));
+ }
+ });
+ } else {
+ this.$message.error(this.$t('There are currently tasks'));
+ }
+ }
+ }
+ },
+ //鏄剧ず纭鐜荤拑淇℃伅涔熸病
+ showform(buttons) {
+ if (buttons == 1) {
+ this.confirm1 = true;
+ this.confirm2 = false;
+ } else if (buttons == 2) {
+ this.confirm1 = false;
+ this.confirm2 = true;
+ }
+ //鏍规嵁杈撳叆鐨勭幓鐠僫d鑾峰彇鐜荤拑淇℃伅
+ SelectGlassByGlassID(this.glassid).then(res => {
+ if (res.data.form != null) {
+ this.form = res.data.form;
+ this.dialogFormVisible = true;
+ this.$message.success('query was successful');
+ } else {
+ this.dialogFormVisible = true;
+ this.$message.error(this.$t('There is no such glass'));
+ }
});
- } else {
- this.$message.error(this.$t('No out allowed'));
- }
- } else {
- this.$message.error(this.$t('Password error'));//瀵嗙爜閿欒
- }
- }).catch(() => {
- this.$message({
- type: 'info',
- message: this.$t('Operation canceled')
- });
- });
- },
- insertglass (cage, cell, tier) {
- this.$prompt(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), {
- inputType: 'password',
- inputPlaceholder: this.$t('Please enter the password'),
- confirmButtonText: this.$t('Yes'),
- cancelButtonText: this.$t('No'),
- type: 'warning'
- }).then(({ value }) => {
- if (this.password == value) {
- // OutByGlassID(glassid).then(res => {
- // if (res.data.message3 == 200) {
- // this.$message.success(this.$t('Operation successful'));
- // }
- // else if (res.data.message2 == 300) {
- // this.$message.error(this.$t('There is no such grid'));
- // }
- // });
- this.insertcage = cage;
- this.insertcell = cell;
- this.inserttier = tier;
- this.showform(2);
- } else {
- this.$message.error(this.$t('Password error'));//瀵嗙爜閿欒
- }
- }).catch(() => {
- this.$message({
- type: 'info',
- message: this.$t('Operation canceled')
- });
- });
- },
- FeedInglassid () {
- Inglassid(this.insertcage, this.insertcell, this.inserttier, this.form).then(res => {
- if (this.form.glassId != "") {
- if (res.data.message == 200) {
- this.$message.success(this.$t('Operation successful'));
+ },
+ //鏄剧ず璁㈠崟淇℃伅椤甸潰
+ showform1() {
+ if (this.order != "") {
+ this.form1 =
+ {
+ order: "NG2210210",
+ number: 800,
+ };
+ this.dialogFormVisible1 = true;
+ }
+ },
+ selectglassinfo() {
+ SelectGlass(this.orderid).then(res => {
+ this.GlassInfo = res.data.glass;
+ });
+ },
+ showform2() {
+ SelectGlass(this.orderid).then(res => {
+ this.GlassInfo = res.data.glass;
+ });
+ this.dialogFormVisible4 = true;
+ },
+ //鍙栨秷鎿嶄綔鏃跺叧闂〉闈�
+ cancel() {
this.dialogFormVisible = false;
- } else {
- this.$message.error(this.$t('This glass is already in the cage'));
- }
- } else {
- this.$message.error(this.$t('There is no such glass'));
- }
+ this.form = {
+ orderId: "",
+ glassId: "",
+ height: "",
+ width: ""
+ };
+ },
+ //鍙栨秷鎿嶄綔鏃跺叧闂〉闈�
+ cancel1() {
+ this.dialogFormVisible1 = false;
+ this.form1 = {};
+ },
+ //缁撴潫杩�/鍑虹墖浠诲姟
+ endtask(type, glassid, cell) {
+ this.$prompt(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), {
+ inputType: 'password',
+ inputPlaceholder: this.$t('Please enter the password'),
+ confirmButtonText: this.$t('Yes'),
+ cancelButtonText: this.$t('No'),
+ type: 'warning'
+ }).then(({ value }) => {
+ if (this.password == value) {
+ UpdateTask(type, glassid, cell).then(res => {
+ if (res.data.message3 == 200) {
+ this.$message.success(this.$t('Operation successful'));
+ }
+ });
+ } else {
+ this.$message.error(this.$t('Password error'));//瀵嗙爜閿欒
+ }
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: this.$t('Operation canceled')
+ });
+ });
+ },
+ //鏄剧ず鐞嗙墖绗艰鎯呬俊鎭�
+ showcageinfo(cage) {
+ this.cage = cage;
+ SelectCageInfo(cage).then(res => {
+ this.cageinfo = res.data.cageinfo;
+ this.dialogFormVisible3 = true;
+ });
+ },
+ //鍒犻櫎鐞嗙墖绗肩幓鐠�
+ deleteglass(glassid, state) {
+ this.$prompt(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), {
+ inputType: 'password',
+ inputPlaceholder: this.$t('Please enter the password'),
+ confirmButtonText: this.$t('Yes'),
+ cancelButtonText: this.$t('No'),
+ type: 'warning'
+ }).then(({ value }) => {
+ if (this.password == value) {
+ if (state == 1) {
+ DeleteByGlassID(glassid).then(res => {
+ if (res.data.message3 == 200) {
+ this.$message.success(this.$t('Operation successful'));
+ }
+ });
+ } else {
+ this.$message.error(this.$t('No delete allowed'));
+ }
+ } else {
+ this.$message.error(this.$t('Password error'));//瀵嗙爜閿欒
+ }
- });
- },
- UpdateDisabled (cage, cell, disabled) {
- Disabled(cage, cell, disabled).then(res => {
- if (res.data.message == 200) {
- this.$message.success(this.$t('Operation successful'));
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: this.$t('Operation canceled')
+ });
+ });
+ },
+ //鎵嬪姩鍑虹墖
+ outglass(glassid, state) {
+ this.$prompt(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), {
+ inputType: 'password',
+ inputPlaceholder: this.$t('Please enter the password'),
+ confirmButtonText: this.$t('Yes'),
+ cancelButtonText: this.$t('No'),
+ type: 'warning'
+ }).then(({ value }) => {
+ if (this.password == value) {
+ if (state == 1) {
+ OutByGlassID(glassid).then(res => {
+ if (res.data.message3 == 200) {
+ this.$message.success(this.$t('Operation successful'));
+ }
+ else if (res.data.message2 == 300) {
+ this.$message.error(this.$t('There is no such grid'));
+ }
+ else if (res.data.message2 == 500) {
+ this.$message.error(this.$t('This glass is already in the cage'));
+ }
+ });
+ } else {
+ this.$message.error(this.$t('No out allowed'));
+ }
+ } else {
+ this.$message.error(this.$t('Password error'));//瀵嗙爜閿欒
+ }
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: this.$t('Operation canceled')
+ });
+ });
+ },
+ //鎵嬪姩寰�鐞嗙墖绗兼坊鍔犵幓鐠�
+ insertglass(cage, cell, tier) {
+ this.$prompt(this.$t('Are you sure to perform this operation ?'), this.$t('prompt'), {
+ inputType: 'password',
+ inputPlaceholder: this.$t('Please enter the password'),
+ confirmButtonText: this.$t('Yes'),
+ cancelButtonText: this.$t('No'),
+ type: 'warning'
+ }).then(({ value }) => {
+ if (this.password == value) {
+ this.insertcage = cage;
+ this.insertcell = cell;
+ this.inserttier = tier;
+ this.showform(2);
+ } else {
+ this.$message.error(this.$t('Password error'));//瀵嗙爜閿欒
+ }
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: this.$t('Operation canceled')
+ });
+ });
+ },
+ //鎵嬪姩涓婄墖
+ FeedInglassid() {
+ Inglassid(this.insertcage, this.insertcell, this.inserttier, this.form).then(res => {
+ if (this.form.glassId != "") {
+ if (res.data.message == 200) {
+ this.$message.success(this.$t('Operation successful'));
+ this.dialogFormVisible = false;
+ } else {
+ this.$message.error(this.$t('This glass is already in the cage'));
+ }
+ } else {
+ this.$message.error(this.$t('There is no such glass'));
+ }
+
+ });
+ },
+ //鍚敤//鐞嗙墖绗肩鐢�
+ UpdateDisabled(cage, cell, disabled) {
+ Disabled(cage, cell, disabled).then(res => {
+ if (res.data.message == 200) {
+ this.$message.success(this.$t('Operation successful'));
+ }
+ });
}
- });
}
- }
}
</script>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/role/index.vue b/CanadaMes-ui/src/views/role/index.vue
index c663906..22d50ae 100644
--- a/CanadaMes-ui/src/views/role/index.vue
+++ b/CanadaMes-ui/src/views/role/index.vue
@@ -39,6 +39,11 @@
<!-- 淇敼 -->
<el-tooltip effect="dark" :content="$t('langEdit')" placement="top" :enterable="false">
<el-button type="primary" icon="el-icon-edit" size="mini" @click="showEditDialog(scope.row)"></el-button>
+
+ </el-tooltip>
+ <el-tooltip effect="dark" :content="$t('permission update')" placement="top" :enterable="false">
+
+ <el-button type="primary" size="mini" @click="showPermissionDialog(scope.row)">{{$t('permission update')}}</el-button>
</el-tooltip>
<!-- 鍒犻櫎 -->
<el-tooltip effect="dark" :content="$t('langDelete')" placement="top" :enterable="false">
@@ -85,36 +90,58 @@
</span>
</el-dialog>
<!--淇敼瑙掕壊鐨勫璇濇-->
- <el-dialog
- :title="$t('langEditRole')"
- :visible.sync="editDialogVisible"
- width="50%">
- <!--鍐呭涓讳綋鍖哄煙-->
- <el-form :model="editRoleForm" :rules="addRoleRules" ref="addRoleRef" label-width="130px">
- <el-form-item :label="$t('langRoleName')" prop="name">
- <el-input v-model="editRoleForm.name"></el-input>
- </el-form-item>
- <el-form-item :label="$t('langState')" prop="state">
- <el-select v-model="editRoleForm.state" placeholder="$t('langPleaseSelect')">
- <el-option v-for="(item,index) in options"
- :key="index"
- :value="item.value"
- :label="item.label">
- </el-option>
- </el-select>
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
+ <el-dialog :title="$t('langEditRole')" :visible.sync="editDialogVisible" width="50%">
+ <!-- 鍐呭涓讳綋鍖哄煙 -->
+ <el-form :model="editRoleForm" :rules="addRoleRules" ref="addRoleRef" label-width="130px">
+ <el-form-item :label="$t('langRoleName')" prop="name">
+ <el-input v-model="editRoleForm.name"></el-input>
+ </el-form-item>
+ <el-form-item :label="$t('langState')" prop="state">
+ <el-select v-model="editRoleForm.state" placeholder="$t('langPleaseSelect')">
+ <el-option v-for="(item, index) in options" :key="index" :value="item.value" :label="item.label"></el-option>
+ </el-select>
+ </el-form-item>
+
+ </el-form>
+ <span slot="footer" class="dialog-footer">
<el-button @click="editDialogVisible = false">{{$t('langCancel')}}</el-button>
<el-button type="primary" @click="editRoleInfo">{{$t('langConfirm')}}</el-button>
</span>
- </el-dialog>
+</el-dialog>
+
+
+<el-dialog :title="$t('langEditPermissions')" :visible.sync="permissionDialogVisible">
+ <el-form label-width="130px">
+ <el-form-item :label="$t('langPermissions')" prop="permissionList">
+ <el-checkbox-group v-model="selectedPermissions">
+ <el-checkbox
+ v-for="(permission, index) in permissionList"
+ :key="index"
+ :label="permission.name"
+ :checked="permission.state === 1"
+ @change="updatePermissionState(permission.name, $event)"
+ >{{ permission.name }}</el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="cancelEditPermissions">{{$t('langCancel')}}</el-button>
+ <el-button type="primary" @click="savePermissions">{{$t('langConfirm')}}</el-button>
+ </span>
+</el-dialog>
+
+
+
+
</div>
</template>
<script>
import {getById, removeById, saveOrUpdate, selectPage} from "../../api/role";
-import LanguageMixin from '../../lang/LanguageMixin'
+import {getById2} from "../../api/rolePermission";
+import {saveOrUpdate2} from "../../api/rolePermission";
+
+import LanguageMixin from '../../lang/LanguageMixin';
export default {
name: "Role",
mixins: [LanguageMixin],
@@ -133,13 +160,21 @@
addDialogVisible: false,
// 鎺у埗淇敼瑙掕壊瀵硅瘽妗嗙殑鏄剧ず涓庨殣钘�
editDialogVisible: false,
+
// 娣诲姞鐨勮鑹插璞�
addRoleForm: {
state: 1
},
// 淇敼鐨勮鑹插璞�
- editRoleForm: {},
+ editRoleForm: {
+
+ },
+
+ permissionList: [],
+ permissionDialogVisible: false,
+ selectedPermissions: [] ,// 娣诲姞selectedPermissions鏁扮粍鍙橀噺
+
// 娣诲姞瑙掕壊鐨勯獙璇佽鍒�
addRoleRules: {
name: [
@@ -179,7 +214,7 @@
stateChange(info) {
saveOrUpdate(info).then(() => {
const 鏇存柊鐘舵�佹垚鍔� = this.$t('鏇存柊鐘舵�佹垚鍔�');
- this.$message.success(鏇存柊鐘舵�佹垚鍔�)
+ this.$message.success(鏇存柊鐘舵�佹垚鍔�);
});
},
@@ -206,9 +241,60 @@
showEditDialog(role) {
getById({id: role.id}).then(res => {
this.editRoleForm = res.data;
- this.editDialogVisible = true;
+
+
+
+ });
+
+
+ this.editDialogVisible = true;
+ },
+
+
+ showPermissionDialog(role) {
+ this.selectedPermissions=[];
+ this.permissionList=[];
+
+ getById2({ roleId: role.id }).then((res) => {
+ this.permissionList = res.data.permissionList;
+
+
+ this.selectedPermissions = this.permissionList.map(({ name, state }) => ({
+ name,
+ state: state === 1,
+ }));
+ console.log(this.selectedPermissions);
+ this.permissionDialogVisible = true;
});
},
+// 鍙栨秷缂栬緫鏉冮檺寮瑰嚭妗�
+cancelEditPermissions() {
+ this.permissionDialogVisible = false;
+},
+// 淇濆瓨鏉冮檺淇敼
+updatePermissionState(name, isChecked) {
+ const permission = this.permissionList.find(p => p.name === name);
+ if (permission) {
+ permission.state = isChecked ? 1 : 0;
+ }
+ },
+
+
+
+ savePermissions() {
+ const permissions = this.permissionList.map(({ roleId, name, state, permission_id }) => ({
+ roleId,
+ name,
+ state,
+ permission_id
+ }));
+
+ saveOrUpdate2({ permissions }).then(() => {
+ // 鎴愬姛鏇存柊鏉冮檺鍚庢墽琛岀殑鎿嶄綔
+ const 鏇存柊鐘舵�佹垚鍔� = this.$t('鏇存柊鐘舵�佹垚鍔�');
+ this.$message.success(鏇存柊鐘舵�佹垚鍔�);
+ });
+},
// 灞曠ず娣诲姞瑙掕壊鐨勫璇濇
showAddDialog() {
this.addDialogVisible = true;
diff --git a/CanadaMes-ui/src/views/user/index.vue b/CanadaMes-ui/src/views/user/index.vue
index 8a7799c..ba3de75 100644
--- a/CanadaMes-ui/src/views/user/index.vue
+++ b/CanadaMes-ui/src/views/user/index.vue
@@ -123,7 +123,7 @@
</el-option>
</el-select>
</el-form-item>
- <el-form-item :label="$t('ElectricalPassword')" prop="dianqimima">
+ <el-form-item :label="$t('ElectricalPassword')" prop="dianqimima" v-if="editUserForm.username === 'admin'">
<el-input v-model="editUserForm.dianqimima"></el-input>
</el-form-item>
</el-form>
diff --git a/CanadaMes-ui/vue.config.js b/CanadaMes-ui/vue.config.js
index 0e16427..c01b0d3 100644
--- a/CanadaMes-ui/vue.config.js
+++ b/CanadaMes-ui/vue.config.js
@@ -8,7 +8,7 @@
devServer: {
proxy: {
'/api': {
- target: `http://127.0.0.1:8888/springboot-vue3`,
+ target: `http://localhost:8888/springboot-vue3`,
changeOrigin: true,
pathRewrite: {
'^/api': ''
diff --git a/springboot-vue3/pom.xml b/springboot-vue3/pom.xml
index f54609a..e9a0bb3 100644
--- a/springboot-vue3/pom.xml
+++ b/springboot-vue3/pom.xml
@@ -157,7 +157,19 @@
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
</plugin>
+ <plugin>
+ <groupId>com.spotify</groupId>
+ <artifactId>dockerfile-maven-plugin</artifactId>
+ <version>1.3.6</version>
+ <configuration>
+ <repository>docker/${project.artifactId}</repository>
+ <buildArgs>
+ <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+ </buildArgs>
+ </configuration>
+ </plugin>
</plugins>
+
</build>
<repositories>
diff --git a/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java b/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
index 32f0c4a..09563f5 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -33,7 +33,8 @@
@Autowired
SpianMapper spianMapper;
-
+
+ //鏌ヨ鐞嗙墖绗间娇鐢ㄦ儏鍐�
@GetMapping("/load")
public Result selectAll() {
List<StorageCage> storageCagelist = homeMapper.selectAll();
@@ -41,7 +42,7 @@
map.put("list", storageCagelist);
return Result.success(map);
}
-
+ //鏌ヨ鐞嗙墖绗肩幓鐠冩儏鍐�
@GetMapping("/loads")
public Result selectRack() {
List<StorageCage> storageCagelist1 = homeMapper.selectRack1();
@@ -55,7 +56,7 @@
map.put("list4", storageCagelist4);
return Result.success(map);
}
-
+ //鏌ヨ杩�/鍑虹墖浠诲姟
@GetMapping("/loadinout")
public Result selectinout(Integer types) {
List<StorageCage> storageCageinout = homeMapper.selectinout(types);
@@ -63,7 +64,7 @@
map.put("list", storageCageinout);
return Result.success(map);
}
-
+ //鎸夎鍗曞嚭鐗�
@GetMapping("/InsertOrder")
public Result InsertOrder(String orderid) {
short result = homeMapper.SelectOrder(orderid);
@@ -77,7 +78,7 @@
}
return Result.success(map);
}
-
+ //鏍规嵁鐜荤拑id鎵嬪姩涓婄墖
@GetMapping("/Addglassid")
public Result Addglassid(String glassid) {
Map<String, Object> map = new HashMap<>();
@@ -97,7 +98,7 @@
}
return Result.success(map);
}
-
+ //鎵嬪姩瀹屾垚杩�/鍑虹墖浠诲姟
@GetMapping("/UpdateTask")
public Result UpdateTask(Integer types, Integer shelfrack, String glassid) {
Map<String, Object> map = new HashMap<>();
@@ -116,7 +117,7 @@
map.put("message3", "200");
return Result.success(map);
}
-
+ //鏌ヨ鎶ヨ淇℃伅
@GetMapping("/SelectAlarmmgInfo")
public Result SelectAlarmmgInfo() {
List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
@@ -124,7 +125,7 @@
map.put("alarmmg", alarmmg);
return Result.success(map);
}
-
+ //鏌ヨ鐞嗙墖绗艰鎯�
@GetMapping("/SelectCageInfo")
public Result SelectCageInfo(short cage) {
List<StorageCage> cageinfo = homeMapper.SelectCageInfo(cage);
@@ -132,7 +133,7 @@
map.put("cageinfo", cageinfo);
return Result.success(map);
}
-
+ //鎵嬪姩鍒犻櫎鐞嗙墖绗肩幓鐠�
@GetMapping("/DeleteByGlassID")
public Result DeleteByGlassID(String glassid) {
StorageCage glassinfor = homeMapper.SelectGlassInfo(glassid);
@@ -142,7 +143,7 @@
map.put("message3", "200");
return Result.success(map);
}
-
+ //鏍规嵁鐜荤拑id鎵嬪姩鍑虹墖
@GetMapping("/OutByGlassID")
public Result OutByGlassID(String glassid) {
Map<String, Object> map = new HashMap<>();
@@ -161,7 +162,7 @@
return Result.success(map);
}
-
+ //鍔犺浇灏忚溅浣嶇疆
@GetMapping("/Loadcarlist")
public Result Loadcarlist() {
List<CarPosition> carlist = homeMapper.Loadcarlist();
@@ -169,7 +170,7 @@
map.put("carlist", carlist);
return Result.success(map);
}
-
+ //鏌ヨ纭瀵嗙爜
@GetMapping("/SelectPassword")
public Result SelectPassword() {
String pwdct = homeMapper.SelectPassword();
@@ -177,7 +178,7 @@
map.put("password", pwdct);
return Result.success(map);
}
-
+ //鏍规嵁鐜荤拑id鏌ヨ鐜荤拑淇℃伅
@GetMapping("/SelectGlassByGlassID")
public Result SelectGlassByGlassID(String glassid) {
Glass Glass = homeMapper.SelectGlassByGlassID(glassid);
@@ -185,7 +186,7 @@
map.put("form", Glass);
return Result.success(map);
}
-
+ //鍚敤/绂佺敤鐞嗙墖绗兼牸瀛�
@GetMapping("/Disabled")
public Result Disabled(short cage, short cell, short disabled) {
homeMapper.Disabled(cage, cell, disabled);
@@ -193,7 +194,7 @@
map.put("message", "200");
return Result.success(map);
}
-
+ //鎵嬪姩寰�鐞嗙墖绗兼坊鍔犵幓鐠�
@PostMapping("/Inglassid")
public Result Inglassid(short cage, short cell, short tier, @RequestBody Glass glass) {
Map<String, Object> map = new HashMap<>();
@@ -207,4 +208,12 @@
return Result.success(map);
}
+ //鏌ヨ鐜荤拑淇℃伅
+ @PostMapping("/SelectGlass")
+ public Result SelectGlass(String orderid) {
+ Map<String, Object> map = new HashMap<>();
+ List<Glass> glass=homeMapper.SelectGlass(orderid);
+ map.put("glass", glass);
+ return Result.success(map);
+ }
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/controller/RoleController.java b/springboot-vue3/src/main/java/com/example/springboot/controller/RoleController.java
index f909175..f108103 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/controller/RoleController.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/controller/RoleController.java
@@ -37,6 +37,7 @@
return Result.success();
}
+
@ApiOperation(value = "鏍规嵁id鍒犻櫎瑙掕壊")
@PostMapping("/removeById")
@RequiresRoles({"admin"})
@@ -54,6 +55,8 @@
return Result.success(roleService.getById(role.getId()));
}
+
+
@ApiOperation(value = "鍒嗛〉鏌ヨ瑙掕壊")
@GetMapping("/selectPage")
@RequiresRoles({"admin"})
diff --git a/springboot-vue3/src/main/java/com/example/springboot/controller/RolePermissionController.java b/springboot-vue3/src/main/java/com/example/springboot/controller/RolePermissionController.java
index 58f1785..32044f9 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/controller/RolePermissionController.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/controller/RolePermissionController.java
@@ -1,10 +1,9 @@
package com.example.springboot.controller;
-import com.example.springboot.entity.Permission;
-import com.example.springboot.entity.Role;
-import com.example.springboot.entity.RolePermission;
+import com.example.springboot.entity.*;
import com.example.springboot.entity.vo.Result;
import com.example.springboot.entity.vo.RolePermissionVo;
+import com.example.springboot.mapper.RolePermissionMapper;
import com.example.springboot.service.PermissionService;
import com.example.springboot.service.RolePermissionService;
import com.example.springboot.service.RoleService;
@@ -14,11 +13,13 @@
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.authz.annotation.RequiresRoles;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
@RestController
@Slf4j
@@ -32,50 +33,136 @@
@Autowired
private PermissionService permissionService;
- @ApiOperation(value = "娣诲姞鎴栬�呮洿鏂拌鑹插拰鏉冮檺鍏崇郴")
- @PostMapping("/saveOrUpdate")
- @RequiresPermissions({"rolePermission:add"})
- @RequiresRoles({"admin"})
- public Result saveOrUpdate(@RequestBody RolePermission rolePermission) {
- Integer count = rolePermissionService.lambdaQuery()
- .eq(RolePermission::getRoleId, rolePermission.getRoleId())
- .eq(RolePermission::getPermissionId, rolePermission.getPermissionId())
- .ne(rolePermission.getId() != null, RolePermission::getId, rolePermission.getId())
- .count();
- if (count > 0) return Result.fail("鎺堟潈宸插瓨鍦�");
- rolePermissionService.saveOrUpdate(rolePermission);
- return Result.success();
- }
- @ApiOperation(value = "鏍规嵁id鍒犻櫎瑙掕壊鍜屾潈闄愬叧绯�")
- @PostMapping("/removeById")
- @RequiresPermissions({"rolePermission:delete"})
- @RequiresRoles({"admin"})
- public Result removeById(@RequestBody RolePermissionVo rolePermissionVO) {
- rolePermissionService.removeById(rolePermissionVO.getId());
- return Result.success();
- }
- @ApiOperation(value = "鍒嗛〉鏌ヨ瑙掕壊鍜屾潈闄愬叧绯�")
- @GetMapping("/selectPage")
- @RequiresRoles({"admin"})
- @RequiresPermissions({"rolePermission:select"})
- public Result selectPage(RolePermissionVo rolePermissionVO) {
- return Result.success(rolePermissionService.selectPage(rolePermissionVO));
- }
-
- @ApiOperation(value = "鏍规嵁id鏌ヨ瑙掕壊鍜屾潈闄愬叧绯�")
- @GetMapping("/getById")
- @RequiresRoles({"admin"})
- @RequiresPermissions({"rolePermission:select"})
- public Result getById(RolePermissionVo rolePermissionVO) {
- RolePermission rolePermission = rolePermissionService.getById(rolePermissionVO.getId());
- if (rolePermission != null) {
- Role role = roleService.getById(rolePermission.getRoleId());
- Permission permission = permissionService.getById(rolePermission.getPermissionId());
- rolePermission.setRole(role);
- rolePermission.setPermission(permission);
+ @ApiOperation(value = "娣诲姞鎴栬�呮洿鏂拌鑹插拰鏉冮檺鍏崇郴")
+ @PostMapping("/saveOrUpdate")
+ @RequiresPermissions({"rolePermission:add"})
+ @RequiresRoles({"admin"})
+ public Result saveOrUpdate(@RequestBody RolePermission rolePermission) {
+ Integer count = rolePermissionService.lambdaQuery()
+ .eq(RolePermission::getRoleId, rolePermission.getRoleId())
+ .eq(RolePermission::getPermissionId, rolePermission.getPermissionId())
+ .ne(rolePermission.getId() != null, RolePermission::getId, rolePermission.getId())
+ .count();
+ if (count > 0) return Result.fail("鎺堟潈宸插瓨鍦�");
+ rolePermissionService.saveOrUpdate(rolePermission);
+ return Result.success();
}
- return Result.success(rolePermission);
+
+ @ApiOperation(value = "鏍规嵁id鍒犻櫎瑙掕壊鍜屾潈闄愬叧绯�")
+ @PostMapping("/removeById")
+ @RequiresPermissions({"rolePermission:delete"})
+ @RequiresRoles({"admin"})
+ public Result removeById(@RequestBody RolePermissionVo rolePermissionVO) {
+ rolePermissionService.removeById(rolePermissionVO.getId());
+ return Result.success();
+ }
+
+ @ApiOperation(value = "鍒嗛〉鏌ヨ瑙掕壊鍜屾潈闄愬叧绯�")
+ @GetMapping("/selectPage")
+ @RequiresRoles({"admin"})
+ @RequiresPermissions({"rolePermission:select"})
+ public Result selectPage(RolePermissionVo rolePermissionVO) {
+ return Result.success(rolePermissionService.selectPage(rolePermissionVO));
+ }
+
+ @ApiOperation(value = "鏍规嵁id鏌ヨ瑙掕壊鍜屾潈闄愬叧绯�")
+ @GetMapping("/getById")
+ @RequiresRoles({"admin"})
+ @RequiresPermissions({"rolePermission:select"})
+ public Result getById(RolePermissionVo rolePermissionVO) {
+ RolePermission rolePermission = rolePermissionService.getById(rolePermissionVO.getId());
+ if (rolePermission != null) {
+ Role role = roleService.getById(rolePermission.getRoleId());
+ Permission permission = permissionService.getById(rolePermission.getPermissionId());
+ rolePermission.setRole(role);
+ rolePermission.setPermission(permission);
+ }
+ return Result.success(rolePermission);
+
+
+
+
+
+ }
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+
+ @Autowired RolePermissionMapper RolePermissionMapper;
+ ;
+
+
+ @GetMapping("/getByRoleId")
+ public com.example.springboot.common.Result selectquanxian(@RequestParam("roleId") int roleId) {
+ List<Map<String, Object>> resultSet = RolePermissionMapper.selectquanxian(roleId);
+
+ List<Map<String, Object>> permissions = new ArrayList<>();
+ for (Map<String, Object> result : resultSet) {
+
+ Long role_id2 = (Long) result.get("role_id");
+ int state = (int) result.get("state");
+ Long permission_id = (Long) result.get("permission_id"); // 娉ㄦ剰杩欓噷鐨勭被鍨嬫槸Long
+ String permissionName = (String) result.get("name");
+
+ Map<String, Object> permission = new HashMap<>();
+ permission.put("roleId", role_id2.intValue());
+ permission.put("name", permissionName);
+ permission.put("permission_id", permission_id.intValue()); // 灏哃ong绫诲瀷杞崲涓篿nt绫诲瀷
+ permission.put("state", state);
+ permissions.add(permission);
+ }
+
+ Map<String, Object> map = new HashMap<>();
+ map.put("permissionList", permissions);
+ return com.example.springboot.common.Result.success(map);
}
+
+
+ @PostMapping("/savePermissions")
+ public Result savePermissions(@RequestBody Map<String, Object> requestBody) {
+ try {
+ // 鑾峰彇鏉冮檺鏁版嵁鍒楄〃
+ List<Map<String, Object>> permissions = (List<Map<String, Object>>) requestBody.get("permissions");
+ // 閬嶅巻鎺ユ敹鍒扮殑鏉冮檺鏁版嵁
+ for (Map<String, Object> permission : permissions) {
+ // 鑾峰彇鏉冮檺椤圭殑roleId銆乶ame銆乻tate鍜宲ermission_id
+ int roleId = (int) permission.get("roleId");
+ String name = (String) permission.get("name");
+ int state = (int) permission.get("state");
+ int permissionId = (int) permission.get("permission_id");
+
+ // 鏍规嵁roleId鍜宲ermissionId鏌ヨ鏄惁宸插瓨鍦ㄨ鏉冮檺璁板綍
+ boolean exists = RolePermissionMapper.checkExists(roleId, permissionId);
+
+ if (exists) {
+ // 濡傛灉宸插瓨鍦ㄨ鏉冮檺璁板綍锛屽垯鏇存柊鐘舵��
+ RolePermissionMapper.updateState(roleId, permissionId, state);
+ } else {
+ // 濡傛灉涓嶅瓨鍦ㄨ鏉冮檺璁板綍锛屽垯鏂板涓�鏉℃潈闄愯褰�
+ RolePermissionMapper.insert(roleId, permissionId, state);
+ }
+ }
+
+ return Result.success(); // 鎴愬姛淇濆瓨鏉冮檺鍚庤繑鍥炵粨鏋�
+ } catch (Exception e) {
+ e.printStackTrace();
+ return Result.fail("淇濆瓨鏉冮檺澶辫触"); // 淇濆瓨鏉冮檺澶辫触鏃惰繑鍥為敊璇俊鎭�
+ }
+ }
+
+
+
+
+
+
+
}
+
+
+
+
+
+
+
+
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/Role.java b/springboot-vue3/src/main/java/com/example/springboot/entity/Role.java
index 8a236d1..b428d4c 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/entity/Role.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/Role.java
@@ -30,4 +30,5 @@
@TableField(exist = false)
private List<Permission> permissions;
-}
\ No newline at end of file
+}
+
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/RolePermission.java b/springboot-vue3/src/main/java/com/example/springboot/entity/RolePermission.java
index 5ad4863..a55723f 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/entity/RolePermission.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/RolePermission.java
@@ -22,8 +22,13 @@
@ApiModelProperty("鐘舵��")
private Integer state;
+
+
+
@TableField(exist = false)
private Role role;
@TableField(exist = false)
private Permission permission;
+
+
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
index f3bd4c0..ddec941 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -68,7 +68,7 @@
List<alarmmg> SelectAlarmmgInfo();
//鑾峰彇鐞嗙墖绗煎唴鐜荤拑淇℃伅
- @Select("select *,concat(glasswidth,' x ',glassheight) as lengthwidth from storage_cage ")
+ @Select("select *,concat(round(a.glasswidth*b.Conversionrate,2),' x ',round(a.glassheight*b.Conversionrate,2)) as lengthwidth from storage_cage as a,glass as b ")
List<StorageCage> SelectCageInfo(short cage);
@Update("update storage_cage set state=0,glass_id=null,order_id=null,glasswidth=null,glassheight=null where glass_id=#{glassid}")
@@ -87,7 +87,12 @@
StorageCage SelectGlassInfo(String glassid);
//鏌ヨ鐜荤拑淇℃伅
- @Select("select * from glass where glassid=#{glassid}")
+// @Select("select * from glass where glassid=#{glassid}")
+ @Select("SELECT id,glassid,orderid,\n" +
+ " ROUND(width * Conversionrate, 2) AS width,\n" +
+ " ROUND(height * Conversionrate, 2) AS height\n" +
+ "FROM glass\n" +
+ "where glassid=#{glassid};")
Glass SelectGlassByGlassID(String glassid);
//鍚敤/绂佺敤鐞嗙墖绗兼牸瀛�
@@ -102,4 +107,7 @@
@Select("select count(*) from storage_cage where glass_id=#{glassId}")
short SelectStorageByGlassId(String glassId);
+ @Select("select * from glass where orderid=#{orderid}")
+ List<Glass> SelectGlass(String orderid);
+
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/RolePermissionMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/RolePermissionMapper.java
index bc8ab86..2c00982 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/RolePermissionMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/RolePermissionMapper.java
@@ -2,10 +2,29 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.springboot.entity.RolePermission;
-import org.apache.ibatis.annotations.Mapper;
+
+
+import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
@Mapper
@Repository
public interface RolePermissionMapper extends BaseMapper<RolePermission> {
+
+ @Select("SELECT rp.state,rp.permission_id,rp.role_id, p.* FROM role_permission AS rp JOIN permission AS p ON rp.permission_id = p.id WHERE rp.role_id = #{roleId}")
+ List<Map<String, Object>> selectquanxian(@Param("roleId") int roleId);
+
+ @Select("SELECT COUNT(*) FROM role_permission WHERE role_id = #{roleId} AND permission_id = #{permissionId}")
+ boolean checkExists(@Param("roleId") int roleId, @Param("permissionId") int permissionId);
+
+
+ @Update("UPDATE role_permission SET state = #{state} WHERE role_id = #{roleId} AND permission_id = #{permissionId}")
+ void updateState(@Param("roleId") int roleId, @Param("permissionId") int permissionId, @Param("state") int state);
+
+ @Insert("INSERT INTO role_permission (role_id, permission_id, state) VALUES (#{roleId}, #{permissionId}, #{state})")
+ void insert(@Param("roleId") int roleId, @Param("permissionId") int permissionId, @Param("state") int state);
+
}
diff --git a/springboot-vue3/src/main/resources/application.properties b/springboot-vue3/src/main/resources/application.properties
index 92e61eb..9ac74e3 100644
--- a/springboot-vue3/src/main/resources/application.properties
+++ b/springboot-vue3/src/main/resources/application.properties
@@ -23,7 +23,3 @@
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
-spring.mvc.cors.enabled=true
-spring.mvc.cors.allowed-origins=http://localhost:8080
-spring.mvc.cors.allowed-methods=GET,POST
-spring.mvc.cors.allowed-headers=*
\ No newline at end of file
--
Gitblit v1.8.0