From 037af3bed10918cf24629f9a7f7e207af059ee96 Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期日, 14 四月 2024 17:06:32 +0800
Subject: [PATCH] update
---
src/views/console/workstation/Dialog.vue | 315 +++++++++++++++++++++++++++++++++++----------------
1 files changed, 214 insertions(+), 101 deletions(-)
diff --git a/src/views/console/workstation/Dialog.vue b/src/views/console/workstation/Dialog.vue
index effd650..470b881 100644
--- a/src/views/console/workstation/Dialog.vue
+++ b/src/views/console/workstation/Dialog.vue
@@ -7,123 +7,136 @@
鍩虹淇℃伅
</el-col>
<el-col :span="12">
- <el-form-item label="宸ヤ綅缂栧彿" prop="userName">
- <el-input style="width: 240px" v-model="form.userName" placeholder="宸ヤ綅缂栧彿" clearable></el-input>
+ <el-form-item label="宸ヤ綅缂栧彿" prop="code">
+ <el-input style="width: 240px" :disabled="form.id" v-model="form.code" placeholder="宸ヤ綅缂栧彿" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="宸ヤ綅鍚嶇О" prop="userName">
- <el-input style="width: 240px" v-model="form.userName" placeholder="宸ヤ綅鍚嶇О" clearable></el-input>
+ <el-form-item label="宸ヤ綅鍚嶇О" prop="name">
+ <el-input style="width: 240px" v-model="form.name" placeholder="宸ヤ綅鍚嶇О" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="宸ヤ綅绫诲瀷" prop="userName">
- <el-select v-model="type" style="width: 240px">
+ <el-form-item label="宸ヤ綅绫诲瀷" prop="type">
+ <el-select v-model="form.type" style="width: 240px" :disabled="form.id">
<el-option v-for="item in options.types" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鎵�灞炲伐浣嶇粍" prop="userName">
- <el-tree-select v-model="form.userName" :data="options.group" :render-after-expand="false"
+ <el-form-item label="鎵�灞炲伐浣嶇粍" prop="groupName">
+ <el-tree-select @node-click="nodeClick" v-model="form.groupName" :data="options.group" :check-on-click-node="true"
style="width: 240px" />
- <!-- <el-select v-model="type" style="width: 240px">
- <el-option v-for="item in options" :key="item.value" :label="item.label"
- :value="item.value" />
- </el-select> -->
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鐘舵��" prop="userName">
- <el-select v-model="type" style="width: 240px">
- <el-option v-for="item in options.status" :key="item.value" :label="item.label"
- :value="item.value" />
- </el-select>
+ <el-form-item label="鐘舵��" prop="status">
+ <el-switch v-model="form.status" :active-value="1" :inactive-value="0"/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="宸ヤ綅鍥剧墖" prop="avatar">
- <sc-upload v-model="form.avatar" title="宸ヤ綅鍥剧墖"></sc-upload>
+ <scUpload v-model="form.avatar" title="宸ヤ綅鍥剧墖"></scUpload>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鐢熶骇鏃ュ巻" prop="userName">
- <el-select v-model="type" style="width: 240px">
+ <el-form-item label="鐢熶骇鏃ュ巻" prop="calendarCode">
+ <el-select v-model="form.calendarCode" style="width: 240px">
<el-option v-for="item in options.calendarList" :key="item.id" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
- <el-col :span="24" style="padding:12px 0;">
+ <el-col :span="24" style="padding:12px 0;" v-if="form.type == 0">
鏈哄櫒淇℃伅
</el-col>
-
- <el-col :span="12">
- <el-form-item label="閫夋嫨鏈哄櫒" prop="userName">
- <!-- <el-select v-model="type" style="width: 240px">
- <el-option v-for="item in options.linkWays" :key="item.value" :label="item.label"
- :value="item.value" />
- </el-select> -->
- <el-radio-group v-model="form.userName">
- <el-radio v-for="item in options.linkWays" :key="item.value" :value="item.value">{{item.label}}</el-radio>
+ <el-col :span="12" v-if="form.type == 0 && !form.id">
+ <el-form-item label="閫夋嫨鏈哄櫒" prop="linkWay" >
+ <el-radio-group v-model="form.linkWay">
+ <el-radio v-for="item in options.linkWays" :key="item.value" :label="item.value">{{item.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
- <el-col :span="12">
- <el-form-item label="鏈哄櫒缂栧彿" prop="userName">
- <el-input style="width: 240px" v-model="form.userName" placeholder="鏈哄櫒缂栧彿" clearable></el-input>
+ <el-col :span="12" v-if="(form.type == 0 && form.linkWay == 0) || form.id">
+ <!-- machineCode -->
+ <el-form-item label="鏈哄櫒缂栧彿" prop="machineId">
+ <!-- <el-input style="width: 240px" v-model="form.machineId" placeholder="鏈哄櫒缂栧彿" clearable></el-input> -->
+ <el-select v-if="!form.id" v-model="form.machineId" style="width: 240px" @change="change" clear filterable>
+ <el-option v-for="item in options.listnoband" :key="item.id" :label="item.machineName" :value="item.id"
+ >
+ {{ `${item?.machineCode}-${item?.machineName}-${item?.brand}` }}</el-option>
+ </el-select>
+ <el-input v-if="form.id" :disabled="form.id" v-model="form.machineName"></el-input>
</el-form-item>
</el-col>
<el-col :span="24" style="padding:12px 0;">
鎵╁睍淇℃伅
</el-col>
<el-col :span="12">
- <el-form-item label="宸ョ" prop="userName">
- <el-select v-model="type" style="width: 240px">
+ <el-form-item label="宸ョ" prop="deviceType">
+ <el-select v-model="form.deviceType" style="width: 240px">
<el-option v-for="item in options.work_type" :key="item.dictKey" :label="item.dictValue"
- :value="item.dictKey" />
+ :value="item.dictKey - 0" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鍔犲伐灞炴��" prop="userName">
- <el-select v-model="type" style="width: 240px">
+ <el-form-item label="鍔犲伐灞炴��" prop="properties">
+ <el-select v-model="form.properties" style="width: 240px">
<el-option v-for="item in options.machining_type" :key="item.dictKey" :label="item.dictValue"
:value="item.dictKey" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="绋嬪簭浼犺緭鏂瑰紡" prop="userName">
- <el-select v-model="type" style="width: 240px">
- <el-option label="FTP" value="1" />
- <el-option label="涓插彛" value="" />
+ <el-form-item label="绋嬪簭浼犺緭鏂瑰紡" prop="transmissionMethod">
+ <el-select v-model="form.transmissionMethod" style="width: 240px">
+ <el-option label="FTP" :value="1" />
+ <el-option label="涓插彛" :value="2" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="FTP鐩綍" prop="userName">
- <el-select v-model="type" style="width: 240px">
- <el-option v-for="item in options" :key="item.value" :label="item.label"
+ <el-form-item label="FTP鐩綍" prop="ftpDirectoryType">
+ <el-select v-model="form.ftpDirectoryType" style="width: 240px">
+ <el-option v-for="item in options.ftpDirectoryType" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
</el-col>
- <el-col :span="12">
- <el-form-item label="宸ヤ綔鍙�" prop="userName">
- <el-select v-model="type" style="width: 240px">
- <el-option v-for="item in options" :key="item.value" :label="item.label"
- :value="item.value" />
+ <el-col :span="12" v-if="form.ftpDirectoryType == 1">
+ <el-form-item label="鍏宠仈鐩綍" prop="directoryId">
+ <el-select v-model="form.directoryId" style="width: 240px">
+ <el-option v-for="item in options.directorys" :key="item.id" :label="item.name"
+ :value="item.id" />
</el-select>
</el-form-item>
</el-col>
+ <el-col :span="4">
+ <!-- <el-form-item label="宸ヤ綔鍙�" prop="workbenchVOList"> -->
+
+ <!-- </el-form-item> -->
+ <span>宸ヤ綔鍙�</span>
+
+ </el-col>
+ <el-col style="margin-bottom: 14px;">
+ <ul class="workbranch">
+ <li v-for="item in form.workbenchVOList">
+ <span>{{ item.sort}}</span>
+ <el-input v-model="item.name" style="width: 200px"></el-input>
+ </li>
+ </ul>
+ <el-button style="margin-left: 50px;margin-top: 8px" @click="addWork">娣诲姞宸ヤ綔鍙�</el-button>
+ </el-col>
<el-col :span="12">
- <el-form-item label="鏁版嵁鏉冮檺" prop="userName">
- <el-select v-model="type" style="width: 240px">
- <el-option v-for="item in options" :key="item.value" :label="item.label"
- :value="item.value" />
- </el-select>
+ <el-form-item label="鏁版嵁鏉冮檺" prop="createDept">
+ <el-tree-select clearable @node-click="nodeClickTree" v-model="form.createDept" :data="tree" :check-on-click-node="true"
+ style="width: 240px">
+ <template #default="{ data: { title } }">
+ {{ title }}</template
+ >
+ </el-tree-select>
</el-form-item>
</el-col>
</el-row>
@@ -155,7 +168,10 @@
calendarList: this.calendarList,
linkWays: this.linkWays,
work_type: this.work_type,
- machining_type: this.machining_type
+ machining_type: this.machining_type,
+ listnoband: this.listnoband,
+ directorys: this.directorys,
+ ftpDirectoryType: this.ftpDirectoryType
}
}
},
@@ -172,67 +188,82 @@
isSaveing: false,
//琛ㄥ崟鏁版嵁
form: {
- id: "",
- userName: "",
- avatar: "",
- name: "",
- dept: "",
- group: []
+ id: '',
+ code: '',
+ name: '',
+ type: '',
+ groupName: '',
+ status: '',
+ avatar: '',
+ calendarCode: '',
+ linkWay: '',
+ machineId: '',
+ machineCode: '',
+ machineName: '',
+ deviceType: '',
+ properties: '',
+ transmissionMethod: '',
+ ftpDirectoryType: '',
+ workbenchVOList: [],
+ createDept: '',
},
//楠岃瘉瑙勫垯
rules: {
- avatar: [
- { required: true, message: '璇蜂笂浼犲ご鍍�' }
- ],
- userName: [
- { required: true, message: '璇疯緭鍏ョ櫥褰曡处鍙�' }
+ code: [
+ { required: true, message: '蹇呭~' }
],
name: [
- { required: true, message: '璇疯緭鍏ョ湡瀹炲鍚�' }
+ { required: true, message: '蹇呭~' }
],
- password: [
- { required: true, message: '璇疯緭鍏ョ櫥褰曞瘑鐮�' },
- {
- validator: (rule, value, callback) => {
- if (this.form.password2 !== '') {
- this.$refs.dialogForm.validateField('password2');
- }
- callback();
- }
- }
+ type: [
+ { required: true, message: '蹇呭~' }
],
- password2: [
- { required: true, message: '璇峰啀娆¤緭鍏ュ瘑鐮�' },
- {
- validator: (rule, value, callback) => {
- if (value !== this.form.password) {
- callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!'));
- } else {
- callback();
- }
- }
- }
+ groupName: [
+ { required: true, message: '蹇呭~' }
],
- dept: [
- { required: true, message: '璇烽�夋嫨鎵�灞為儴闂�' }
+ status: [
+ { required: true, message: '蹇呭~' }
],
- group: [
- { required: true, message: '璇烽�夋嫨鎵�灞炶鑹�', trigger: 'change' }
- ]
+ linkWay:[
+ { required: true, message: '蹇呭~' }
+ ],
+ machineId:[
+ { required: true, message: '蹇呭~' }
+ ],
+ directoryId:[
+ { required: true, message: '蹇呭~' }
+ ],
},
//鎵�闇�鏁版嵁閫夐」
calendarList: [],
work_type: [],
machining_type: [],
+ listnoband: [],
+ directorys: [],
+ ftpDirectoryType: [
+ {
+ label: '涓嶅叧鑱旂洰褰�',
+ value: 0
+ },
+ {
+ label: '鍏宠仈鐩綍',
+ value: 1
+ },
+ {
+ label: '鍒涘缓鍚屽悕鐩綍',
+ value: 2
+ },
+ ],
linkWays: [
{
label: '鍏宠仈鏈哄櫒',
- value: '0'
+ value: 0
}, {
label: '鍒涘缓鍚屽悕鏈哄櫒',
- value: '1'
+ value: 1
}
- ]
+ ],
+ tree: []
}
},
created() {
@@ -245,13 +276,40 @@
this.$API.system.dic.getDic.get({ code: 'machining_type' }).then(res => {
this.machining_type = res.data
})
+ this.$API.workstation.getlistnoband.get().then(res => {
+ this.listnoband = res.data
+ })
+ this.$HTTP.get(`/api/blade-system/data-scope-manager/tree`).then(res => {
+ this.tree = res.data.map(item => {
+ return {
+ ...item,
+ label: item.title
+ }
+ })
+ })
},
methods: {
//鏄剧ず
open(mode = 'add', params) {
this.mode = mode;
this.visible = true;
- this.params = params
+
+ if (params) {
+ Object.keys(this.form).forEach(key => {
+ this.form[key] = params[key]
+ })
+ this.$HTTP.get(`/api/blade-cps/workstation/get?workstationId=${params.id}`).then(res => {
+ this.form =res?.data
+ this.$HTTP.get(`/api/blade-cps/workstation-workbench/listWorkbench?workstationId=${params.id}`).then(res => {
+ this.form.workbenchVOList =res?.data?.workstationList || []
+ })
+ })
+ }else {
+ this.form.id = ''
+ Object.keys(this.form).forEach(key => {
+ this.form[key] = ''
+ })
+ }
return this
},
//琛ㄥ崟鎻愪氦鏂规硶
@@ -259,7 +317,7 @@
this.$refs.dialogForm.validate(async (valid) => {
if (valid) {
this.isSaveing = true;
- var res = await this.$API.demo.post.post(this.form);
+ var res = await this.$API.workstation.add.post(this.form);
this.isSaveing = false;
if (res.code == 200) {
this.$emit('success', this.form, this.mode)
@@ -279,14 +337,69 @@
this.form.userName = data.userName
this.form.avatar = data.avatar
this.form.name = data.name
- this.form.group = data.group
this.form.dept = data.dept
//鍙互鍜屼笂闈竴鏍峰崟涓敞鍏ワ紝涔熷彲浠ュ儚涓嬮潰涓�鏍风洿鎺ュ悎骞惰繘鍘�
//Object.assign(this.form, data)
+ },
+ change (id) {
+ let row = this.options.listnoband.find(v=>v.id ==id)
+ if (!row) {
+ this.form.machineCode = ''
+ this.form.machineId = ''
+ this.form.machineName = ''
+
+ }else {
+ this.form.machineCode = row.machineCode
+ this.form.machineId = row.id
+ this.form.machineName = row.machineName
+ }
+ this.$HTTP.get(`/api/blade-dnc/ftp-director/get-machine-of-workstation-ftp?id=${this.form.machineId}`).then(res => {
+ this.directorys = res.data
+ })
+ console.log(row)
+ },
+ nodeClick (node) {
+ console.log(node)
+ if (node.parentId == 0) return
+ this.$nextTick(() => {
+ this.form.groupId = node.id
+ this.form.groupName = node.name
+ })
+ },
+ nodeClickTree (node) {
+ this.$nextTick(() => {
+ this.form.createDept = node.id
+ })
+ },
+ addWork () {
+ this.form.workbenchVOList.push({
+ sort: this.form.workbenchVOList.length + 1,
+ name: ''
+ })
}
}
}
</script>
-<style></style>
+<style lang="scss" scoped>
+.workbranch {
+ list-style: none;
+ padding-left: 50px;
+ li {
+ margin-top: 8px;
+ span {
+ display: inline-block;
+ width: 25px;
+ height: 25px;
+ line-height: 25px;
+ text-align: center;
+ border-radius: 50%;
+ background: #ccc;
+ margin-right: 8px;
+ }
+
+
+ }
+}
+</style>
--
Gitblit v1.9.3