Commit e5581a5423aa9ee0e536545c08d23868e66343f0

Authored by sqy
1 parent c800aa87

'设备代码合并'

@@ -6,7 +6,7 @@ VITE_PUBLIC_PATH = / @@ -6,7 +6,7 @@ VITE_PUBLIC_PATH = /
6 6
7 # Cross-domain proxy, you can configure multiple 7 # Cross-domain proxy, you can configure multiple
8 # Please note that no line breaks 8 # Please note that no line breaks
9 -VITE_PROXY = [["/api","http://192.168.10.120:8082/api"],["/upload","http://192.168.10.120:3300/upload"]] 9 +VITE_PROXY = [["/api","http://192.168.10.116:8082/api"],["/upload","http://192.168.10.116:3300/upload"]]
10 # VITE_PROXY=[["/api","https://vvbin.cn/test"]] 10 # VITE_PROXY=[["/api","https://vvbin.cn/test"]]
11 11
12 # Delete console 12 # Delete console
@@ -4,8 +4,8 @@ @@ -4,8 +4,8 @@
4 width="55rem" 4 width="55rem"
5 @register="register" 5 @register="register"
6 :title="getTitle" 6 :title="getTitle"
7 - @visible-change="handleVisibleChange"  
8 @cancel="handleCancel" 7 @cancel="handleCancel"
  8 + @ok="handleOk"
9 > 9 >
10 <div class="step-form-form"> 10 <div class="step-form-form">
11 <a-steps :current="current"> 11 <a-steps :current="current">
@@ -14,8 +14,9 @@ @@ -14,8 +14,9 @@
14 </a-steps> 14 </a-steps>
15 </div> 15 </div>
16 <div class="mt-5"> 16 <div class="mt-5">
17 - <DeviceStep1 @next="handleStep1Next" v-show="current === 0" /> 17 + <DeviceStep1 @next="handleStep1Next" v-show="current === 0" ref="DeviceStep1Ref" />
18 <DeviceStep2 18 <DeviceStep2
  19 + ref="DeviceStep2Ref"
