From 00c8943add0753245977bdc4eb3dc7d979cf3f45 Mon Sep 17 00:00:00 2001 From: yangys <y_ys79@sina.com> Date: 星期日, 14 一月 2024 17:17:13 +0800 Subject: [PATCH] Merge branch 'master' of http://www.beijingsoft.cn:9090/r/mdc-front --- src/container/Map/addMachine.vue | 142 +++++--- src/container/workshop/index.vue | 12 src/container/maintenance/index.vue | 31 + src/container/ledger/index.vue | 32 + src/api/Api.js | 22 + src/container/component/index.vue | 11 src/container/devicemaintenance/Manage-add-update.vue | 135 ++++++++ src/router/index.js | 5 src/container/home/index.vue | 4 src/container/devicemaintenance/index.vue | 167 ++++++++++ src/container/Map/Map.vue | 78 ++++ src/container/workshop/device.vue | 33 + src/container/deviceType/index.vue | 4 src/container/maintenance/dailyMAdd.vue | 237 +++++--------- 14 files changed, 667 insertions(+), 246 deletions(-) diff --git a/src/api/Api.js b/src/api/Api.js index 8599214..ec6ecc8 100644 --- a/src/api/Api.js +++ b/src/api/Api.js @@ -1,7 +1,7 @@ /* * @Date: 2024-01-10 20:37:45 * @LastEditors: Sneed - * @LastEditTime: 2024-01-13 21:27:18 + * @LastEditTime: 2024-01-14 16:17:20 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/mdc/src/api/Api.js */ import ajax from '@/utils/ajax' @@ -25,6 +25,10 @@ accountQuery: { url: '/account/remainings', method: 'GET' + }, + accountDel: { + url: '/account/delete', + method: 'POST' }, componentQuery: { url: '/component/pageQuery', @@ -69,6 +73,22 @@ machineConcern: { url: '/machine/concern', method: 'POST' + }, + machineQuery: { + url: '/machine/pageQuery', + method: 'POST' + }, + machineSave: { + url: '/machine/save', + method: 'POST' + }, + machineUpdate: { + url: '/machine/modify', + method: 'POST' + }, + userList: { + url: '/user/list', + method: 'GET' } } // 姝e紡鐜閰嶇疆鍦板潃 diff --git a/src/container/Map/Map.vue b/src/container/Map/Map.vue index eac3ee5..9680251 100644 --- a/src/container/Map/Map.vue +++ b/src/container/Map/Map.vue @@ -1,7 +1,7 @@ <!-- * @Date: 2024-01-05 23:47:53 * @LastEditors: Sneed - * @LastEditTime: 2024-01-13 23:22:52 + * @LastEditTime: 2024-01-14 15:07:18 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/mdc/src/container/Map/Map.vue --> <template> @@ -16,13 +16,14 @@ <div class="plant-name" v-if="status===2">{{plantName}}</div> <el-input class="plant-name" v-if="status!==2" v-model="plantName" placeholder="璇疯緭鍏ュ巶鍚�"/> </div> - <div class="table" > + <div class="table" :class="$route.name ==='preview' ? 'active' : ''" > <div class="table-action" :style="position" v-show="showAction && status !== 2"> <div @click="merge">鍚堝苟</div> <div @click="split">鎷嗗垎</div> <div @click="sign(1)">杩囬亾</div> <div @click="sign(2)">鏈哄簥</div> <div @click="sign(0)">鍙栨秷</div> + <div @click="edit" v-if="showEdit">淇敼鏈哄簥</div> <!-- <div>澧炲姞琛�</div> --> <!-- <div>鍒犻櫎琛�</div> --> <!-- <div>澧炲姞鍒�</div> --> @@ -70,16 +71,12 @@ </div> --> <Device v-if="v.id" :id="v.id" style="width: 100%;height: 100%;"></Device> </td> - <!-- <td></td> --> </tr> - <!-- <tr> - <td></td> - </tr> --> </table> </div> </div> </div> - <addMachine :id="id" @setmachineId="setmachineId" v-else @close="close"/> + <addMachine :id="id" :machineid="machineid" @setmachineId="setmachineId" v-else @close="close"/> </div> </template> @@ -114,6 +111,34 @@ }, id: { type: [Number,String] + } + }, + computed: { + showEdit() { + try { + const { x, x1, y, y1 } = this.range + if (this.range && x && x1 && y && y1) { + let start = this.map[x][y] + return this.map[x][y].id && (start.rowIndex + start.rowspan -1) === x1 && (start.colIndex + start.colspan -1) === y1 + } + } catch (error) { + return false + } + }, + machineid () { + try { + const { x, x1, y, y1 } = this.range + if (this.range && x && x1 && y && y1) { + let start = this.map[x][y] + if (this.map[x][y].id && (start.rowIndex + start.rowspan -1) === x1 && (start.colIndex + start.colspan -1) === y1) { + return start.id + } else { + return '' + } + } + } catch (error) { + return '' + } } }, data() { @@ -180,6 +205,15 @@ if (this.currentMap.length > 0) this.map = this.currentMap this.rows = this.currentMap.length; this.cols = this.currentMap[0].length; + if (this.$route.name === 'preview') { + this.$nextTick(() => { + let {width} = document.querySelector('.table div').getBoundingClientRect() + console.log(document.querySelector('.table div').getBoundingClientRect()) + // document.querySelector('.table').scrollLeft + // document.querySelector('.table').scrollTo({left: }) + }) + } + }, immediate: true }, @@ -196,9 +230,8 @@ try { this.height = (document.querySelector('.table').getBoundingClientRect().height - 30) / 20 } catch (error) { - } - + console.log(this.$route.name) }, beforeUpdate() { try { @@ -235,7 +268,8 @@ }, contextmenu(e) { console.log(e) - if(this.status ===2) return + if(this.status ===2) return + if (!this.range.x) return // if (this.range.x !=='') return e.preventDefault() e.stopPropagation() @@ -359,6 +393,11 @@ close () { this.addStatus = false }, + edit (e) { + if(this.status ===2) return + e.stopPropagation() + this.addStatus = true + }, setmachineId (id) { console.log(id) if (!id) return @@ -373,6 +412,19 @@ } </script> <style lang="scss" scoped> + +@keyframes move { + 0% { + // left: 100%; + // transform: translate(0,0); + // scrollTop: 0 + } + 100% { + // left: 100%; + // transform: translate(-100%,0); + // scrollTop: 100% + } +} .map { width: 100%; height: 100%; @@ -413,6 +465,11 @@ } } +.table.active { + // position: relative; + // left: 100%; + // animation: move 6s infinite alternate; +} .table { // margin-top: 10px; // display: flex; @@ -421,6 +478,7 @@ height: 100%; position: relative; overflow-x: scroll; + .table-action { position: absolute; z-index: 999; diff --git a/src/container/Map/addMachine.vue b/src/container/Map/addMachine.vue index 1a0c427..6b04565 100644 --- a/src/container/Map/addMachine.vue +++ b/src/container/Map/addMachine.vue @@ -1,7 +1,7 @@ <!-- * @Date: 2024-01-10 22:28:38 * @LastEditors: Sneed - * @LastEditTime: 2024-01-12 21:21:48 + * @LastEditTime: 2024-01-14 15:04:42 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/mdc/src/container/Map/addMachine.vue --> <template> @@ -11,12 +11,12 @@ <el-input class="value" v-model="addInfo.name"></el-input> </div> <div class="map-add-item"> - <span>鏈哄簥</span> - <el-select class="value" v-model="addInfo.id" placeholder="璇烽�夋嫨"> - <el-option v-for="item in accountList" :key="item.machineId" :label="item.uuid" :value="item.machineId"> - </el-option> - </el-select> - </div> + <span>鏈哄簥</span> + <el-select :disabled="!!machineid" class="value" v-model="addInfo.id" placeholder="璇烽�夋嫨"> + <el-option v-for="item in accountList" :key="item.machineId" :label="item.uuid" :value="item.machineId"> + </el-option> + </el-select> + </div> <div class="map-add-item"> <span>IP</span> <el-input class="value" v-model="addInfo.ip"></el-input> @@ -68,10 +68,10 @@ </div> </template> <script> -import { getWsl,getPcl,getRequest } from '@/api/Api' +import { getWsl, getPcl, getRequest } from '@/api/Api' export default { - props: ['id'], - data () { + props: ['id', 'machineid'], + data() { return { shiftTypes: [ { @@ -104,76 +104,112 @@ }, } }, - created () { + watch: { + machineid: { + handler(val) { + if (val) { + setTimeout(() => { + getRequest('machineQuery', { size: 10, machineId: val }).then(res => { + this.changewsl(res.data.records[0].workshopId) + this.$nextTick(() => { + try { + Object.keys(this.addInfo).forEach(item => { + this.addInfo[item] = res.data.records[0][item] + }) + // this.addInfo.id = res.data.records[0].id + } catch (error) { + console.error(error) + } + }) + }) + }, 1000) + + } + }, + immediate: true + } + }, + created() { getPcl().then(res => { this.protocolList = res.data }) getWsl().then(res => { this.workshopList = res.data }) - getRequest('accountQuery',{}).then(res => { + getRequest('accountQuery', {}).then(res => { console.log(res) try { this.accountList = res.data } catch (error) { this.accountList = [] } - + }) }, methods: { - saveDevice () { - this.$emit('setmachineId',this.addInfo.id) - return - this.$http.postJson('/machine/save',{ - ...this.addInfo, - plantId: this.id - }).then(res => { - this.$emit('setmachineId',this.addInfo.id) - }) + saveDevice() { + let url = '/machine/save' + if (this.machineid) { + getRequest('machineUpdate',{ + ...this.addInfo, + plantId: this.id + }).then(res => { + this.$emit('setmachineId', this.addInfo.id) + }) + } else { + getRequest('machineSave',{ + ...this.addInfo, + plantId: this.id + }).then(res => { + this.$emit('setmachineId', this.addInfo.id) + }) + } }, - changewsl (val) { - console.log(val) + changewsl(val) { + console.log(val, 'changewsl') try { - this.sectionIds = this.workshopList.find(item => item.id ===val).sections + this.sectionIds = this.workshopList.find(item => item.id === val).sections } catch (error) { this.sectionIds = [] } }, - close () { + close() { this.$emit('close') } }, } </script> <style lang="scss" scoped> - .map-add { - width: 100%; - height: 100%; - overflow: auto; - position: relative; - .map-add-item { - margin-top: 24px; - display: flex; - justify-content: center; - align-items: center; - span { - width: 150px; - font-size: 16px; - color: #C6DCE0; - text-align: right; - margin-right: 16px; - } - .value { - width: 400px; - } - } - .map-add-footer { - position: absolute; - bottom: 0; +.map-add { + width: 100%; + height: 100%; + overflow: auto; + position: relative; + + .map-add-item { + margin-top: 24px; + display: flex; + justify-content: center; + align-items: center; + + span { + width: 150px; + font-size: 16px; + color: #C6DCE0; text-align: right; - padding-right: 30px; - width: 100%; + margin-right: 16px; + } + + .value { + width: 400px; } } -</style> \ No newline at end of file + + .map-add-footer { + position: absolute; + bottom: 0; + text-align: right; + padding-right: 30px; + width: 100%; + } +}</style> \ No newline at end of file diff --git a/src/container/component/index.vue b/src/container/component/index.vue index 88983dc..115b671 100644 --- a/src/container/component/index.vue +++ b/src/container/component/index.vue @@ -1,7 +1,7 @@ <!-- * @Date: 2024-01-06 17:40:19 * @LastEditors: Sneed - * @LastEditTime: 2024-01-13 22:13:05 + * @LastEditTime: 2024-01-14 15:36:44 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/mdc/src/container/component/index.vue --> <template> @@ -64,7 +64,7 @@ </template> <template slot="columns"> <el-table-column - prop="date" + prop="machineId" label="鏈哄簥鍚�" width="180"> </el-table-column> @@ -74,12 +74,15 @@ width="180"> </el-table-column> <el-table-column - prop="address" + prop="process" label="宸ュ簭鍙�"> </el-table-column> <el-table-column - prop="address" + prop="time" label="鍔犲伐鏃堕棿"> + <template slot-scope="scope"> + <span>{{scope.row.time.slice(0,10)}}</span> + </template> </el-table-column> </template> </List> diff --git a/src/container/deviceType/index.vue b/src/container/deviceType/index.vue index 6879a4e..73332a7 100644 --- a/src/container/deviceType/index.vue +++ b/src/container/deviceType/index.vue @@ -1,7 +1,7 @@ <!-- * @Date: 2024-01-06 17:40:19 * @LastEditors: Sneed - * @LastEditTime: 2024-01-13 11:35:29 + * @LastEditTime: 2024-01-14 14:12:18 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/mdc/src/container/deviceType/index.vue --> <template> @@ -14,8 +14,6 @@ <el-input class="item-value" v-model="queryInfo.name"></el-input> </div> - - <div class="item"> <el-button type="primary" size="small" @click="query">鏌ヨ</el-button> </div> diff --git a/src/container/devicemaintenance/Manage-add-update.vue b/src/container/devicemaintenance/Manage-add-update.vue new file mode 100644 index 0000000..f95fc32 --- /dev/null +++ b/src/container/devicemaintenance/Manage-add-update.vue @@ -0,0 +1,135 @@ +<template> + <div> + <el-dialog + :title="!dataForm.id ? '鏂板缓' : '缂栬緫'" + :close-on-click-modal="false" + width="80%" + :visible.sync="addVisible"> + <!-- 娣诲姞鍐呭--> + <el-form :model="dataForm" label-width="100px" ref="dataForm"> + <el-row :gutter="20"> + <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> + <el-form-item label="鍚嶇О" prop="name"> + <el-input v-model="dataForm.name" placeholder="鍚嶇О" clearable></el-input> + </el-form-item> + </el-col> + + </el-row> + + </el-form> + <!-- 鎸夐挳 --> + <span slot="footer" class="dialog-footer"> + <el-button size="mini" @click="cancel">鍙栨秷</el-button> + <el-button size="mini" type="primary" @click="dataFormSubmit()">淇濆瓨</el-button> + </span> + </el-dialog> + </div> +</template> + +<script> + import { deviceTypeUpdate,deviceTypeCreate } from '@/api/Api' + export default { + props: ['addVisible','row'], + data() { + return { + visible: false, + dataForm: { + id: 0, // title鏄剧ず鏂板杩樻槸淇敼 + name: '' + } + + } + }, + watch: { + addVisible: { + handler (val) { + if (val) { + this.init() + } + }, + immediate: true + } + }, + created () { + console.log('add create'); + this.init(this.row) + }, + methods: { + init(row) { + if (this.$refs['dataForm']) { + this.$refs['dataForm'].resetFields() + } + if (row !== undefined) { + this.dataForm.id = row.id + this.dataForm.name = row.name + + } else { + this.dataForm.id = '' + } + }, + /* 鏌ヨ浣跨敤閮ㄩ棬*/ + cancel () { + this.$emit('close') + }, + /* 鎻愪氦*/ + dataFormSubmit() { + if (this.dataForm.id === '') { // 鏂板 + deviceTypeCreate(this.dataForm).then(res => { + this.$message({ + message: '鏂板鎴愬姛', + type: 'success', + duration: 1500, + onClose: () => { + this.$emit('confirm') + this.visible = false + } + }) + }) + } else { + deviceTypeUpdate(this.dataForm).then(res => { + this.$message({ + message: '淇敼鎴愬姛', + type: 'success', + duration: 1500, + onClose: () => { + this.$emit('confirm') + this.visible = false + } + }) + }) + } + } + } + } +</script> + +<style lang="scss"> + .el-form-item__content { + .el-select,.el-input { + width: 100%; + } + } + .avatar-uploader .el-upload { + border: 1px dashed #d9d9d9; + border-radius: 6px; + cursor: pointer; + position: relative; + overflow: hidden; + } + .avatar-uploader .el-upload:hover { + border-color: #409EFF; + } + .avatar-uploader-icon { + font-size: 28px; + color: #8c939d; + width: 178px; + height: 178px; + line-height: 178px; + text-align: center; + } + .avatar { + width: 178px; + height: 178px; + display: block; + } +</style> diff --git a/src/container/devicemaintenance/index.vue b/src/container/devicemaintenance/index.vue new file mode 100644 index 0000000..cbcaba9 --- /dev/null +++ b/src/container/devicemaintenance/index.vue @@ -0,0 +1,167 @@ +<!-- + * @Date: 2024-01-06 17:40:19 + * @LastEditors: Sneed + * @LastEditTime: 2024-01-14 14:11:17 + * @FilePath: /belleson-frontend/Users/mache/Documents/demo/mdc/src/container/devicemaintenance/index.vue +--> +<template> + <div class="maintenance"> + <div class="nav">鏈哄簥缁存姢</div> + <List ref="list" :url="url"> + <template slot="search"> + <div class="item"> + <span>鍚嶇О</span> + <el-input class="item-value" v-model="queryInfo.name"></el-input> + </div> + <div class="item"> + <el-button type="primary" size="small" @click="query">鏌ヨ</el-button> + </div> + <div class="item"> + <el-button type="primary" size="small" @click="reset">閲嶇疆</el-button> + </div> + </template> + + <template slot="table-tool"> + <el-button type="primary" size="mini" @click="add">娣诲姞璁惧绫诲瀷</el-button> + </template> + + <template slot="columns"> + <el-table-column + prop="id" + label="ID" + width="180"> + </el-table-column> + <el-table-column + prop="name" + label="鍚嶇О" + width="180"> + </el-table-column> + + </template> + + </List> + <manage-add-update v-if="addOrUpdateVisible" :addVisible="addOrUpdateVisible" @close="close" @confirm="confirm" + :row="row"></manage-add-update> + </div> +</template> +<script> + import List from '../list/index.vue' + import ManageAddUpdate from './Manage-add-update' + import { getUrl } from '@/api/Api' + export default { + components: { + List, + ManageAddUpdate + }, + data () { + return { + url: '', + queryInfo: { + name: '' + }, + row: {}, + addOrUpdateVisible: false + } + }, + created () { + this.url = getUrl('machineQuery') + }, + methods: { + reset () { + Object.keys(this.queryInfo).forEach(key => { + this.queryInfo[key] = '' + }) + }, + query () { + this.$refs.list.pageQuery(this.queryInfo) + }, + add() { + this.row = {id:''} + this.addOrUpdateVisible = true + + }, + close() { + this.addOrUpdateVisible = false + }, + confirm() { + this.query() + this.close() + }, + addOrUpdateHandle(row) { + this.row = row + this.addOrUpdateVisible = true + } + + }, + } +</script> +<style lang="scss"> +.maintenance { + .item-value { + .el-input__inner { + background: transparent; + border-radius: 2px; + border: 1px solid #435F9E; + } + } + .el-button--mini { + background: transparent; + } + .el-button--primary { + background-color: transparent; + } +} +</style> +<style lang="scss" scoped> +.maintenance { + width: 100%; + height: 100%; + overflow: hidden; + color: #FFF; + display: flex; + flex-direction: column; + + .nav { + padding: 10px 30px; + } + + .item { + margin-top: 20px; + margin-left: 50px; + display: flex; + align-items: center; + + span { + width: 120px; + font-size: 16px; + font-family: PingFangSC, PingFang SC; + color: #C6DCE0; + text-align: right; + padding-right: 20px; + } + + .item-value { + width: 200px; + border: 1px solid #435F9E; + } + + .btn { + line-height: 1.5; + width: 100px; + text-align: center; + font-size: 16px; + cursor: pointer; + } + + .reset { + background: #AAB6BA; + color: #FFF; + } + + .query { + background: #5DD1FC; + color: #FFF; + } + } +} +</style> \ No newline at end of file diff --git a/src/container/home/index.vue b/src/container/home/index.vue index 9f25d86..d341892 100644 --- a/src/container/home/index.vue +++ b/src/container/home/index.vue @@ -50,6 +50,7 @@ <ul v-if="showSub"> <li @click="navigateTo('ledger')">鍙拌处</li> <li @click="navigateTo('deviceType')">璁惧绫诲瀷绠$悊</li> + <!-- <li @click="navigateTo('devicemaintenance')">鏈哄簥缁存姢</li> --> </ul> </li> </ul> @@ -95,7 +96,8 @@ 7: 'component', ledger: 'ledger', deviceType: 'deviceType', - preview: 'preview' + preview: 'preview', + devicemaintenance: 'devicemaintenance' } if (['3','4','5','8'].includes(name)) { diff --git a/src/container/ledger/index.vue b/src/container/ledger/index.vue index 209e42b..749b994 100644 --- a/src/container/ledger/index.vue +++ b/src/container/ledger/index.vue @@ -1,7 +1,7 @@ <!-- * @Date: 2024-01-06 17:40:19 * @LastEditors: Sneed - * @LastEditTime: 2024-01-13 22:13:17 + * @LastEditTime: 2024-01-14 16:31:53 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/mdc/src/container/ledger/index.vue --> <template> @@ -53,7 +53,8 @@ </div> <div class="item"> <span>鎶曚骇鏃ユ湡</span> - <el-date-picker class="item-value" format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="queryInfo.productionDate" type="date" clearable placeholder="閫夋嫨鏃ユ湡"></el-date-picker> + <el-date-picker class="item-value" format="yyyy-MM-dd" value-format="yyyy-MM-dd" + v-model="queryInfo.productionDate" type="date" clearable placeholder="閫夋嫨鏃ユ湡"></el-date-picker> </div> <div class="item"> <span>鐢熶骇鍘傚</span> @@ -128,6 +129,7 @@ <el-table-column fixed="right" align="center" label="鎿嶄綔"> <template slot-scope="scope"> <el-button type="text" size="small" @click="addOrUpdateHandle(scope.row)">缂栬緫</el-button> + <el-button type="text" size="small" @click="del(scope.row)">鍒犻櫎</el-button> </template> </el-table-column> </template> @@ -139,7 +141,7 @@ </template> <script> import ManageAddUpdate from './Manage-add-update' -import { getUseDpts } from '@/api/Api' +import { getUseDpts, getRequest } from '@/api/Api' import List from '../list/index.vue' export default { components: { @@ -218,7 +220,7 @@ query() { this.$refs.list.pageQuery(this.queryInfo) }, - reset () { + reset() { Object.keys(this.queryInfo).forEach(key => { this.queryInfo[key] = '' }) @@ -237,6 +239,26 @@ addOrUpdateHandle(row) { this.row = row this.addOrUpdateVisible = true + }, + del(row) { + this.$confirm('纭畾瑕佹案涔呭垹闄ゆ椤�?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + getRequest('accountDel', { ids: [row.id].join(',') }).then(res => { + this.$message({ + type: 'success', + message: '鍒犻櫎鎴愬姛锛�' + }) + this.submitForm() + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }) + }) + }) } }, } @@ -250,9 +272,11 @@ border: 1px solid #435F9E; } } + .el-button--mini { background: transparent; } + .el-button--primary { background-color: transparent; } diff --git a/src/container/maintenance/dailyMAdd.vue b/src/container/maintenance/dailyMAdd.vue index 13ae2c0..3213798 100644 --- a/src/container/maintenance/dailyMAdd.vue +++ b/src/container/maintenance/dailyMAdd.vue @@ -7,37 +7,17 @@ :visible.sync="dialogVisibleAdd" class="role-select"> <!-- 鏌ヨ琛ㄥ崟 --> <el-form :model="dataForm" ref="dataForm" label-width="150px" style="margin-top:10px;"> - <el-row :gutter="20"> - <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> - <el-form-item label="缁熶竴缂栧彿" prop="uuid"> - <el-input type="text" v-model="dataForm.uuid" autocomplete="off"></el-input> - </el-form-item> - </el-col> + <el-row :gutter="24"> <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> <el-form-item label="璁惧鍚嶇О" prop="machineName"> - <el-select v-model="dataForm.machineName" placeholder="---璇烽�夋嫨---"> + <el-select v-model="dataForm.machineId" placeholder="---璇烽�夋嫨---"> <el-option - v-for="item in machineName" + v-for="item in machineList" :key="item.id" - :label="item.label" - :value="item.value"> + :label="item.name" + :value="item.id"> </el-option> </el-select> - </el-form-item> - </el-col> - <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> - <el-form-item label="璁惧鍨嬪彿" prop="type"> - <el-input size="mini" type="text" v-model="dataForm.type"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> - <el-form-item label="璁惧瑙勬牸" prop="specification"> - <el-input size="mini" type="text" v-model="dataForm.specification" @input="getMachineInfo"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> - <el-form-item label="瀹夎鍦扮偣" prop="location"> - <el-input size="mini" type="text" v-model="dataForm.location"></el-input> </el-form-item> </el-col> <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> @@ -56,32 +36,12 @@ <el-form-item label="淇濆吇鑰�" prop="maintainPerson"> <el-select v-model="dataForm.maintainPerson" placeholder="---璇烽�夋嫨---" clearable > <el-option - v-for="item in maintainPerson" + v-for="item in userList" :key="item.id" :label="item.label" :value="item.value"> </el-option> </el-select> - </el-form-item> - </el-col> - <!-- <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> - <el-form-item label="淇濆吇鍛ㄦ湡" prop="maintainPeriod"> - <el-input size="mini" type="text" v-model="dataForm.maintainPeriod"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> - <el-form-item label="鎶曚骇鏃ユ湡" prop="productionDate"> - <el-input size="mini" type="text" v-model="dataForm.productionDate"></el-input> - </el-form-item> - </el-col> - <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> - <el-form-item label="鐢熶骇鍘傚" prop="manufacturer"> - <el-input size="mini" type="text" v-model="dataForm.manufacturer"></el-input> - </el-form-item> - </el-col> --> - <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> - <el-form-item label="璁″垝鐘舵��" prop="planStatus"> - <el-input size="mini" type="text" v-model="dataForm.planStatus" readonly></el-input> </el-form-item> </el-col> <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> @@ -97,32 +57,36 @@ </el-form-item> </el-col> <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> + <el-form-item label="淇濆吇鍐呭涓庡瓨鍦ㄩ棶棰�" prop="detail"> + <el-input size="mini" type="text" v-model="dataForm.detail"></el-input> + </el-form-item> + </el-col> + <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> + </el-col> + <el-col :xs="24":sm="10":md="10":lg="10":xl="10"> <el-form-item label="璁″垝寮�濮嬫棩鏈�" prop="planStartDate"> <el-date-picker format="yyyy 骞� MM 鏈� dd 鏃�" value-format="yyyy-MM-dd" v-model="dataForm.planStartDate" range-separator="鑷�" + type="daterange" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"> </el-date-picker> </el-form-item> </el-col> - <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> + <el-col :xs="24":sm="10":md="10":lg="10":xl="10"> <el-form-item label="璁″垝瀹屾垚鏃ユ湡" prop="planFinishDate"> <el-date-picker format="yyyy 骞� MM 鏈� dd 鏃�" value-format="yyyy-MM-dd" v-model="dataForm.planFinishDate" range-separator="鑷�" + type="daterange" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"> </el-date-picker> - </el-form-item> - </el-col> - <el-col :xs="24":sm="6":md="6":lg="6":xl="6"> - <el-form-item label="淇濆吇鍐呭涓庡瓨鍦ㄩ棶棰�" prop="detail"> - <el-input size="mini" type="text" v-model="dataForm.detail"></el-input> </el-form-item> </el-col> </el-row> @@ -140,32 +104,18 @@ import { getMachineList, maintainCreate, maintainUpdate, userList, departmentGet } from '@/api/MdcApi' import { getRequest } from '@/api/Api' export default { - props: ['styles', 'departmentlist'], + props: ['styles', 'departmentlist','machineList','userList'], data() { return { dataForm: { - style: '鏃ュ父淇濆吇', - state: 1, - machineName: '', // 璁惧鍚嶇О - uuid: '', // 鍚屾剰缂栫爜 - type: '', // 璁惧绫诲瀷 - specification: '', // 璁惧瑙勬牸 - location: '', // 瀹夎浣嶇疆 - department: '', // 浣跨敤鍗曚綅 - maintainPerson: '', // 淇濆吇鑰� - productionDate: '', // 鎶曚骇鏃ユ湡 - manufacturer: '', // 鐢熶骇鍘傚 - planStatus: '1', // 璁″垝鐘舵�� - isQualified: '鍚堟牸', - planStartDate: '', - planFinishDate: '', - detail: '' // 淇濆吇鍐呭涓庡瓨鍦ㄩ棶棰� + machineId: '', + department: '', + maintainPerson: '', + isQualified: '', + detail: '', }, dialogVisibleAdd: false, // 涓嬫媺妗� - machineName: [], // 璁惧鍚嶇О - department: [], // 浣跨敤閮ㄩ棬 - maintainPerson: [], // 璁惧鍚嶇О isQualified: [{ // 鏄惁鍚堟牸 label: '鍚堟牸', value: '鍚堟牸' @@ -183,42 +133,16 @@ init(n, data) { this.data = data this.no = n - if (this.styles === '1') { - this.dataForm.style = '鏃ュ父淇濆吇' - } else if (this.styles === '2') { - this.dataForm.style = '涓�绾т繚鍏�' - } else if (this.styles === '3') { - this.dataForm.style = '浜岀骇淇濆吇' - } else { - this.dataForm.style = '涓夌骇淇濆吇' - } if (n === 1) { - this.title = '鏂板' + this.dataForm.style - this.dataForm.machineName = '' - this.dataForm.uuid = '' - this.dataForm.type = '' - this.dataForm.specification = '' - this.dataForm.location = '' - this.dataForm.department = '' - this.dataForm.maintainPerson = '' - this.dataForm.productionDate = '' - this.dataForm.manufacturer = '' - this.dataForm.planStartDate = '' - this.dataForm.planFinishDate = '' - this.dataForm.isQualified = '鍚堟牸' - this.dataForm.detail = '' + this.title = '鏂板' + this.style + Object.keys(this.dataForm).forEach(key => { + this.dataForm[key] = '' + }) } else { - this.title = '淇敼' + this.dataForm.styles - this.dataForm.machineName = this.data.machineName - this.dataForm.uuid = this.data.uuid - this.dataForm.type = this.data.type - this.dataForm.specification = this.data.specification - this.dataForm.location = this.data.location - this.dataForm.department = this.data.department - this.dataForm.maintainPerson = this.data.userName - this.dataForm.isQualified = this.data.isQualified === '0' ? '涓嶅悎鏍�' : '鍚堟牸' - this.dataForm.manufacturer = this.data.manufacturer - this.dataForm.detail = this.data.detail + this.title = '淇敼' + this.style + Object.keys(this.dataForm).forEach(key => { + this.dataForm[key] = data[key] + }) } this.dialogVisibleAdd = true this.machineName = [] @@ -235,48 +159,65 @@ const completeDateTo = this.dataForm.planFinishDate[1] const isQualified = this.dataForm.isQualified === '鍚堟牸' ? 1 : 0 if (this.no === 1) { - getRequest('maintainCreate',{}) - // maintainCreate( - // this.styles, this.dataForm.uuid, this.dataForm.machineName, this.dataForm.type, - // this.dataForm.specification, this.dataForm.department, this.dataForm.location, - // startDateFrom, startDateTo, completeDateFrom, completeDateTo, isQualified, - // this.dataForm.state, this.dataForm.detail - // ).then(res => { - // if (res.result === 'SUCCESS') { - // this.$message({ - // type: 'success', - // message: '淇濆瓨鎴愬姛!' - // }) - // this.$emit('reflash') - // // const that = this - // this.dialogVisibleAdd = false - // } else { - // this.$message({ - // type: 'error', - // message: res.result - // }) - // } - // }) + console.log({ + ...this.dataForm, + startDateFrom, + startDateTo, + completeDateFrom, + completeDateTo, + isQualified, + styles: this.style + }) + // return + getRequest('maintainCreate',{ + ...this.dataForm, + startDateFrom, + startDateTo, + completeDateFrom, + completeDateTo, + isQualified, + styles: this.style + }).then(res => { + if (res.result === 'SUCCESS') { + this.$message({ + type: 'success', + message: '淇濆瓨鎴愬姛!' + }) + this.$emit('reflash') + // const that = this + this.dialogVisibleAdd = false + } else { + this.$message({ + type: 'error', + message: res.result + }) + } + }) } else { - getRequest('maintainUpdate',{}) - // 淇敼淇濆瓨 - // maintainUpdate(this.styles, this.data.id, this.dataForm.uuid, this.dataForm.machineName, this.dataForm.type, - // this.dataForm.specification, this.dataForm.department, this.dataForm.location, - // startDateFrom, startDateTo, completeDateFrom, completeDateTo, isQualified, - // this.dataForm.state, this.dataForm.detail).then(res => { - // if (res.result === 'SUCCESS') { - // this.$message({ - // type: 'success', - // message: '淇濆瓨鎴愬姛!' - // }) - // this.$emit('reflash') - // } else { - // this.$message({ - // type: 'error', - // message: res.result - // }) - // } - // }) + getRequest('maintainUpdate',{ + ...this.dataForm, + startDateFrom, + startDateTo, + completeDateFrom, + completeDateTo, + isQualified, + styles: this.style + }).then(res => { + if (res.result === 'SUCCESS') { + this.$message({ + type: 'success', + message: '淇濆瓨鎴愬姛!' + }) + this.$emit('reflash') + // const that = this + this.dialogVisibleAdd = false + } else { + this.$message({ + type: 'error', + message: res.result + }) + } + }) } }, /** @@ -288,7 +229,7 @@ } }, created() { - this.initDevices() + // this.initDevices() } } </script> diff --git a/src/container/maintenance/index.vue b/src/container/maintenance/index.vue index 539be65..e861d9e 100644 --- a/src/container/maintenance/index.vue +++ b/src/container/maintenance/index.vue @@ -1,7 +1,7 @@ <!-- * @Date: 2024-01-06 17:40:19 * @LastEditors: Sneed - * @LastEditTime: 2024-01-13 22:13:21 + * @LastEditTime: 2024-01-14 16:13:57 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/mdc/src/container/maintenance/index.vue --> <template> @@ -16,18 +16,18 @@ <div class="item"> <span>璁惧鍚嶇О</span> <el-select class="item-value" v-model="queryInfo.machineName" placeholder="璇烽�夋嫨"> - <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> + <el-option v-for="item in machineList" :key="item.id" :label="item.name" :value="item.id"> </el-option> </el-select> </div> - <div class="item"> + <!-- <div class="item"> <span>璁惧鍨嬪彿</span> <el-input class="item-value" v-model="queryInfo.type"></el-input> </div> <div class="item"> <span>璁惧瑙勬牸</span> <el-input class="item-value" v-model="queryInfo.specification"></el-input> - </div> + </div> --> <div class="item"> <span>浣跨敤閮ㄩ棬</span> <el-select class="item-value" v-model="queryInfo.department"> @@ -35,10 +35,10 @@ </el-option> </el-select> </div> - <div class="item"> + <!-- <div class="item"> <span>瀹夎浣嶇疆</span> <el-input class="item-value" v-model="queryInfo.location"></el-input> - </div> + </div> --> <div class="item"> <span>璁″垝寮�濮嬫棩鏈�</span> <el-date-picker class="item-value" v-model="queryInfo.planStartDate" align="right" type="date" placeholder="閫夋嫨鏃ユ湡"> @@ -65,8 +65,8 @@ align="center" width="55"> </el-table-column> --> - <el-table-column align="center" label="缁熶竴缂栧彿" prop="uuid"> - </el-table-column> + <!-- <el-table-column align="center" label="缁熶竴缂栧彿" prop="uuid"> + </el-table-column> --> <el-table-column align="center" label="璁惧鍚嶇О" width="150" :show-overflow-tooltip="true" prop="machineName"> </el-table-column> <el-table-column align="center" label="璁惧鍨嬪彿" prop="type"> @@ -113,12 +113,13 @@ </el-table-column> </template> </List> - <DailyMAddD ref="dailyMAddD" @reflash="submitForm" :departmentlist="departmentlist"></DailyMAddD> + <DailyMAddD ref="dailyMAddD" @reflash="submitForm" :style="navName" :departmentlist="departmentlist" :machineList="machineList" :userList="userList"></DailyMAddD> </div> </template> <script> import List from '../list/index.vue' import { getUseDpts,getRequest } from '@/api/Api' +import { userList } from '@/api/MdcApi' import DailyMAddD from './dailyMAdd.vue' export default { components: { @@ -134,7 +135,8 @@ data() { return { departmentlist: [], - options: [], + userList: [], + machineList: [], queryInfo: { uuid: '', machineName: '', @@ -163,6 +165,15 @@ } }) }) + getRequest('machineList', { + }).then(res => { + this.machineList = res.data.list + console.log(res) + }) + getRequest('userList', { + }).then(res => { + this.userList = res.data.list + }) }, query() { this.$refs.list.pageQuery(this.queryInfo) diff --git a/src/container/workshop/device.vue b/src/container/workshop/device.vue index f383439..dc86674 100644 --- a/src/container/workshop/device.vue +++ b/src/container/workshop/device.vue @@ -1,7 +1,7 @@ <!-- * @Date: 2024-01-13 20:46:33 * @LastEditors: Sneed - * @LastEditTime: 2024-01-13 23:35:27 + * @LastEditTime: 2024-01-14 13:18:54 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/mdc/src/container/workshop/device.vue --> <template> @@ -20,21 +20,21 @@ <li> <img src="./img/sd.png" alt=""> <div> - <p>{{ item.cycleCount || 0 }}</p> + <p>{{ efficiency}}</p> <p>鑳藉姏鍒╃敤鐜�</p> </div> </li> <li> <img src="./img/sd.png" alt=""> <div> - <p>{{ item.cycleCount || 0 }}</p> + <p>{{ utilizationDaily}}</p> <p>鏃ュ埄鐢ㄧ巼</p> </div> </li> <li> <img src="./img/sd.png" alt=""> <div> - <p>{{ item.cycleCount || 0 }}</p> + <p>{{ info.cycleCount}}</p> <p>瀹屽伐浠舵暟</p> </div> </li> @@ -45,17 +45,38 @@ <script> import { getRequest,getUrl } from '@/api/Api' export default { - props: ['id'], + props: { + id: { + type: [String,Number] + }, + info: { + type: Object, + default: function () { + return {} + } + } + }, data () { return { care: false, item: {} } }, + computed: { + efficiency () { + return this.info.efficiency || 0 + }, + utilizationDaily () { + return this.info.utilizationDaily || 0 + }, + cycleCount () { + return this.info.cycleCount || 0 + } + }, methods: { change (val) { console.log(val) - getRequest('machineConcern',{concern: val ? 1 : 0,id: this.item.id}).then(res => { + getRequest('machineConcern',{concern: val ? 1 : 0,id: this.id}).then(res => { console.log(res) }) }, diff --git a/src/container/workshop/index.vue b/src/container/workshop/index.vue index 3cca9b9..8683a22 100644 --- a/src/container/workshop/index.vue +++ b/src/container/workshop/index.vue @@ -1,7 +1,7 @@ <!-- * @Date: 2024-01-06 17:40:19 * @LastEditors: Sneed - * @LastEditTime: 2024-01-13 22:38:31 + * @LastEditTime: 2024-01-14 13:24:19 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/mdc/src/container/workshop/index.vue --> <template> @@ -12,9 +12,9 @@ <div class="right"> <Status class="right-status" :info="info" style="justify-content: flex-start;"> <template slot="before"> - <div style="margin-right: 200px;"> - <el-button type="primary" size="mini" :class="concernFlag === 0 ? 'active' : ''" - @click="query(0)">鍏ㄩ儴</el-button> + <div style="margin-right: auto;"> + <el-button type="primary" size="mini" :class="concernFlag === '' ? 'active' : ''" + @click="query('')">鍏ㄩ儴</el-button> <el-button type="primary" size="mini" :class="concernFlag === 1 ? 'active' : ''" @click="query(1)">鍏虫敞</el-button> <!-- <el-button type="primary" size="mini" style="margin-right: auto;">鎴戠殑鍏虫敞</el-button> --> @@ -28,7 +28,7 @@ </Status> <div class="list-box"> <div class="list"> - <Item v-for="item in list" :id="item.id" :key="item.id"></Item> + <Item v-for="item in list" :id="item.id" :info="item" :key="item.id"></Item> </div> </div> @@ -49,7 +49,7 @@ }, data() { return { - concernFlag: 0, + concernFlag: '', searchWord: '', list: [], info: { diff --git a/src/router/index.js b/src/router/index.js index 5676a18..b418573 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -69,6 +69,11 @@ component: () => import('@/container/deviceType/index') }, { + path: 'devicemaintenance', + name: 'devicemaintenance', + component: () => import('@/container/devicemaintenance/index') + }, + { path: 'preview', name: 'preview', component: () => import('@/container/preview/index') -- Gitblit v1.9.3