Commit bf0aa85c24ecc893db4ff2b9ca9899b34883afa0

Authored by fengtao
1 parent d4059901

pref:优化报表配置

@@ -17,6 +17,9 @@ @@ -17,6 +17,9 @@
17 @change="handleDeviceChange" 17 @change="handleDeviceChange"
18 mode="multiple" 18 mode="multiple"
19 labelInValue 19 labelInValue
  20 + allowClear
  21 + @deselect="handleDeSelect"
  22 + notFoundContent="请选择设备"
20 /> 23 />
21 <div style="margin-top: 1.5vh"></div> 24 <div style="margin-top: 1.5vh"></div>
22 <DeviceAttrCpns 25 <DeviceAttrCpns
@@ -24,6 +27,7 @@ @@ -24,6 +27,7 @@
24 @change="handleChange" 27 @change="handleChange"
25 :value="deviceList" 28 :value="deviceList"
26 :orgId="organizationId || orgId" 29 :orgId="organizationId || orgId"
  30 + :deSelectValue="deSelectValue"
27 /> 31 />
28 </template> 32 </template>
29 </BasicForm> 33 </BasicForm>
@@ -67,6 +71,11 @@ @@ -67,6 +71,11 @@
67 const handleDeviceChange = (e) => { 71 const handleDeviceChange = (e) => {
68 deviceList.value = e; 72 deviceList.value = e;
69 }; 73 };
  74 + const deSelectValue = ref('');
  75 + const handleDeSelect = ({ key }) => {
  76 + //取消选中的key
  77 + deSelectValue.value = key;
  78 + };
70 const [registerForm, { validate, setFieldsValue, resetFields }] = useForm({ 79 const [registerForm, { validate, setFieldsValue, resetFields }] = useForm({
71 labelWidth: 120, 80 labelWidth: 120,
72 schemas: formSchema, 81 schemas: formSchema,
1 <template> 1 <template>
2 <div 2 <div
3 - v-for="(param, index) in dynamicInput.params"  
4 - :key="index" 3 + v-for="param in dynamicInput.params"
  4 + :key="param.key"
5 style="display: flex; margin-top: 0.25vh" 5 style="display: flex; margin-top: 0.25vh"
6 > 6 >
7 <a-input 7 <a-input
@@ -16,6 +16,7 @@ @@ -16,6 +16,7 @@
16 style="width: 160px; margin-left: 1.8vw" 16 style="width: 160px; margin-left: 1.8vw"
17 :options="selectOptions" 17 :options="selectOptions"
18 @change="emitChange" 18 @change="emitChange"
  19 + allowClear
19 /> 20 />
20 </div> 21 </div>
21 </template> 22 </template>
@@ -40,7 +41,7 @@ @@ -40,7 +41,7 @@
40 value: propTypes.array.def([]), 41 value: propTypes.array.def([]),
41 orgId: propTypes.string.def(''), 42 orgId: propTypes.string.def(''),
42 }); 43 });
43 - const emits = defineEmits(['change', 'update:value', 'dynamicReduceHeight', 'dynamicAddHeight']); 44 + const emits = defineEmits(['change', 'update:value']);
44 const selectOptions = ref<SelectTypes['options']>([]); 45 const selectOptions = ref<SelectTypes['options']>([]);
45 //获取属性 46 //获取属性
46 const getAttr = async (orgId, deviceId) => { 47 const getAttr = async (orgId, deviceId) => {
@@ -67,7 +68,6 @@ @@ -67,7 +68,6 @@
67 let jsonObj = props.value; 68 let jsonObj = props.value;
68 const deviceId = jsonObj.map((m: any) => m.value); 69 const deviceId = jsonObj.map((m: any) => m.value);
69 await getAttr(props.orgId, deviceId); 70 await getAttr(props.orgId, deviceId);
70 - console.log(jsonObj);  
71 jsonObj.forEach((item: any) => { 71 jsonObj.forEach((item: any) => {
72 dynamicInput.params.push({ 72 dynamicInput.params.push({
73 attribute: '', 73 attribute: '',
@@ -97,12 +97,12 @@ @@ -97,12 +97,12 @@
97 //回显 97 //回显
98 const echoDynamicInputFunc = (o) => { 98 const echoDynamicInputFunc = (o) => {
99 dynamicInput.params = []; 99 dynamicInput.params = [];
100 - dynamicInput.params = o.map((m) => {  
101 - return { 100 + o.forEach((m: any) => {
  101 + dynamicInput.params.push({
102 device: m.name, 102 device: m.name,
103 attribute: m.attribute, 103 attribute: m.attribute,
104 value: m.device, 104 value: m.device,
105 - }; 105 + });
106 }); 106 });
107 }; 107 };
108 defineExpose({ 108 defineExpose({
@@ -110,21 +110,5 @@ @@ -110,21 +110,5 @@
110 }); 110 });
111 </script> 111 </script>
112 <style scoped lang="css"> 112 <style scoped lang="css">
113 - .dynamic-delete-button {  
114 - cursor: pointer;  
115 - position: relative;  
116 - top: 4px;  
117 - font-size: 24px;  
118 - color: #999;  
119 - transition: all 0.3s;  
120 - }  
121 -  
122 - .dynamic-delete-button:hover {  
123 - color: #777;  
124 - }  
125 -  
126 - .dynamic-delete-button[disabled] {  
127 - cursor: not-allowed;  
128 - opacity: 0.5;  
129 - } 113 + @import './deviceAttrCpns.css';
130 </style> 114 </style>
  1 +.dynamic-delete-button {
  2 + cursor: pointer;
  3 + position: relative;
  4 + top: 4px;
  5 + font-size: 24px;
  6 + color: #999;
  7 + transition: all 0.3s;
  8 +}
  9 +
  10 +.dynamic-delete-button:hover {
  11 + color: #777;
  12 +}
  13 +
  14 +.dynamic-delete-button[disabled] {
  15 + cursor: not-allowed;
  16 + opacity: 0.5;
  17 +}