19 @prev="handleStepPrev" 20 @prev="handleStepPrev"
20 @next="handleStep2Next" 21 @next="handleStep2Next"
21 v-show="current === 1" 22 v-show="current === 1"
@@ -25,7 +26,7 @@ @@ -25,7 +26,7 @@
25 </BasicModal> 26 </BasicModal>
26 </template> 27 </template>
27 <script lang="ts"> 28 <script lang="ts">
28 - import { defineComponent, ref, nextTick, computed, unref, reactive, toRefs } from 'vue'; 29 + import { defineComponent, ref, computed, unref, reactive, toRefs } from 'vue';
29 import { BasicModal, useModalInner } from '/@/components/Modal'; 30 import { BasicModal, useModalInner } from '/@/components/Modal';
30 import DeviceStep1 from '/@/views/device/step/DeviceStep1.vue'; 31 import DeviceStep1 from '/@/views/device/step/DeviceStep1.vue';
31 import DeviceStep2 from '/@/views/device/step/DeviceStep2.vue'; 32 import DeviceStep2 from '/@/views/device/step/DeviceStep2.vue';
@@ -42,7 +43,10 @@ @@ -42,7 +43,10 @@
42 props: { 43 props: {
43 userData: { type: Object }, 44 userData: { type: Object },
44 }, 45 },
45 - setup(props) { 46 + setup(_) {
  47 + // const DeviceStep1Ref = ref<InstanceType<typeof DeviceStep1>>();
  48 + const DeviceStep1Ref = ref<InstanceType<typeof DeviceStep1>>();
  49 + const DeviceStep2Ref = ref<InstanceType<typeof DeviceStep2>>();
46 const state = reactive({ 50 const state = reactive({
47 initStep2: false, 51 initStep2: false,
48 }); 52 });
@@ -50,10 +54,10 @@ @@ -50,10 +54,10 @@
50 const isUpdate = ref(true); 54 const isUpdate = ref(true);
51 const modelRef = ref({}); 55 const modelRef = ref({});
52 const getTitle = computed(() => (!unref(isUpdate) ? '新增设备' : '编辑设备')); 56 const getTitle = computed(() => (!unref(isUpdate) ? '新增设备' : '编辑设备'));
53 - 57 + // 所有参数
  58 + let stepState = reactive({});
54 const [register] = useModalInner((data) => { 59 const [register] = useModalInner((data) => {
55 isUpdate.value = !!data?.isUpdate; 60 isUpdate.value = !!data?.isUpdate;
56 - data && onDataReceive(data);  
57 }); 61 });
58 62
59 function handleStepPrev() { 63 function handleStepPrev() {
@@ -62,52 +66,36 @@ @@ -62,52 +66,36 @@
62 function handleStep1Next(step1Values: any) { 66 function handleStep1Next(step1Values: any) {
63 current.value++; 67 current.value++;
64 state.initStep2 = true; 68 state.initStep2 = true;
65 - console.log(step1Values); 69 + stepState = { ...step1Values };
66 } 70 }
67 function handleStep2Next(step2Values: any) { 71 function handleStep2Next(step2Values: any) {
68 - current.value++;  
69 - console.log(step2Values);  
70 - }  
71 - function handleRedo() {  
72 - current.value = 0;  
73 - state.initStep2 = false; 72 + stepState = { ...stepState, ...step2Values };
74 } 73 }
75 function handleCancel() { 74 function handleCancel() {
76 - console.log('关闭了弹框');  
77 - }  
78 -  
79 - function onDataReceive(data) {  
80 - console.log('Data Received', data);  
81 - // 方式1;  
82 - // setFieldsValue({  
83 - // field2: data.data,  
84 - // field1: data.info,  
85 - // });  
86 -  
87 - // // 方式2  
88 - modelRef.value = { field2: data.data, field1: data.info };  
89 -  
90 - // setProps({  
91 - // model:{ field2: data.data, field1: data.info }  
92 - // }) 75 + current.value = 0;
  76 + DeviceStep1Ref?.value?.resetFields();
  77 + DeviceStep2Ref?.value?.resetFields();
  78 + console.log('关闭弹框');
  79 + stepState = {};
93 } 80 }
94 -  
95 - function handleVisibleChange(v) {  
96 - v && props.userData && nextTick(() => onDataReceive(props.userData)); 81 + function handleOk() {
  82 + // 所有参数
  83 + console.log(stepState);
  84 + console.log('确定了');
97 } 85 }
98 -  
99 return { 86 return {
100 register, 87 register,
101 model: modelRef, 88 model: modelRef,
102 getTitle, 89 getTitle,
103 - handleVisibleChange,  
104 current, 90 current,
  91 + DeviceStep1Ref,
  92 + DeviceStep2Ref,
105 ...toRefs(state), 93 ...toRefs(state),
106 handleStepPrev, 94 handleStepPrev,
107 handleStep1Next, 95 handleStep1Next,
108 handleStep2Next, 96 handleStep2Next,
109 handleCancel, 97 handleCancel,
110 - handleRedo, 98 + handleOk,
111 }; 99 };
112 }, 100 },
113 }); 101 });
@@ -56,7 +56,7 @@ @@ -56,7 +56,7 @@
56 import { useScript } from '/@/hooks/web/useScript'; 56 import { useScript } from '/@/hooks/web/useScript';
57 import { ScrollActionType } from '/@/components/Container/index'; 57 import { ScrollActionType } from '/@/components/Container/index';
58 import { Input, Divider, Upload, message, Modal, Form, Row, Col } from 'ant-design-vue'; 58 import { Input, Divider, Upload, message, Modal, Form, Row, Col } from 'ant-design-vue';
59 - import { EnvironmentTwoTone, LoadingOutlined, PlusOutlined } from '@ant-design/icons-vue'; 59 + import { EnvironmentTwoTone, PlusOutlined } from '@ant-design/icons-vue';
60 import { upload } from '/@/api/oss/ossFileUploader'; 60 import { upload } from '/@/api/oss/ossFileUploader';
61 import { FileItem } from '/@/components/Upload/src/typing'; 61 import { FileItem } from '/@/components/Upload/src/typing';
62 62
@@ -84,7 +84,7 @@ @@ -84,7 +84,7 @@
84 lat: '', 84 lat: '',
85 address: '', 85 address: '',
86 }); 86 });
87 - const [register, { validate }] = useForm({ 87 + const [register, { validate, resetFields }] = useForm({
88 labelWidth: 100, 88 labelWidth: 100,
89 schemas: step1Schemas, 89 schemas: step1Schemas,
90 actionColOptions: { 90 actionColOptions: {
@@ -172,6 +172,7 @@ @@ -172,6 +172,7 @@
172 visible.value = false; 172 visible.value = false;
173 }; 173 };
174 return { 174 return {
  175 + resetFields,
175 positionState, 176 positionState,
176 register, 177 register,
177 beforeUpload, 178 beforeUpload,
1 <template> 1 <template>
2 <div class="step2"> 2 <div class="step2">
3 - <div><input type="checkbox" v-model="isCreaentials" @click="checked" /> 添加凭证 </div> 3 + <div
  4 + ><input type="checkbox" v-model="creaentialsPassword.isCreaentials" @click="checked" />
  5 + 添加凭证
  6 + </div>
4 7
5 - <a-form :label-col="labelCol" :wrapper-col="wrapperCol" v-if="isCreaentials">  
6 - <a-form-item label="凭据类型"> 8 + <a-form
  9 + ref="formRef"
  10 + :label-col="labelCol"
  11 + :wrapper-col="wrapperCol"
  12 + v-if="creaentialsPassword.isCreaentials"
  13 + :model="creaentialsPassword"
  14 + >
  15 + <a-form-item label="凭据类型" name="creantialsType">
7 <a-select 16 <a-select
8 - v-model:value="creaentialsType" 17 + v-model:value="creaentialsPassword.creaentialsType"
9 style="width: 200px" 18 style="width: 200px"
10 @change="handleChange" 19 @change="handleChange"
11 placeholder="请选择凭据类型" 20 placeholder="请选择凭据类型"
12 :options="options" 21 :options="options"
13 /> 22 />
14 </a-form-item> 23 </a-form-item>
15 - <div v-if="creaentialsType === 'Access token'">  
16 - <a-form-item label="访问令牌">  
17 - <a-input type="input" style="width: 200px" v-model:value="token" /> 24 + <div v-if="creaentialsPassword.creaentialsType === 'Access token'">
  25 + <a-form-item label="访问令牌" name="token">
  26 + <a-input type="input" style="width: 200px" v-model:value="creaentialsPassword.token" />
18 </a-form-item> 27 </a-form-item>
19 </div> 28 </div>
20 - <div v-else-if="creaentialsType === 'X.509'">  
21 - <a-form-item label="RSA公钥">  
22 - <a-input type="input" style="width: 200px" v-model:value="publicKey" /> 29 + <div v-else-if="creaentialsPassword.creaentialsType === 'X.509'">
  30 + <a-form-item label="RSA公钥" name="publicKey">
  31 + <a-input
  32 + type="input"
  33 + style="width: 200px"
  34 + v-model:value="creaentialsPassword.publicKey"
  35 + />
23 </a-form-item> 36 </a-form-item>
24 </div> 37 </div>
25 <div v-else> 38 <div v-else>
26 - <a-form-item label="客户端ID">  
27 - <a-input type="input" style="width: 200px" v-model:value="clientId" /> 39 + <a-form-item label="客户端ID" name="clientId">
  40 + <a-input type="input" style="width: 200px" v-model:value="creaentialsPassword.clientId" />
28 </a-form-item> 41 </a-form-item>
29 - <a-form-item label="用户名">  
30 - <a-input type="input" style="width: 200px" v-model:value="username" /> 42 + <a-form-item label="用户名" name="username">
  43 + <a-input type="input" style="width: 200px" v-model:value="creaentialsPassword.username" />
31 </a-form-item> 44 </a-form-item>
32 - <a-form-item label="密码">  
33 - <a-input type="password" style="width: 200px" v-model:value="password" /> 45 + <a-form-item label="密码" name="password">
  46 + <a-input
  47 + type="password"
  48 + style="width: 200px"
  49 + v-model:value="creaentialsPassword.password"
  50 + />
34 </a-form-item> 51 </a-form-item>
35 </div> 52 </div>
36 </a-form> 53 </a-form>
@@ -41,9 +58,9 @@ @@ -41,9 +58,9 @@
41 </div> 58 </div>
42 </template> 59 </template>
43 <script lang="ts"> 60 <script lang="ts">
44 - import { defineComponent, reactive, ref, toRefs } from 'vue'; 61 + import { defineComponent, reactive, ref, watch } from 'vue';
45 62
46 - import { Input, Form, Select, Button, SelectProps } from 'ant-design-vue'; 63 + import { Input, Form, Select, Button } from 'ant-design-vue';
47 export default defineComponent({ 64 export default defineComponent({
48 components: { 65 components: {
49 [Form.name]: Form, 66 [Form.name]: Form,
@@ -52,18 +69,19 @@ @@ -52,18 +69,19 @@
52 [Select.name]: Select, 69 [Select.name]: Select,
53 [Button.name]: Button, 70 [Button.name]: Button,
54 }, 71 },
55 - emits: ['prev'], 72 + emits: ['prev', 'next'],
56 setup(_, { emit }) { 73 setup(_, { emit }) {
57 - const isCreaentials = ref(false);  
58 - const creaentialsType = ref('Access token'); 74 + const formRef = ref();
59 const creaentialsPassword = reactive({ 75 const creaentialsPassword = reactive({
  76 + isCreaentials: false,
  77 + creaentialsType: 'Access token',
60 token: '', 78 token: '',
61 publicKey: '', 79 publicKey: '',
62 clientId: '', 80 clientId: '',
63 username: '', 81 username: '',
64 password: '', 82 password: '',
65 }); 83 });
66 - const options = ref<SelectProps['options']>([ 84 + const options = ref([
67 { 85 {
68 value: 'Access token', 86 value: 'Access token',
69 label: 'Access token', 87 label: 'Access token',
@@ -79,11 +97,15 @@ @@ -79,11 +97,15 @@
79 }, 97 },
80 ]); 98 ]);
81 const checked = () => { 99 const checked = () => {
82 - isCreaentials.value = !isCreaentials.value; 100 + creaentialsPassword.isCreaentials = !creaentialsPassword.isCreaentials;
83 }; 101 };
84 const prevStep = () => { 102 const prevStep = () => {
85 emit('prev'); 103 emit('prev');
86 }; 104 };
  105 + watch(creaentialsPassword, (newValue) => {
  106 + emit('next', newValue);
  107 + });
  108 +
87 // 切换凭证类型时,重置字段 109 // 切换凭证类型时,重置字段
88 const handleChange = (value) => { 110 const handleChange = (value) => {
89 if (value === 'Access token') { 111 if (value === 'Access token') {
@@ -96,16 +118,23 @@ @@ -96,16 +118,23 @@
96 creaentialsPassword.password = ''; 118 creaentialsPassword.password = '';
97 } 119 }
98 }; 120 };
  121 +
  122 + // 重置所有字段
  123 + function resetFields() {
  124 + console.log(formRef);
  125 + formRef.value.resetFields();
  126 + console.log('----');
  127 + }
99 return { 128 return {
100 - ...toRefs(creaentialsPassword),  
101 - creaentialsType,  
102 - isCreaentials,  
103 options, 129 options,
  130 + formRef,
  131 + creaentialsPassword,
104 handleChange, 132 handleChange,
105 prevStep, 133 prevStep,
106 checked, 134 checked,
107 labelCol: { style: { width: '150px' } }, 135 labelCol: { style: { width: '150px' } },
108 wrapperCol: { span: 18 }, 136 wrapperCol: { span: 18 },
  137 + resetFields,
109 }; 138 };
110 }, 139 },
111 }); 140 });