From 19f83633217b90cbc9625bca4cf7d5642be4824c Mon Sep 17 00:00:00 2001
From: lzhe <lzhe@example.com>
Date: 星期四, 18 四月 2024 18:27:48 +0800
Subject: [PATCH] 1
---
src/views/mdc/add-station-status.vue | 125 +++++++++++++++
src/views/mdc/state-feedback.vue | 17 --
src/views/mdc/station-live.vue | 321 ++++++++++++++++++++++++++++++++++++++--
src/views/mdc/station.png | 0
4 files changed, 430 insertions(+), 33 deletions(-)
diff --git a/src/views/mdc/add-station-status.vue b/src/views/mdc/add-station-status.vue
new file mode 100644
index 0000000..7134425
--- /dev/null
+++ b/src/views/mdc/add-station-status.vue
@@ -0,0 +1,125 @@
+<template>
+ <el-dialog :title="titleMap[mode]" v-model="visible" :width="570" destroy-on-close @closed="$emit('closed')">
+ <el-form :model="addDictForm" :rules="addDictRules" :disabled="mode=='show'" ref="dialogForm" label-width="120px" label-position="center">
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="鐘舵�佹椂闂�">
+ <el-date-picker v-model="addDictForm.date" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" align="right" value-format="YYYY-MM-DD HH:mm:ss" @change="dateChange">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <!-- <el-col :span="24">
+ <el-form-item label="鐘舵��" prop="wcs">
+ <el-select v-model="addDictForm.wcs" style="width: 100%">
+ <el-option v-for="item in feedBackStatusList" :key="item.code" :label="item.name" :value="item.code"/>
+ </el-select>
+ </el-form-item>
+ </el-col> -->
+ <el-col :span="24">
+ <el-form-item label="鎻忚堪">
+ <el-input v-model="addDictForm.description" placeholder="鎻忚堪" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <template #footer>
+ <el-button @click="visible=false" >鍙� 娑�</el-button>
+ <el-button v-if="mode!='show'" type="primary" :loading="isSaveing" @click="dictSubmit()">淇� 瀛�</el-button>
+ </template>
+ </el-dialog>
+</template>
+
+<script>
+ export default {
+ emits: ['success', 'closed'],
+ data() {
+ return {
+ value1: true,
+ mode: "add",
+ titleMap: {
+ add: '鐘舵�佸弽棣�',
+ edit: '淇敼',
+ show: '鏌ョ湅'
+ },
+ visible: false,
+ isSaveing: false,
+ //琛ㄥ崟鏁版嵁
+ addDictForm: {
+ description: "",
+ date: "",
+ endTime: "",
+ startTime: "",
+ wcs: ""
+ },
+ //楠岃瘉瑙勫垯
+ addDictRules: {
+ wcs:[{required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'change'}]
+ }
+ }
+ },
+ mounted() {
+
+ },
+ methods: {
+ dateChange(val) {
+ this.addDictForm.startTime = val[0];
+ this.addDictForm.endTime = val[1];
+ },
+ //鏄剧ず
+ open(mode='add'){
+ this.mode = mode;
+ this.visible = true;
+ return this
+ },
+ //琛ㄥ崟鎻愪氦鏂规硶
+ dictSubmit(){
+ var obj = Object.assign({},this.addDictForm);
+ obj.workstationIds = [this.workstationId]
+ var that = this;
+ this.$refs.dialogForm.validate(async (valid) => {
+ if (valid) {
+ this.isSaveing = true;
+ this.$HTTP.post("/api/blade-cps/workstation-wcs-feedback/overwrite-feedback-check",obj).then(res=> {
+ that.isSaveing = false;
+ if(res.code == 200) {
+ if(res.data) {
+ that.$confirm(`鍙嶉鐨勬椂闂翠笌宸叉湁鍙嶉閲嶅彔锛屾槸鍚﹁鐩朻, '', {
+ type: 'warning'
+ }).then(() => {
+ that.$HTTP.post("/api/blade-cps/workstation-wcs-feedback/start-feedback-by-no-immediate",obj).then(res=> {
+ if(res.code == 200) {
+ that.$message.success("鎿嶄綔鎴愬姛");
+ that.$emit('success', this.addDictForm, this.mode);
+ that.visible = false;
+ }
+ })
+ }).catch(() => {})
+ }else {
+ that.$HTTP.post("/api/blade-cps/workstation-wcs-feedback/start-feedback-by-no-immediate",obj).then(res=> {
+ if(res.code == 200) {
+ that.$message.success("鎿嶄綔鎴愬姛");
+ that.$emit('success', this.addDictForm, this.mode);
+ that.visible = false;
+ }
+ })
+ }
+ }else {
+ this.$alert(res.message, "鎻愮ず", {type: 'error'});
+ }
+ })
+ }else{
+ return false;
+ }
+ })
+ },
+ //琛ㄥ崟娉ㄥ叆鏁版嵁
+ setData(data){
+ //鍙互鍜屼笂闈竴鏍峰崟涓敞鍏ワ紝涔熷彲浠ュ儚涓嬮潰涓�鏍风洿鎺ュ悎骞惰繘鍘�
+ //Object.assign(this.addDictForm, data);
+ }
+ }
+ }
+</script>
+
+<style>
+</style>
diff --git a/src/views/mdc/state-feedback.vue b/src/views/mdc/state-feedback.vue
index 27adbd7..a487cbb 100644
--- a/src/views/mdc/state-feedback.vue
+++ b/src/views/mdc/state-feedback.vue
@@ -2,7 +2,7 @@
* @Author: lzhe lzhe@example.com
* @Date: 2024-03-26 10:28:33
* @LastEditors: lzhe lzhe@example.com
- * @LastEditTime: 2024-04-18 17:10:39
+ * @LastEditTime: 2024-04-18 18:07:47
* @FilePath: /smart-web/src/views/master/person/main/index.vue
* @Description: 杩欐槸榛樿璁剧疆,璇疯缃甡customMade`, 鎵撳紑koroFileHeader鏌ョ湅閰嶇疆 杩涜璁剧疆: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
@@ -273,21 +273,6 @@
this.$HTTP.post("/api/blade-cps/workstation-wcs-feedback/page?current=1&size=15",obj).then(res=> {
if(res.code == 200) {
this.searchDataList = res.data.records;
- }
- })
- },
- loadNode(node, resolve, reject) {
- if(node.data.id) {
- this.parentId = node.data.id;
- }else {
- this.parentId = '0';
- }
- this.$HTTP.get("/api/blade-system/menu/lazy-list",{parentId: this.parentId}).then(res=> {
- if(res.code == 200) {
- res.data.forEach(node => {
- node.hasChildren = !node.hasChildren;
- });
- resolve(res.data);
}
})
},
diff --git a/src/views/mdc/station-live.vue b/src/views/mdc/station-live.vue
index 8cfa92b..7eba7c9 100644
--- a/src/views/mdc/station-live.vue
+++ b/src/views/mdc/station-live.vue
@@ -1,24 +1,311 @@
<!--
- * @Date: 2024-04-09 22:11:21
- * @LastEditors: Sneed
- * @LastEditTime: 2024-04-13 22:15:47
- * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/mdc/station-live.vue
- 鐘舵�佸弽棣�
+ * @Author: lzhe lzhe@example.com
+ * @Date: 2024-03-26 10:28:33
+ * @LastEditors: lzhe lzhe@example.com
+ * @LastEditTime: 2024-04-18 18:27:19
+ * @FilePath: /smart-web/src/views/master/person/main/index.vue
+ * @Description: 杩欐槸榛樿璁剧疆,璇疯缃甡customMade`, 鎵撳紑koroFileHeader鏌ョ湅閰嶇疆 杩涜璁剧疆: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
- <el-main>
- <el-card shadow="never">
- 鏁堢巼鍒嗘瀽
- </el-card>
- </el-main>
+ <div class="aposcope-main">
+ <div class="aposcope-left">
+ <div class="left-title">鏌ヨ鏉′欢</div>
+ <el-tree :data="tableData" node-key="id" default-expand-all :expand-on-click-node="false" :props="defalutProps" @node-click="handleNodeClick" ref="treeRef" highlight-current />
+ </div>
+ <div class="aposcope-right">
+ <div class="content-machine-box">
+ <div class="content-machine-img"><img src="./station.png" alt=""></div>
+ <div class="content-machine-detail">
+ <div class="content-machine-name">461</div>
+ <el-form :model="stationForm" ref="dialogForm" label-width="80px" label-position="center" style="width: 100%;">
+ <el-row>
+ <el-col :span="8">
+ <el-form-item label="宸ヤ綅缂栧彿">{{stationForm.test}}</el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鏈哄櫒鍝佺墝">{{stationForm.test}}</el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鏈哄櫒缂栧彿">{{stationForm.test}}</el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鏈哄櫒鍚嶇О">{{stationForm.test}}</el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ </div>
+ </div>
+ <div class="collect-info-panel">
+ <div class="fact-analysis-realtim">
+ <div class="fact-analysis-card">
+ <div class="card-name" style="background-color: rgb(127, 192, 192);">璁惧鐘舵��</div>
+ <div class="card-value" style="background-color: rgba(127, 192, 192, 0.14);"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <save-dialog v-if="dialog.save" ref="saveDialog" @success="addfeedbackSuccess" @closed="dialog.save=false"></save-dialog>
</template>
-
<script>
- export default {
-
- }
+import saveDialog from './add-station-status'
+ export default {
+ name: "state-feedback",
+ data(){
+ return {
+ stationForm: {
+ test: "461"
+ },
+ dialog: {
+ save: false
+ },
+ lastLevelId: "",
+ current: "1",
+ size: "15",
+ searchData: {
+ feedBackStatus: [],
+ date: [],
+ endDate: "",
+ startDate: ""
+ },
+ searchDataList: [], //鍙充晶鏁版嵁list
+ aList: [],
+ defalutProps: {
+ label: 'title',
+ children: 'children',
+ isLeaf: 'hasChildren',
+ disabled: 'disabled'
+ },
+ parentId: "0",
+ tableData: [],
+ searchSelection: []
+ }
+ },
+ created(){
+
+ },
+ mounted(){
+ this.getTreeList();
+ },
+ components: {
+ saveDialog
+ },
+ methods: {
+ addfeedbackSuccess() {
+ this.getlist();
+ },
+ feedBackStatusChange(val) {
+ this.getlist();
+ },
+ handleNodeClick(data) {
+ if(data.code) {
+ this.lastLevelId = data.id;
+ var obj = {
+ workstationId: this.lastLevelId,
+ }
+ if(this.searchData.feedBackStatus.length != 0) {
+ obj.feedBackStatus = this.searchData.feedBackStatus;
+ }
+ if(this.searchData.endDate) {
+ obj.endDate = this.searchData.endDate;
+ }
+ if(this.searchData.startDate) {
+ obj.startDate = this.searchData.startDate;
+ }
+ this.$HTTP.post("/api/blade-cps/workstation-wcs-feedback/page?current=1&size=15",obj).then(res=> {
+ if(res.code == 200) {
+ this.searchDataList = res.data.records;
+ }
+ })
+ }
+ },
+ getLastLevelIds(tree) {
+ if (tree.length === 0) return ""; // 濡傛灉娌℃湁鏍硅妭鐐癸紝杩斿洖绌�
+ const lastLevelIds = [];
+ const lastLevelCodes = [];
+ function traverseTree(node) {
+ if(!node.code) {
+ lastLevelCodes.push(node.id);
+ }
+ if (node.children.length > 0) {
+ node.children.forEach(traverseTree); // 閫掑綊閬嶅巻瀛愯妭鐐�
+ } else {
+ if(node.code) {
+ lastLevelIds.push(node.id); // 鏈塩ode鎵嶈
+ }
+ }
+ }
+ // 鍙亶鍘嗙涓�涓牴鑺傜偣
+ traverseTree(tree[0]);
+ return {lastLevelCodes,lastLevelId:lastLevelIds[0]}; // 杩斿洖lastLevelCodes锛氭病鏈塩ode鐨勬暟缁勩�俵astLevelId锛氭湁code鐨勭涓�涓猧d
+ },
+ buildTree(items) {
+ const idMap = {};
+ const tree = [];
+ // 绗竴姝ワ細鍒涘缓id鍒板璞$殑鏄犲皠
+ items.forEach(item => {
+ idMap[item.id] = { ...item, children: [] };
+ });
+ // 绗簩姝ワ細鏋勫缓鏍戝舰缁撴瀯
+ items.forEach(item => {
+ const currentNode = idMap[item.id];
+ // 濡傛灉parentId涓�0锛岃鏄庢槸鏍硅妭鐐�
+ if (item.parentId === 0) {
+ tree.push(currentNode);
+ } else {
+ // 鍚﹀垯锛屾煡鎵剧埗鑺傜偣锛屽苟灏嗗綋鍓嶈妭鐐规坊鍔犲埌鐖惰妭鐐圭殑children鏁扮粍涓�
+ const parentId = item.parentId;
+ if (idMap[parentId]) {
+ idMap[parentId].children.push(currentNode);
+ }
+ }
+ });
+ return tree;
+ },
+ addTreeDisable(treeData) {
+ var tree = [];
+ treeData.forEach(item=> {
+ if(item.code) {
+ item.disabled = false;
+ }else {
+ item.disabled = true;
+ }
+ tree.push(item);
+ })
+ return tree;
+ },
+ getTreeList(flag) {
+ var obj = {
+ groupCategory: 1,
+ groupType: "group_workstation"
+ }
+ this.$HTTP.post("/api/blade-cps/group/groupWorkstation/type",obj).then(res=> {
+ if(res.code == 200) {
+ if (res.code == 200) {
+ var treeDisabled = this.addTreeDisable(res.data);
+ this.tableData = this.buildTree(treeDisabled); //浠庢墎骞冲寲鍙樹负鏍戠姸缁撴瀯
+ this.$nextTick(()=> {
+ this.lastLevelId = this.getLastLevelIds(this.tableData).lastLevelId;
+ this.$refs.treeRef.setCurrentKey(this.lastLevelId); //绗竴涓妭鐐圭殑绗竴涓瓙鑺傜偣鏈�鍚庝竴绾ч粯璁ら�変腑
+ this.getlist(); //娓叉煋鍙嶉鍒楄〃
+ })
+
+ }
+ }
+ })
+ },
+ getlist() {
+ var obj = {
+ workstationId: this.lastLevelId,
+ }
+ if(this.searchData.feedBackStatus != 0) {
+ obj.feedBackStatus = this.searchData.feedBackStatus;
+ }
+ if(this.searchData.endDate) {
+ obj.endDate = this.searchData.endDate;
+ }
+ if(this.searchData.startDate) {
+ obj.startDate = this.searchData.startDate;
+ }
+ this.$HTTP.post("/api/blade-cps/workstation-wcs-feedback/page?current=1&size=15",obj).then(res=> {
+ if(res.code == 200) {
+ this.searchDataList = res.data.records;
+ }
+ })
+ }
+ }
+ }
</script>
-
-<style lang="scss" scoped>
-
+<style scoped>
+.aposcope-main {
+ display: flex;
+ min-height: 100%;
+ margin: 8px;
+}
+.aposcope-left {
+ width: 240px;
+ margin-right: 8px;
+ padding: 4px;
+ background-color: #fff;
+}
+.aposcope-right {
+ flex: 1;
+ padding: 8px;
+ background-color: #fff;
+}
+.left-title {
+ font-size: 16px;
+ text-align: center;
+ height: 38px;
+ line-height: 38px;
+ border-bottom: 1px solid #e2e2e2;
+ background-color: #409eff;
+ color: #fff;
+ border-radius: 2px 2px 0 0;
+}
+.content-machine-box {
+ display: flex;
+ align-items: center;
+}
+.content-machine-img {
+ margin: 14px;
+ padding: 2px;
+ border: 1px solid #e8e8e8;
+ width: 148px;
+ height: 145px;
+ justify-content: center;
+}
+.content-machine-img img {
+ width: 135px;
+ height: 135px;
+}
+.content-machine-detail {
+ display: flex;
+ width: calc(100% - 210px);
+ flex-direction: column;
+ align-items: flex-start;
+ align-content: flex-start;
+ flex-wrap: nowrap;
+}
+.content-machine-name {
+ margin-bottom: 12px;
+ font-size: 24px;
+ font-weight: 700;
+}
+.collect-info-panel {
+ background-color: rgba(59, 142, 142, .06);
+ padding: 8px;
+ padding-top: 0;
+}
+.fact-analysis-realtim {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+ align-content: flex-start;
+ box-sizing: border-box;
+ background: #fff;
+}
+.fact-analysis-card {
+ border-radius: 2px;
+ box-sizing: border-box;
+ display: flex;
+ margin: 8px;
+}
+.fact-analysis-card .card-name {
+ width: 98px;
+ height: 68px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: #fff;
+}
+.fact-analysis-card .card-value {
+ min-width: 118px;
+ max-width: 396px;
+ align-items: center;
+ padding: 0 8px;
+ overflow: hidden;
+ word-break: break-all;
+}
</style>
\ No newline at end of file
diff --git a/src/views/mdc/station.png b/src/views/mdc/station.png
new file mode 100644
index 0000000..c44b787
--- /dev/null
+++ b/src/views/mdc/station.png
Binary files differ
--
Gitblit v1.9.3