From b43d75fee8cd67df67025029431c3295a0619f12 Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期二, 26 三月 2024 22:44:06 +0800
Subject: [PATCH] 暂存

---
 src/views/basicdata/machine/workstation.vue |  138 ++++++++++++++++++++++++++++++---
 src/api/model/system.js                     |    7 +
 src/main.js                                 |    6 +
 src/App.vue                                 |   87 ++++++++++++++-------
 src/api/model/basicdata.js                  |    2 
 5 files changed, 194 insertions(+), 46 deletions(-)

diff --git a/src/App.vue b/src/App.vue
index ed73c22..d131e70 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,3 +1,9 @@
+<!--
+ * @Date: 2024-03-23 09:49:06
+ * @LastEditors: gaoshp
+ * @LastEditTime: 2024-03-26 21:41:35
+ * @FilePath: /cps-web/src/App.vue
+-->
 <template>
 	<el-config-provider :locale="locale" :size="config.size" :zIndex="config.zIndex" :button="config.button">
 		<router-view></router-view>
@@ -5,42 +11,63 @@
 </template>
 
 <script>
-	import colorTool from '@/utils/color'
+import colorTool from '@/utils/color'
 
-	export default {
-		name: 'App',
-		data() {
-			return {
-				config: {
-					size: "default",
-					zIndex: 2000,
-					button: {
-						autoInsertSpace: false
-					}
-				}
-			}
-		},
-		computed: {
-			locale(){
-				return this.$i18n.messages[this.$i18n.locale].el
-			},
-		},
-		created() {
-			//璁剧疆涓婚棰滆壊
-			const app_color = this.$CONFIG.COLOR || this.$TOOL.data.get('APP_COLOR')
-			if(app_color){
-				document.documentElement.style.setProperty('--el-color-primary', app_color);
-				for (let i = 1; i <= 9; i++) {
-					document.documentElement.style.setProperty(`--el-color-primary-light-${i}`, colorTool.lighten(app_color,i/10));
-				}
-				for (let i = 1; i <= 9; i++) {
-					document.documentElement.style.setProperty(`--el-color-primary-dark-${i}`, colorTool.darken(app_color,i/10));
+export default {
+	name: 'App',
+	data() {
+		return {
+			config: {
+				size: "default",
+				zIndex: 2000,
+				button: {
+					autoInsertSpace: false
 				}
 			}
 		}
+	},
+	computed: {
+		locale() {
+			return this.$i18n.messages[this.$i18n.locale].el
+		},
+	},
+	created() {
+		//璁剧疆涓婚棰滆壊
+		const app_color = this.$CONFIG.COLOR || this.$TOOL.data.get('APP_COLOR')
+		if (app_color) {
+			document.documentElement.style.setProperty('--el-color-primary', app_color);
+			for (let i = 1; i <= 9; i++) {
+				document.documentElement.style.setProperty(`--el-color-primary-light-${i}`, colorTool.lighten(app_color, i / 10));
+			}
+			for (let i = 1; i <= 9; i++) {
+				document.documentElement.style.setProperty(`--el-color-primary-dark-${i}`, colorTool.darken(app_color, i / 10));
+			}
+		}
+	},
+	mounted() {
+		const debounce = (fn, delay) => {
+			let timer
+			return (...args) => {
+				if (timer) {
+					clearTimeout(timer)
+				}
+				timer = setTimeout(() => {
+					fn(...args)
+				}, delay)
+			}
+		}
+
+		const _ResizeObserver = window.ResizeObserver;
+		window.ResizeObserver = class ResizeObserver extends _ResizeObserver {
+			constructor(callback) {
+				callback = debounce(callback, 200);
+				super(callback);
+			}
+		}
 	}
+}
 </script>
 
 <style lang="scss">
-	@import '@/style/style.scss';
+@import '@/style/style.scss';
 </style>
diff --git a/src/api/model/basicdata.js b/src/api/model/basicdata.js
index e21493e..e19f919 100644
--- a/src/api/model/basicdata.js
+++ b/src/api/model/basicdata.js
@@ -1,7 +1,7 @@
 /*
  * @Date: 2024-03-24 11:37:47
  * @LastEditors: gaoshp
- * @LastEditTime: 2024-03-24 14:30:13
+ * @LastEditTime: 2024-03-26 19:40:37
  * @FilePath: /cps-web/src/api/model/basicdata.js
  */
 import config from "@/config"
diff --git a/src/api/model/system.js b/src/api/model/system.js
index b739d74..a795fc9 100644
--- a/src/api/model/system.js
+++ b/src/api/model/system.js
@@ -39,6 +39,13 @@
 			get: async function(params){
 				return await http.get(this.url, params);
 			}
+		},
+		getDic: {
+			url: `${config.API_URL}/blade-system/dict/dictionary`,
+			name: "鑾峰彇瀛楀吀鏁版嵁",
+			get: async function(params){
+				return await http.get(this.url, params);
+			}
 		}
 	},
 	role: {
diff --git a/src/main.js b/src/main.js
index afb5fc4..8c523ef 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,3 +1,9 @@
+/*
+ * @Date: 2024-03-23 09:49:06
+ * @LastEditors: gaoshp
+ * @LastEditTime: 2024-03-26 21:40:32
+ * @FilePath: /cps-web/src/main.js
+ */
 import { createApp } from 'vue'
 import ElementPlus from 'element-plus'
 import 'element-plus/dist/index.css'
diff --git a/src/views/basicdata/machine/workstation.vue b/src/views/basicdata/machine/workstation.vue
index 53d10bc..a656538 100644
--- a/src/views/basicdata/machine/workstation.vue
+++ b/src/views/basicdata/machine/workstation.vue
@@ -65,15 +65,79 @@
 											</el-button-group>
 										</template>
 									</el-table-column>
-
 								</scTable>
 							</el-main>
 						</el-container>
 					</el-container>
 				</el-tab-pane>
-
+				<!-- 宸ヤ綅缁� -->
 				<el-tab-pane label="宸ヤ綅缁�" name="2">
-
+					<el-container>
+						<el-aside width="200px" v-loading="showGrouploading">
+							<el-container>
+								<el-main class="nopadding">
+									<el-tree ref="group" class="menu" node-key="id" :data="group" 
+										:current-node-key="treeCheckKey"
+										:highlight-current="true" 
+										:expand-on-click-node="false"
+										:check-on-click-node="true"
+										:default-expanded-keys="[1]" 
+										:filter-node-method="groupFilterNode"
+										@node-click="groupClick"></el-tree>
+								</el-main>
+							</el-container>
+						</el-aside>
+						<el-container>
+							<el-header>
+								<div class="left-panel">
+									<el-button type="primary" plain>鏂板涓嬬骇</el-button>
+									<el-button v-show="!['1','101'].includes(treeCheckedNode.id)" type="danger" plain>鍒犻櫎</el-button>
+								</div>
+							</el-header>
+							<el-main class="">
+								<ul class="show-info" v-show="['1','101'].includes(treeCheckedNode.id)">
+									<li>鍚嶇О: {{treeCheckedNode.name}}</li>
+									<li>鎺掑簭: {{treeCheckedNode.sort}}</li>
+									<li>澶囨敞: {{treeCheckedNode.remark}}</li>
+								</ul>
+								<el-form v-show="beltline_type.map(item => item.dictKey).includes(treeCheckedNode.groupTag)" :model="form" :rules="rules" ref="dialogForm" label-width="200px"
+									label-position="left">
+									<el-form-item label="浜х嚎鏍囩" prop="meta.title">
+										<el-input v-model="form.meta.title" clearable placeholder="宸ヤ綅缁勫悕绉�"></el-input>
+									</el-form-item>
+									<el-form-item label="浜х嚎鍚嶇О" prop="meta.title">
+										<el-input v-model="form.meta.title" clearable placeholder="宸ヤ綅缁勫悕绉�"></el-input>
+									</el-form-item>
+									<el-form-item label="浜х嚎鎺掑簭" prop="meta.title">
+										<el-input v-model="form.meta.title" clearable placeholder="宸ヤ綅缁勫悕绉�"></el-input>
+									</el-form-item>
+									<el-form-item label="澶囨敞" prop="meta.title">
+										<el-input v-model="form.meta.title" clearable placeholder="宸ヤ綅缁勫悕绉�"></el-input>
+									</el-form-item>
+								</el-form>
+								<ul v-show="group_tag.map(item => item.dictKey).includes(treeCheckedNode.groupTag)">
+									<li>浜х嚎鍚嶇О:鍗冩枃绉戞妧</li>
+									<li>浜х嚎鏍囩:鏌旀�т骇绾�</li>
+									<li>澶囨敞:</li>
+								</ul>
+								<el-form v-show="group_tag.map(item => item.dictKey).includes(treeCheckedNode.groupTag)" :model="form" :rules="rules" ref="dialogForm" label-width="200px"
+									label-position="left">
+									<el-form-item label="宸ヤ綅缁勫悕绉�" prop="meta.title">
+										<el-input v-model="form.meta.title" clearable placeholder="宸ヤ綅缁勫悕绉�"></el-input>
+									</el-form-item>
+									<el-form-item label="宸ヤ綅缁勬帓搴�" prop="meta.title">
+										<el-input v-model="form.meta.title" clearable placeholder="宸ヤ綅缁勫悕绉�"></el-input>
+									</el-form-item>
+									<el-form-item label="宸ヤ綅缁勬爣绛�" prop="meta.title">
+										<el-input v-model="form.meta.title" clearable placeholder="宸ヤ綅缁勫悕绉�"></el-input>
+									</el-form-item>
+									<el-form-item label="澶囨敞" prop="meta.title">
+										<el-input v-model="form.meta.title" clearable placeholder="宸ヤ綅缁勫悕绉�"></el-input>
+									</el-form-item>
+								</el-form>
+							</el-main>
+						</el-container>
+					</el-container>
 				</el-tab-pane>
 
 			</el-tabs>
@@ -86,20 +150,56 @@
 	name: 'system',
 	data() {
 		return {
-			activeName: '1',
+			showGrouploading: false,
+			options: [],
+			activeName: '2',
 			group: [],
-			groupFilterText: ''
+			groupFilterText: '',
+			// --------
+			form: {
+				meta: {
+
+				}
+			},
+			rules: {},
+			treeCheckedNode: {},
+			treeCheckKey: [],
+			beltline_type: [],
+			group_tag: []
+		}
+	},
+	watch: {
+		activeName () {
+			this.queryList()
 		}
 	},
 	created() {
-		this.$API.basicdata.getWorkstationGroup.get().then(res => {
-			if (res.code == 200) {
-				let data = this.formatData(res.data)
-				this.group = data
-			}
-		})
+		this.init()
+		this.queryList()
 	},
 	methods: {
+		init () {
+			this.$API.system.dic.getDic.get({code: 'beltline_type'}).then(res => {
+				this.beltline_type = res.data
+			})
+			this.$API.system.dic.getDic.get({code: 'group_tag'}).then(res => {
+				this.group_tag = res.data
+			})
+			
+		},
+		queryList () {
+			this.showGrouploading = true
+			this.$API.basicdata.getWorkstationGroup.get().then(res => {
+			if (res.code == 200) {
+				let parent = res.data.filter(item => item.parentId == 0)[0]
+				this.treeCheckedNode = parent
+				this.treeCheckKey = parent.id
+				let data = this.formatData(res.data)
+				this.group = data
+				this.showGrouploading = false
+			}
+		})
+		},
 		formatData(data, current) {
 			let newData = []
 			if (!current) {
@@ -110,7 +210,9 @@
 			} else {
 				let res = data.filter(v => v.parentId === current.id)
 				res = res.map(item => {
-					item.children = this.formatData(data, item)
+					item.children = this.formatData(data, item).sort((a,b) => {
+						return a.sort - b.sort
+					})
 					return item
 				})
 				return res
@@ -120,8 +222,9 @@
 		groupFilterNode() {
 
 		},
-		groupClick() {
-
+		groupClick(node) {
+			console.log(node)
+			this.treeCheckedNode = node
 		},
 		table_add() {
 			var newRow = {
@@ -146,4 +249,9 @@
 }
 </script>
 
-<style></style>
+<style scoped>
+.show-info {
+	list-style: none;
+	font-size: 14px;
+}
+</style>

--
Gitblit v1.9.3