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/index.vue | 45 ++--
src/api/model/workstation.js | 21 +
src/views/console/workstation/Dialog.vue | 315 +++++++++++++++++++++++-----------
src/views/mdc/configuration.vue | 92 +++++++++
src/components/scUpload/index.vue | 17 +
5 files changed, 353 insertions(+), 137 deletions(-)
diff --git a/src/api/model/workstation.js b/src/api/model/workstation.js
index 1c03096..d70c9d2 100644
--- a/src/api/model/workstation.js
+++ b/src/api/model/workstation.js
@@ -1,8 +1,8 @@
/*
* @Date: 2024-03-24 11:37:47
- * @LastEditors: gaoshp
- * @LastEditTime: 2024-03-31 21:34:40
- * @FilePath: /cps-web/src/api/model/workstation.js
+ * @LastEditors: Sneed
+ * @LastEditTime: 2024-04-14 15:02:51
+ * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/api/model/workstation.js
*/
import config from "@/config"
import http from "@/utils/request"
@@ -55,7 +55,20 @@
delete: async function(params){
return await http.delete(this.url, params);
}
- // /blade-cps/workstation?type=1&workstationIds=1689546460820299778
+ },
+ add: {
+ url: `${config.API_URL}/blade-cps/workstation/submit`,
+ name: "娣诲姞宸ヤ綅",
+ post: async function(params){
+ return await http.post(this.url, params);
+ },
+ },
+ getlistnoband: {
+ url: `${config.API_URL}/blade-cps/machine/list-no-band`,
+ name: "鑾峰彇鏈粦瀹氬伐浣�",
+ get: async function(params){
+ return await http.get(this.url, params);
+ }
}
}
\ No newline at end of file
diff --git a/src/components/scUpload/index.vue b/src/components/scUpload/index.vue
index 1a0a0b9..15744dc 100644
--- a/src/components/scUpload/index.vue
+++ b/src/components/scUpload/index.vue
@@ -95,7 +95,8 @@
height: this.height + "px"
},
cropperDialogVisible: false,
- cropperFile: null
+ cropperFile: null,
+ hostNew: ''
}
},
watch:{
@@ -108,15 +109,23 @@
}
},
mounted() {
- this.value = this.modelValue
- this.newFile(this.modelValue)
+ this.getHost().then(res => {
+ this.value = this.modelValue
+ this.newFile(this.modelValue)
+ })
},
methods: {
+ getHost () {
+ if (this.host) return this.hostNew = this.host
+ return this.$API.setting.component.getImgHost.get().then(res => {
+ this.hostNew = res.data + '/visual/'
+ })
+ },
newFile(url){
if(url){
this.file = {
status: "success",
- url: `${this.host}${url}`
+ url: `${this.hostNew}${url}`
}
}else{
this.file = null
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>
diff --git a/src/views/console/workstation/index.vue b/src/views/console/workstation/index.vue
index 8dfffa3..54b0281 100644
--- a/src/views/console/workstation/index.vue
+++ b/src/views/console/workstation/index.vue
@@ -19,7 +19,7 @@
<el-header>
<div class="left-panel">
<el-button @click="table_add" type="primary" icon="el-icon-plus"></el-button>
- <el-button type="danger" plain icon="el-icon-delete"></el-button>
+ <el-button type="danger" plain icon="el-icon-delete" @click="batchDel"></el-button>
<!-- <el-button type="primary" plain>瀵煎叆</el-button>
<el-button type="primary" plain>鎵归噺鎿嶄綔</el-button> -->
</div>
@@ -64,12 +64,12 @@
<el-button text type="primary" size="small">鍒犻櫎</el-button>
</template>
</el-popconfirm>
- <el-popconfirm title="纭畾鍋滅敤鍚楋紵"
+ <!-- <el-popconfirm title="纭畾鍋滅敤鍚楋紵"
@confirm="table_del(scope.row, scope.$index,'1')">
<template #reference>
<el-button text type="primary" size="small">鍋滅敤</el-button>
</template>
- </el-popconfirm>
+ </el-popconfirm> -->
</el-button-group>
</template>
</el-table-column>
@@ -85,9 +85,9 @@
<li>宸ヤ綅缂栧彿 {{previewData.code}}</li>
<li>宸ヤ綅缁� {{previewData.groupName}}</li>
<li>宸ヤ綅鍚嶇О {{previewData.name}}</li>
- <li>宸ヤ綅绫诲瀷 {{previewData.type}}</li>
+ <li>宸ヤ綅绫诲瀷 {{types.find(v => v.value == previewData.type)?.label}}</li>
<li>宸ヤ綅鏃ュ巻 {{previewData.calendarName}}</li>
- <li>鐘舵�� {{previewData.status}}</li>
+ <li>鐘舵�� {{previewData.status ? '鍚敤' : '绂佺敤'}}</li>
</ul>
</div>
<el-tabs tab-position="top" class="custom-tabs" v-model="normal">
@@ -237,7 +237,7 @@
</el-tabs>
</el-card>
- <Dialog ref="dialog" :option="{types,status,group}"></Dialog>
+ <Dialog ref="dialog" @success="success" :option="{types,status,group}"></Dialog>
</el-main>
</template>
@@ -263,29 +263,25 @@
params: {},
keyWord: '',
type: '',
- statu: '1',
+ statu: 1,
types: [
{
- label: '鎵�鏈�',
- value: ''
- },
- {
label: '鏈哄櫒',
- value: '0'
+ value: 0
},
{
label: '浜哄伐',
- value: '1'
+ value: 1
},
],
status: [
{
label: '鍚敤',
- value: '1'
+ value: 1
},
{
label: '鍋滅敤',
- value: '0'
+ value: 0
}
],
previewData: {},
@@ -305,7 +301,8 @@
treeCheckKey: [],
beltline_type: [],
group_tag: [],
- addGroupShow: false
+ addGroupShow: false,
+ selection: []
}
},
watch: {
@@ -360,6 +357,9 @@
this.group_tag = res.data
})
+ },
+ success () {
+ this.search()
},
async queryList(flag) {
this.showGrouploading = true
@@ -483,13 +483,18 @@
this.$refs.dialog.open('edit',row)
},
table_del(row, index,type) {
- this.$API.workstation.deleteWork.delete({
- type,
- workstationIds:row.id
- }).then(() => {
+ this.$HTTP.delete(`/api/blade-cps/workstation?type=0&workstationIds=${row.id}`).then(res => {
this.search()
})
},
+ selectionChange (selection) {
+ this.selection = selection
+ },
+ batchDel () {
+ this.$HTTP.delete(`/api/blade-cps/workstation?type=0&workstationIds=${this.selection.map(item => item.id).join(',')}`).then(res => {
+ this.search()
+ })
+ }
}
}
</script>
diff --git a/src/views/mdc/configuration.vue b/src/views/mdc/configuration.vue
index b45fff0..e70cb85 100644
--- a/src/views/mdc/configuration.vue
+++ b/src/views/mdc/configuration.vue
@@ -1,24 +1,100 @@
<!--
* @Date: 2024-04-09 22:11:21
* @LastEditors: Sneed
- * @LastEditTime: 2024-04-13 22:15:00
+ * @LastEditTime: 2024-04-14 10:31:10
* @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/mdc/configuration.vue
* 搴旂敤璁剧疆
-->
<template>
<el-main>
<el-card shadow="never">
- 搴旂敤璁剧疆
+ <el-tabs :tab-position="'left'" class="demo-tabs">
+ <el-tab-pane label="瀹炴椂鐪嬫澘鏌ヨ缁勮缃�">
+ <el-row>
+ <el-col :span="4">
+ 椤甸潰鎺掑垪鏂瑰紡
+ </el-col>
+ <el-col :span="20">
+ <el-radio-group v-model="radio">
+ <el-radio :value="1">鍏呮弧灞忓箷</el-radio>
+ <el-radio :value="2">璁剧疆琛屽垪</el-radio>
+ </el-radio-group>
+ </el-col>
+ <el-col :span="4">
+ 璁剧疆琛屾暟
+ </el-col>
+ <el-col :span="20">
+ <el-input-number v-model="num" :min="1" :max="10" @change="handleChange" />
+ </el-col>
+ <el-col :span="4">
+ 璁剧疆鍒楁暟
+ </el-col>
+ <el-col :span="20">
+ <el-input-number v-model="num" :min="1" :max="10" @change="handleChange" />
+ </el-col>
+ <el-col>
+ 涓嬮潰闄堝垪鎷ユ湁鏍囩鐨勬墍鏈夊伐浣嶇粍锛岃閫夋嫨闇�瑕佸湪瀹炴椂鐪嬫澘椤甸潰鏌ヨ鐨勭粍锛屽苟璁惧畾涓�涓粯璁ょ粍
+ 濡傛灉鏈厤缃煡璇㈢粍锛屽疄鏃跺伐鍐甸〉闈㈤粯璁ゆ煡璇㈡墍鏈夊伐浣�
+ </el-col>
+ <el-col>
+ 鏌旀�т骇绾�
+ </el-col>
+ <el-col>
+ <el-card style="max-width: 480px">
+ <template #header>
+ <div class="card-header">
+ <span>鍗冩枃绉戞妧</span>
+ </div>
+ </template>
+ <p>鎵�鏈夌殑> 鍗冩枃绉戞妧</p>
+ </el-card>
+ </el-col>
+
+ <el-col>
+ 杞﹂棿
+ </el-col>
+ <el-col>
+ <el-card style="max-width: 480px">
+ <template #header>
+ <div class="card-header">
+ <span>鍗冩枃绉戞妧</span>
+ </div>
+ </template>
+ <p>鎵�鏈夌殑> 鍗冩枃绉戞妧</p>
+ </el-card>
+ <el-card style="max-width: 480px">
+ <template #header>
+ <div class="card-header">
+ <span>鍗冩枃绉戞妧</span>
+ </div>
+ </template>
+ <p>鎵�鏈夌殑> 鍗冩枃绉戞妧</p>
+ </el-card>
+ </el-col>
+ </el-row>
+ </el-tab-pane>
+ <el-tab-pane label="鐘舵�佸拰缁╂晥鏃堕棿璁剧疆">
+
+ </el-tab-pane>
+ <el-tab-pane label="鏁堢巼缁熻璁剧疆">
+
+ </el-tab-pane>
+ <el-tab-pane label="閲囬泦鏁版嵁鏍囩璁剧疆">
+
+ </el-tab-pane>
+ </el-tabs>
</el-card>
</el-main>
</template>
<script>
- export default {
-
- }
+export default {
+ data() {
+ return {
+
+ }
+ },
+}
</script>
-<style lang="scss" scoped>
-
-</style>
\ No newline at end of file
+<style lang="scss" scoped></style>
\ No newline at end of file
--
Gitblit v1.9.3