From 141dfa5427a0976d093ef83eec69ba8e1a9ab912 Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期一, 13 五月 2024 23:56:43 +0800
Subject: [PATCH] update
---
src/views/console/workstation/Dialog.vue | 403 +++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 279 insertions(+), 124 deletions(-)
diff --git a/src/views/console/workstation/Dialog.vue b/src/views/console/workstation/Dialog.vue
index 5295498..e5693f0 100644
--- a/src/views/console/workstation/Dialog.vue
+++ b/src/views/console/workstation/Dialog.vue
@@ -7,107 +7,138 @@
鍩虹淇℃伅
</el-col>
<el-col :span="12">
- <el-form-item label="宸ュ彿" prop="userName">
- <el-input 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 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-input v-model="form.userName" placeholder="鐢ㄤ簬鐧诲綍绯荤粺" clearable></el-input>
+ <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-input v-model="form.userName" placeholder="鐢ㄤ簬鐧诲綍绯荤粺" clearable></el-input>
+ <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-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鎵�灞炲伐浣嶇粍" prop="userName">
- <el-input v-model="form.userName" placeholder="鐢ㄤ簬鐧诲綍绯荤粺" clearable></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="鐘舵��" prop="userName">
- <el-input v-model="form.userName" placeholder="鐢ㄤ簬鐧诲綍绯荤粺" clearable></el-input>
+ <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>
+ <el-form-item label="宸ヤ綅鍥剧墖" prop="avatar">
+ <scUpload v-model="form.avatar" title="宸ヤ綅鍥剧墖"></scUpload>
</el-form-item>
</el-col>
- <el-col :span="24" style="padding:12px 0;">
+ <el-col :span="12">
+ <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;" v-if="form.type == 0">
鏈哄櫒淇℃伅
</el-col>
-
- <el-col :span="12">
- <el-form-item label="宸ュ彿" prop="userName">
- <el-input v-model="form.userName" placeholder="鐢ㄤ簬鐧诲綍绯荤粺" clearable></el-input>
+ <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="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ュ畬鏁寸殑鐪熷疄濮撳悕" clearable></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="鎵嬫満鍙�" prop="name">
- <el-input v-model="form.name" 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="name">
- <el-select v-model="form.group" multiple filterable style="width: 100%">
- <el-option v-for="item in groups" :key="item.id" :label="item.label" :value="item.id" />
+ <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 - 0" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="宀椾綅" prop="dept">
- <el-select v-model="form.group" multiple filterable style="width: 100%">
- <el-option v-for="item in groups" :key="item.id" :label="item.label" :value="item.id" />
+ <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="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ラ偖绠�" clearable></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="閮ㄩ棬" prop="dept">
- <el-select v-model="form.group" multiple filterable style="width: 100%">
- <el-option v-for="item in groups" :key="item.id" :label="item.label" :value="item.id" />
+ <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="PIN鐮�" prop="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏IN鐮�" clearable></el-input>
+ <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="name">
- <el-date-picker style="width: 100%;" v-model="value1" type="date" placeholder="Pick a day"
- :size="size" />
+ <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="12">
- <el-form-item label="鍏宠仈璐﹀彿" prop="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ュ叧鑱旇处鍙�" clearable></el-input>
- </el-form-item>
+ <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="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ユ暟鎹潈闄愰厤缃�" clearable></el-input>
+ <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>
@@ -120,108 +151,175 @@
</template>
<script>
+import deepmerge from 'deepmerge'
+import http from "@/utils/request"
export default {
emits: ['success', 'closed'],
+ props: {
+ option: {
+ type: Object
+ }
+ },
+ computed: {
+ options() {
+ let group = deepmerge([], this.option.group)
+ group[0].disabled = true
+ return {
+ ...this.option,
+ group,
+ calendarList: this.calendarList,
+ linkWays: this.linkWays,
+ work_type: this.work_type,
+ machining_type: this.machining_type,
+ listnoband: this.listnoband,
+ directorys: this.directorys,
+ ftpDirectoryType: this.ftpDirectoryType
+ }
+ }
+ },
data() {
return {
mode: "add",
titleMap: {
- add: '娣诲姞鍛樺伐',
- edit: '淇敼鍛樺伐',
- show: '鏌ョ湅'
+ add: '鏂板缓宸ヤ綅',
+ edit: '缂栬緫宸ヤ綅',
+ // show: '鏌ョ湅'
},
+ params: {},
visible: false,
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: '蹇呭~' }
+ ],
},
//鎵�闇�鏁版嵁閫夐」
- groups: [],
- groupsProps: {
- value: "id",
- multiple: true,
- checkStrictly: true
- },
- depts: [],
- deptsProps: {
- value: "id",
- checkStrictly: true
- }
+ calendarList: [],
+ work_type: [],
+ machining_type: [],
+ listnoband: [],
+ directorys: [],
+ ftpDirectoryType: [
+ {
+ label: '涓嶅叧鑱旂洰褰�',
+ value: 0
+ },
+ {
+ label: '鍏宠仈鐩綍',
+ value: 1
+ },
+ {
+ label: '鍒涘缓鍚屽悕鐩綍',
+ value: 2
+ },
+ ],
+ linkWays: [
+ {
+ label: '鍏宠仈鏈哄櫒',
+ value: 0
+ }, {
+ label: '鍒涘缓鍚屽悕鏈哄櫒',
+ value: 1
+ }
+ ],
+ tree: []
}
},
- mounted() {
- // this.getGroup()
- // this.getDept()
+ created() {
+ this.$API.workstation.calendarList.get().then(res => {
+ this.calendarList = res.data
+ })
+ this.$API.system.dic.getDic.get({ code: 'work_type' }).then(res => {
+ this.work_type = res.data
+ })
+ 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') {
+ open(mode = 'add', params) {
this.mode = mode;
this.visible = true;
+
+ 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
- },
- //鍔犺浇鏍戞暟鎹�
- async getGroup() {
- var res = await this.$API.system.role.list.get();
- this.groups = res.data.rows;
- },
- async getDept() {
- var res = await this.$API.system.dept.list.get();
- this.depts = res.data;
},
//琛ㄥ崟鎻愪氦鏂规硶
submit() {
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)
@@ -241,14 +339,71 @@
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