地址接口的视线
This commit is contained in:
151
assets/img/icon/blue_fail.svg
Normal file
151
assets/img/icon/blue_fail.svg
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
<svg width="42.000000" height="42.000000" viewBox="0 0 42 42" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<desc>
|
||||||
|
Created with Pixso.
|
||||||
|
</desc>
|
||||||
|
<defs/>
|
||||||
|
<g style="mix-blend-mode:normal"/>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<circle id="椭圆 1613" cx="9.843750" cy="29.759521" r="8.968300" fill="#F84B20" fill-opacity="1.000000"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal"/>
|
||||||
|
<g style="mix-blend-mode:normal"/>
|
||||||
|
<g style="mix-blend-mode:normal"/>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1395" d="M19.71 3.35C19.72 3.26 19.73 3.18 19.76 3.1C19.73 3.18 19.72 3.26 19.71 3.35Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1396" d="M21.12 2.19C21.21 2.2 21.29 2.21 21.37 2.24C21.29 2.21 21.21 2.2 21.12 2.19Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1397" d="M19.68 18.51L8.94 11.15C8.34 10.74 7.52 10.9 7.11 11.49C6.7 12.09 6.86 12.91 7.45 13.32L18.67 20.99L19.68 20.3L19.68 18.51Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1398" d="M20.62 2.24C20.7 2.21 20.79 2.2 20.87 2.19C20.79 2.2 20.71 2.21 20.62 2.24Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1399" d="M19.91 2.73C19.89 2.77 19.88 2.81 19.86 2.85C19.9 2.78 19.86 2.79 19.91 2.73Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1400" d="M22.31 3.48L22.31 5.96L31.47 12.23L22.31 18.51L22.31 20.3L23.32 20.99L34.54 13.32C34.89 13.07 35.11 12.67 35.11 12.23C35.11 11.8 34.89 11.4 34.54 11.15L21.74 2.39C21.7 2.37 21.66 2.36 21.62 2.34C22.02 2.57 22.31 2.98 22.31 3.48Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1401" d="M20.19 2.46C20.25 2.41 20.32 2.37 20.39 2.33C20.32 2.37 20.25 2.41 20.19 2.46Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1402" d="M20.99 2.16C20.95 2.16 20.92 2.18 20.87 2.19C20.96 2.18 21.04 2.18 21.12 2.19C21.08 2.18 21.04 2.16 20.99 2.16Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1403" d="M21.37 2.24C21.46 2.27 21.54 2.3 21.62 2.34C21.54 2.3 21.46 2.27 21.37 2.24Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1404" d="M19.76 3.1C19.79 3.01 19.82 2.93 19.86 2.85C19.82 2.93 19.79 3.01 19.76 3.1Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1405" d="M19.99 2.65C20.05 2.58 20.12 2.52 20.19 2.46C20.12 2.52 20.05 2.58 19.99 2.65Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1406" d="M20.39 2.33C20.46 2.29 20.54 2.26 20.62 2.24C20.54 2.26 20.46 2.29 20.39 2.33Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1407" d="M22.31 18.51L22.31 5.96L20.25 4.56C19.85 4.28 19.66 3.81 19.71 3.35C19.7 3.39 19.68 3.43 19.68 3.48L19.68 18.51L20.99 19.4L22.31 18.51Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1408" d="M20.25 4.56L22.31 5.96L22.31 3.48C22.31 2.98 22.02 2.57 21.62 2.34C21.54 2.3 21.46 2.27 21.37 2.24C21.29 2.21 21.21 2.2 21.12 2.19C21.04 2.18 20.96 2.18 20.87 2.19C20.79 2.2 20.7 2.21 20.62 2.24C20.54 2.26 20.46 2.29 20.39 2.33C20.32 2.37 20.25 2.41 20.19 2.46C20.12 2.52 20.05 2.58 19.99 2.65C19.94 2.71 19.9 2.78 19.86 2.85C19.82 2.93 19.79 3.01 19.76 3.1C19.73 3.18 19.72 3.26 19.71 3.35C19.66 3.81 19.85 4.28 20.25 4.56Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1409" d="M20.25 19.91C20.3 19.88 20.35 19.87 20.4 19.84C20.45 19.82 20.49 19.79 20.54 19.77C20.68 19.72 20.83 19.69 20.98 19.68C21.13 19.69 21.31 19.72 21.45 19.77C21.5 19.79 21.54 19.82 21.59 19.84C21.64 19.87 21.69 19.88 21.74 19.91L22.31 20.3L22.31 18.51L20.99 19.4L19.68 18.51L19.68 20.3L20.25 19.91Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1410" d="M21 39.83C21.15 39.83 21.3 39.79 21.45 39.73C21.31 39.79 21.16 39.83 21 39.83Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1411" d="M19.91 39.25C19.95 39.31 19.99 39.34 20.03 39.39C19.96 39.32 19.91 39.23 19.86 39.14C19.88 39.18 19.89 39.22 19.91 39.25Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1412" d="M34.54 28.67L23.32 20.99L22.31 21.69L22.31 23.48L31.47 29.75L22.31 36.02L22.31 38.51C22.31 39.02 22.01 39.45 21.59 39.67C21.64 39.64 21.69 39.63 21.74 39.6L34.54 30.84C34.89 30.59 35.11 30.19 35.11 29.75C35.11 29.32 34.89 28.92 34.54 28.67Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1413" d="M20.99 39.83C20.83 39.82 20.68 39.79 20.54 39.73C20.68 39.79 20.84 39.82 20.99 39.83Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1414" d="M20.45 39.7C20.32 39.64 20.2 39.56 20.09 39.46C20.2 39.56 20.32 39.64 20.45 39.7Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1415" d="M19.59 23.55L19.68 21.69L18.67 20.99L17.93 21.5C18.56 22.12 19.11 22.8 19.59 23.55Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1416" d="M19.76 38.89C19.73 38.81 19.72 38.73 19.71 38.64C19.72 38.73 19.73 38.81 19.76 38.89Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1417" d="M19.68 20.99L19.68 20.3L18.67 20.99L19.68 21.69L19.68 20.99Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1418" d="M22.31 20.99L22.31 21.69L23.32 20.99L22.31 20.3L22.31 20.99Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1419" d="M20.4 19.84C20.35 19.87 20.3 19.88 20.25 19.91L19.68 20.3L19.68 20.99C19.68 20.49 19.98 20.06 20.4 19.84Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1420" d="M22.31 20.99L22.31 20.3L21.74 19.91C21.69 19.88 21.64 19.87 21.59 19.84C22.01 20.06 22.31 20.49 22.31 20.99Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1421" d="M21.01 19.68C21.16 19.69 21.31 19.72 21.45 19.77C21.31 19.72 21.16 19.69 21.01 19.68Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1422" d="M20.54 19.77C20.68 19.72 20.83 19.69 20.98 19.68C20.83 19.69 20.68 19.72 20.54 19.77Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1423" d="M20.25 37.43L22.31 36.02L22.31 23.48L20.99 22.58L19.68 23.48L19.68 23.71C20.77 25.47 21.4 27.53 21.4 29.75C21.4 31.97 20.77 34.04 19.68 35.8L19.68 38.51C19.68 38.56 19.7 38.6 19.71 38.64C19.66 38.18 19.85 37.71 20.25 37.43Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1424" d="M21.59 39.67C21.54 39.69 21.5 39.72 21.45 39.73C21.5 39.72 21.54 39.69 21.59 39.67Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1425" d="" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1426" d="M19.86 39.14C19.82 39.06 19.79 38.98 19.76 38.89C19.79 38.98 19.82 39.06 19.86 39.14Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1427" d="" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1428" d="" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1429" d="M21.45 19.77C21.5 19.79 21.54 19.82 21.59 19.84C21.54 19.82 21.5 19.79 21.45 19.77Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1430" d="" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1431" d="M20.4 19.84C20.45 19.82 20.49 19.79 20.54 19.77C20.49 19.79 20.45 19.82 20.4 19.84Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1432" d="M22.31 38.51L22.31 36.02L20.25 37.43C19.85 37.71 19.66 38.18 19.71 38.64C19.72 38.73 19.73 38.81 19.76 38.89C19.79 38.98 19.82 39.06 19.86 39.14C19.91 39.23 19.96 39.32 20.03 39.39C20.14 39.49 20.32 39.64 20.45 39.7C20.6 39.76 20.83 39.82 20.99 39.83C21.15 39.83 21.31 39.79 21.45 39.73C21.5 39.72 21.54 39.69 21.59 39.67C22.01 39.45 22.31 39.02 22.31 38.51Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1433" d="M21.59 22.15C21.54 22.17 21.5 22.2 21.45 22.22C21.3 22.27 21.15 22.31 20.99 22.31C20.84 22.31 20.69 22.27 20.54 22.22C20.49 22.2 20.45 22.17 20.4 22.15C20.35 22.12 20.3 22.11 20.25 22.08L19.68 21.69L19.68 23.48L20.99 22.58L22.31 23.48L22.31 21.69L21.74 22.08C21.69 22.11 21.64 22.12 21.59 22.15Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1434" d="M20.4 22.15C19.98 21.93 19.68 21.5 19.68 20.99L19.68 21.69L20.25 22.08C20.3 22.11 20.35 22.12 20.4 22.15Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1435" d="M20.99 22.31C20.83 22.31 20.68 22.27 20.54 22.22C20.69 22.27 20.84 22.31 20.99 22.31Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1436" d="M21.59 22.15C21.64 22.12 21.69 22.11 21.74 22.08L22.31 21.69L22.31 20.99C22.31 21.5 22.01 21.93 21.59 22.15Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1437" d="M21.45 22.22C21.31 22.27 21.16 22.31 20.99 22.31C21.15 22.31 21.3 22.27 21.45 22.22Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1438" d="M21.59 22.15C21.54 22.17 21.5 22.2 21.45 22.22C21.5 22.2 21.54 22.17 21.59 22.15Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1439" d="M20.54 22.22C20.49 22.2 20.45 22.17 20.4 22.15C20.45 22.17 20.49 22.2 20.54 22.22Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1440" d="M20.4 22.15C20.45 22.17 20.49 22.2 20.54 22.22C20.68 22.27 20.83 22.31 20.99 22.31C21.16 22.31 21.31 22.27 21.45 22.22C21.5 22.2 21.54 22.17 21.59 22.15C22.01 21.93 22.31 21.5 22.31 20.99C22.31 20.49 22.01 20.06 21.59 19.84C21.54 19.82 21.5 19.79 21.45 19.77C21.31 19.72 21.16 19.69 21.01 19.68C20.85 19.69 20.68 19.72 20.54 19.77C20.49 19.79 20.45 19.82 20.4 19.84C19.98 20.06 19.68 20.49 19.68 20.99C19.68 21.5 19.98 21.93 20.4 22.15Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 12 KiB |
151
assets/img/icon/blue_success.svg
Normal file
151
assets/img/icon/blue_success.svg
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
<svg width="42.000000" height="42.000000" viewBox="0 0 42 42" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<desc>
|
||||||
|
Created with Pixso.
|
||||||
|
</desc>
|
||||||
|
<defs/>
|
||||||
|
<g style="mix-blend-mode:normal"/>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<circle id="椭圆 1630" cx="9.843750" cy="29.759521" r="8.968300" fill="#6BFDAC" fill-opacity="1.000000"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal"/>
|
||||||
|
<g style="mix-blend-mode:normal"/>
|
||||||
|
<g style="mix-blend-mode:normal"/>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1503" d="M19.71 3.35C19.72 3.26 19.73 3.18 19.76 3.1C19.73 3.18 19.72 3.26 19.71 3.35Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1504" d="M21.12 2.19C21.21 2.2 21.29 2.21 21.37 2.24C21.29 2.21 21.21 2.2 21.12 2.19Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1505" d="M19.68 18.51L8.94 11.15C8.34 10.74 7.52 10.9 7.11 11.49C6.7 12.09 6.86 12.91 7.45 13.32L18.67 20.99L19.68 20.3L19.68 18.51Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1506" d="M20.62 2.24C20.7 2.21 20.79 2.2 20.87 2.19C20.79 2.2 20.71 2.21 20.62 2.24Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1507" d="M19.91 2.73C19.89 2.77 19.88 2.81 19.86 2.85C19.9 2.78 19.86 2.79 19.91 2.73Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1508" d="M22.31 3.48L22.31 5.96L31.47 12.23L22.31 18.51L22.31 20.3L23.32 20.99L34.54 13.32C34.89 13.07 35.11 12.67 35.11 12.23C35.11 11.8 34.89 11.4 34.54 11.15L21.74 2.39C21.7 2.37 21.66 2.36 21.62 2.34C22.02 2.57 22.31 2.98 22.31 3.48Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1509" d="M20.19 2.46C20.25 2.41 20.32 2.37 20.39 2.33C20.32 2.37 20.25 2.41 20.19 2.46Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1510" d="M20.99 2.16C20.95 2.16 20.92 2.18 20.87 2.19C20.96 2.18 21.04 2.18 21.12 2.19C21.08 2.18 21.04 2.16 20.99 2.16Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1511" d="M21.37 2.24C21.46 2.27 21.54 2.3 21.62 2.34C21.54 2.3 21.46 2.27 21.37 2.24Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1512" d="M19.76 3.1C19.79 3.01 19.82 2.93 19.86 2.85C19.82 2.93 19.79 3.01 19.76 3.1Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1513" d="M19.99 2.65C20.05 2.58 20.12 2.52 20.19 2.46C20.12 2.52 20.05 2.58 19.99 2.65Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1514" d="M20.39 2.33C20.46 2.29 20.54 2.26 20.62 2.24C20.54 2.26 20.46 2.29 20.39 2.33Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1515" d="M22.31 18.51L22.31 5.96L20.25 4.56C19.85 4.28 19.66 3.81 19.71 3.35C19.7 3.39 19.68 3.43 19.68 3.48L19.68 18.51L20.99 19.4L22.31 18.51Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1516" d="M20.25 4.56L22.31 5.96L22.31 3.48C22.31 2.98 22.02 2.57 21.62 2.34C21.54 2.3 21.46 2.27 21.37 2.24C21.29 2.21 21.21 2.2 21.12 2.19C21.04 2.18 20.96 2.18 20.87 2.19C20.79 2.2 20.7 2.21 20.62 2.24C20.54 2.26 20.46 2.29 20.39 2.33C20.32 2.37 20.25 2.41 20.19 2.46C20.12 2.52 20.05 2.58 19.99 2.65C19.94 2.71 19.9 2.78 19.86 2.85C19.82 2.93 19.79 3.01 19.76 3.1C19.73 3.18 19.72 3.26 19.71 3.35C19.66 3.81 19.85 4.28 20.25 4.56Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1517" d="M20.25 19.91C20.3 19.88 20.35 19.87 20.4 19.84C20.45 19.82 20.49 19.79 20.54 19.77C20.68 19.72 20.83 19.69 20.98 19.68C21.13 19.69 21.31 19.72 21.45 19.77C21.5 19.79 21.54 19.82 21.59 19.84C21.64 19.87 21.69 19.88 21.74 19.91L22.31 20.3L22.31 18.51L20.99 19.4L19.68 18.51L19.68 20.3L20.25 19.91Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1518" d="M21 39.83C21.15 39.83 21.3 39.79 21.45 39.73C21.31 39.79 21.16 39.83 21 39.83Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1519" d="M19.91 39.25C19.95 39.31 19.99 39.34 20.03 39.39C19.96 39.32 19.91 39.23 19.86 39.14C19.88 39.18 19.89 39.22 19.91 39.25Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1520" d="M34.54 28.67L23.32 20.99L22.31 21.69L22.31 23.48L31.47 29.75L22.31 36.02L22.31 38.51C22.31 39.02 22.01 39.45 21.59 39.67C21.64 39.64 21.69 39.63 21.74 39.6L34.54 30.84C34.89 30.59 35.11 30.19 35.11 29.75C35.11 29.32 34.89 28.92 34.54 28.67Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1521" d="M20.99 39.83C20.83 39.82 20.68 39.79 20.54 39.73C20.68 39.79 20.84 39.82 20.99 39.83Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1522" d="M20.45 39.7C20.32 39.64 20.2 39.56 20.09 39.46C20.2 39.56 20.32 39.64 20.45 39.7Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1523" d="M19.59 23.55L19.68 21.69L18.67 20.99L17.93 21.5C18.56 22.12 19.11 22.8 19.59 23.55Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1524" d="M19.76 38.89C19.73 38.81 19.72 38.73 19.71 38.64C19.72 38.73 19.73 38.81 19.76 38.89Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1525" d="M19.68 20.99L19.68 20.3L18.67 20.99L19.68 21.69L19.68 20.99Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1526" d="M22.31 20.99L22.31 21.69L23.32 20.99L22.31 20.3L22.31 20.99Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1527" d="M20.4 19.84C20.35 19.87 20.3 19.88 20.25 19.91L19.68 20.3L19.68 20.99C19.68 20.49 19.98 20.06 20.4 19.84Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1528" d="M22.31 20.99L22.31 20.3L21.74 19.91C21.69 19.88 21.64 19.87 21.59 19.84C22.01 20.06 22.31 20.49 22.31 20.99Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1529" d="M21.01 19.68C21.16 19.69 21.31 19.72 21.45 19.77C21.31 19.72 21.16 19.69 21.01 19.68Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1530" d="M20.54 19.77C20.68 19.72 20.83 19.69 20.98 19.68C20.83 19.69 20.68 19.72 20.54 19.77Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1531" d="M20.25 37.43L22.31 36.02L22.31 23.48L20.99 22.58L19.68 23.48L19.68 23.71C20.77 25.47 21.4 27.53 21.4 29.75C21.4 31.97 20.77 34.04 19.68 35.8L19.68 38.51C19.68 38.56 19.7 38.6 19.71 38.64C19.66 38.18 19.85 37.71 20.25 37.43Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1532" d="M21.59 39.67C21.54 39.69 21.5 39.72 21.45 39.73C21.5 39.72 21.54 39.69 21.59 39.67Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1533" d="" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1534" d="M19.86 39.14C19.82 39.06 19.79 38.98 19.76 38.89C19.79 38.98 19.82 39.06 19.86 39.14Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1535" d="" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1536" d="" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1537" d="M21.45 19.77C21.5 19.79 21.54 19.82 21.59 19.84C21.54 19.82 21.5 19.79 21.45 19.77Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1538" d="" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1539" d="M20.4 19.84C20.45 19.82 20.49 19.79 20.54 19.77C20.49 19.79 20.45 19.82 20.4 19.84Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1540" d="M22.31 38.51L22.31 36.02L20.25 37.43C19.85 37.71 19.66 38.18 19.71 38.64C19.72 38.73 19.73 38.81 19.76 38.89C19.79 38.98 19.82 39.06 19.86 39.14C19.91 39.23 19.96 39.32 20.03 39.39C20.14 39.49 20.32 39.64 20.45 39.7C20.6 39.76 20.83 39.82 20.99 39.83C21.15 39.83 21.31 39.79 21.45 39.73C21.5 39.72 21.54 39.69 21.59 39.67C22.01 39.45 22.31 39.02 22.31 38.51Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1541" d="M21.59 22.15C21.54 22.17 21.5 22.2 21.45 22.22C21.3 22.27 21.15 22.31 20.99 22.31C20.84 22.31 20.69 22.27 20.54 22.22C20.49 22.2 20.45 22.17 20.4 22.15C20.35 22.12 20.3 22.11 20.25 22.08L19.68 21.69L19.68 23.48L20.99 22.58L22.31 23.48L22.31 21.69L21.74 22.08C21.69 22.11 21.64 22.12 21.59 22.15Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1542" d="M20.4 22.15C19.98 21.93 19.68 21.5 19.68 20.99L19.68 21.69L20.25 22.08C20.3 22.11 20.35 22.12 20.4 22.15Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1543" d="M20.99 22.31C20.83 22.31 20.68 22.27 20.54 22.22C20.69 22.27 20.84 22.31 20.99 22.31Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1544" d="M21.59 22.15C21.64 22.12 21.69 22.11 21.74 22.08L22.31 21.69L22.31 20.99C22.31 21.5 22.01 21.93 21.59 22.15Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1545" d="M21.45 22.22C21.31 22.27 21.16 22.31 20.99 22.31C21.15 22.31 21.3 22.27 21.45 22.22Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1546" d="M21.59 22.15C21.54 22.17 21.5 22.2 21.45 22.22C21.5 22.2 21.54 22.17 21.59 22.15Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1547" d="M20.54 22.22C20.49 22.2 20.45 22.17 20.4 22.15C20.45 22.17 20.49 22.2 20.54 22.22Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
<g style="mix-blend-mode:normal">
|
||||||
|
<path id="路径 1548" d="M20.4 22.15C20.45 22.17 20.49 22.2 20.54 22.22C20.68 22.27 20.83 22.31 20.99 22.31C21.16 22.31 21.31 22.27 21.45 22.22C21.5 22.2 21.54 22.17 21.59 22.15C22.01 21.93 22.31 21.5 22.31 20.99C22.31 20.49 22.01 20.06 21.59 19.84C21.54 19.82 21.5 19.79 21.45 19.77C21.31 19.72 21.16 19.69 21.01 19.68C20.85 19.69 20.68 19.72 20.54 19.77C20.49 19.79 20.45 19.82 20.4 19.84C19.98 20.06 19.68 20.49 19.68 20.99C19.68 21.5 19.98 21.93 20.4 22.15Z" fill="#FFFFFF" fill-opacity="1.000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 12 KiB |
@@ -119,6 +119,19 @@ class MyUtils {
|
|||||||
return formatter.format(dateTime);
|
return formatter.format(dateTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static String formatTimestamp(int timestamp) {
|
||||||
|
try {
|
||||||
|
// 将毫秒时间戳转换为 DateTime
|
||||||
|
DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(timestamp);
|
||||||
|
|
||||||
|
// 格式化为你想要的样式,比如 'yyyy-MM-dd HH:mm'
|
||||||
|
final DateFormat formatter = DateFormat('yyyy-MM-dd HH:mm');
|
||||||
|
return formatter.format(dateTime);
|
||||||
|
} catch (e) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void scrollToFocusedInput(FocusNode focusNode, _scrollController) {
|
static void scrollToFocusedInput(FocusNode focusNode, _scrollController) {
|
||||||
// 获取输入框相对于整个页面的偏移量
|
// 获取输入框相对于整个页面的偏移量
|
||||||
RenderObject? object = focusNode.context?.findRenderObject();
|
RenderObject? object = focusNode.context?.findRenderObject();
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import 'package:ef/ef.dart';
|
import 'package:ef/ef.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:vbvs_app/controller/repair/repair_controller.dart';
|
||||||
|
|
||||||
import '../../controller/mh_controller/apply_repair_controller.dart';
|
import '../../controller/mh_controller/apply_repair_controller.dart';
|
||||||
|
|
||||||
@@ -7,12 +8,13 @@ class ImgPreviewDefaultWidget extends GetView {
|
|||||||
ApplyRepairController applyRepairController;
|
ApplyRepairController applyRepairController;
|
||||||
|
|
||||||
ImgPreviewDefaultWidget({required this.applyRepairController}) {}
|
ImgPreviewDefaultWidget({required this.applyRepairController}) {}
|
||||||
|
RepairController repairController = Get.find();
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return InkWell(
|
return InkWell(
|
||||||
// onTap: applyRepairController.uploadImg,
|
onTap: () async {
|
||||||
onTap: () async {},
|
await applyRepairController.uploadImg();
|
||||||
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
width: MediaQuery.sizeOf(context).width * 0.25,
|
width: MediaQuery.sizeOf(context).width * 0.25,
|
||||||
height: MediaQuery.sizeOf(context).height * 0.15,
|
height: MediaQuery.sizeOf(context).height * 0.15,
|
||||||
|
|||||||
@@ -41,9 +41,9 @@ class ImgPreviewWidget extends GetView {
|
|||||||
child: ClipRRect(
|
child: ClipRRect(
|
||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
child: Image.network(
|
child: Image.network(
|
||||||
'https://picsum.photos/seed/73/600',
|
imgUrl,
|
||||||
// applyRepairController.getPublicUrl(imgUrl),
|
|
||||||
|
|
||||||
|
// applyRepairController.getPublicUrl(imgUrl),
|
||||||
width: 300,
|
width: 300,
|
||||||
height: 200,
|
height: 200,
|
||||||
fit: BoxFit.cover,
|
fit: BoxFit.cover,
|
||||||
|
|||||||
@@ -39,8 +39,9 @@ class PeopleInfoController extends GetControllerEx<PeopleInfoModel> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> initData(String mac) async {
|
Future<void> onInit() async {
|
||||||
await getPeoples(mac); // 控制器创建时立即执行
|
super.onInit();
|
||||||
|
await getPeoples(Get.arguments['mac']); // 控制器创建时立即执行
|
||||||
}
|
}
|
||||||
|
|
||||||
getPeoples(String mac) async {
|
getPeoples(String mac) async {
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
import 'package:ef/ef.dart';
|
import 'package:ef/ef.dart';
|
||||||
import 'package:json_annotation/json_annotation.dart';
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
|
import 'package:vbvs_app/common/color/ServiceConstant.dart';
|
||||||
import 'package:vbvs_app/common/color/appConstants.dart';
|
import 'package:vbvs_app/common/color/appConstants.dart';
|
||||||
|
import 'package:vbvs_app/common/util/requestWithLog.dart';
|
||||||
|
import 'package:vbvs_app/model/api_response.dart';
|
||||||
import 'apply_repair_controller.dart';
|
import 'apply_repair_controller.dart';
|
||||||
part 'repair_list_controller.g.dart';
|
part 'repair_list_controller.g.dart';
|
||||||
|
|
||||||
@@ -11,7 +14,7 @@ class RepairListModel {
|
|||||||
bool isLoading = false;
|
bool isLoading = false;
|
||||||
bool hasMore = true;
|
bool hasMore = true;
|
||||||
|
|
||||||
List<ApplyRepairModel> repairList = [];
|
List repairList = [];
|
||||||
|
|
||||||
RepairListModel();
|
RepairListModel();
|
||||||
static RepairListModel fromJson(Map<String, dynamic> json) =>
|
static RepairListModel fromJson(Map<String, dynamic> json) =>
|
||||||
@@ -20,34 +23,32 @@ class RepairListModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class RepairListController extends GetControllerEx<RepairListModel> {
|
class RepairListController extends GetControllerEx<RepairListModel> {
|
||||||
// RepairRepository repairRepository = RepairRepository();
|
|
||||||
RepairListController() {
|
RepairListController() {
|
||||||
attr = GetModel(RepairListModel()).obs;
|
attr = GetModel(RepairListModel()).obs;
|
||||||
}
|
}
|
||||||
|
|
||||||
// //初始化列表数据
|
//初始化列表数据
|
||||||
// Future<void> initData() async {
|
@override
|
||||||
// if (model.isLoading) {
|
Future<void> onInit() async {
|
||||||
// return;
|
super.onInit();
|
||||||
// }
|
await getRepairList();
|
||||||
// model.isLoading = true;
|
}
|
||||||
// final List<dynamic> fetchedRepairs = await repairRepository.fetchRepairs(
|
|
||||||
// limit: model.limit, offset: model.offset);
|
getRepairList() async {
|
||||||
// if (fetchedRepairs != null) {
|
String serviceAddress = ServiceConstant.service_address;
|
||||||
// List<ApplyRepairModel> infos = [];
|
String serviceName = ServiceConstant.server_service;
|
||||||
// List<dynamic> tmp = fetchedRepairs as List<dynamic>;
|
String serviceApi = ServiceConstant.submit_repair;
|
||||||
// try {
|
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||||
// infos = tmp.map((repair) => ApplyRepairModel.fromJson(repair)).toList();
|
requestWithLog(
|
||||||
// model.repairList.addAll(infos);
|
logTitle: "查询报修数据",
|
||||||
// } catch (e) {
|
method: MyHttpMethod.get,
|
||||||
// print('Error parsing JSON: $e');
|
queryUrl: queryUrl,
|
||||||
// }
|
onSuccess: (res) {
|
||||||
// }
|
model.repairList = res.data;
|
||||||
// model.offset += model.limit; // 更新 offset,下一次查询跳过当前已经加载的记录
|
updateAll();
|
||||||
// model.hasMore = fetchedRepairs.length == model.limit; // 判断是否还有更多数据
|
},
|
||||||
// model.isLoading = false;
|
);
|
||||||
// updateAll();
|
}
|
||||||
// }
|
|
||||||
|
|
||||||
// Future<String> addScore(int id, int score) async {
|
// Future<String> addScore(int id, int score) async {
|
||||||
// return await repairRepository.addScore(id, score);
|
// return await repairRepository.addScore(id, score);
|
||||||
|
|||||||
@@ -108,74 +108,4 @@ class RepairController extends GetControllerEx<RepairModel> {
|
|||||||
return ApiResponse(code: -1, msg: "服务器.失败".tr);
|
return ApiResponse(code: -1, msg: "服务器.失败".tr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Future<ApiResponse> uploadImg() async {
|
|
||||||
// EasyDartModule.logger.info("请求上传媒体文件");
|
|
||||||
// DailyLogUtils.writeLog("请求上传媒体文件");
|
|
||||||
// final ImagePicker picker = ImagePicker();
|
|
||||||
// final XFile? file = await picker.pickMedia(); // ✅ 支持图片或视频
|
|
||||||
|
|
||||||
// try {
|
|
||||||
// ApiResponse apiResponse = ApiResponse(code: -1, msg: "我的.媒体上传失败".tr);
|
|
||||||
// if (file == null) {
|
|
||||||
// apiResponse.msg = "我的.未选择文件".tr;
|
|
||||||
// return apiResponse;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// final String filePath = file.path;
|
|
||||||
// final String fileName = filePath.split('/').last;
|
|
||||||
// final int fileSize = await file.length();
|
|
||||||
|
|
||||||
// final isImage = filePath.endsWith(".jpg") ||
|
|
||||||
// filePath.endsWith(".jpeg") ||
|
|
||||||
// filePath.endsWith(".png") ||
|
|
||||||
// filePath.endsWith(".gif");
|
|
||||||
// final isVideo = filePath.endsWith(".mp4") ||
|
|
||||||
// filePath.endsWith(".mov") ||
|
|
||||||
// filePath.endsWith(".avi") ||
|
|
||||||
// filePath.endsWith(".mkv");
|
|
||||||
|
|
||||||
// // 限制大小
|
|
||||||
// if (isImage && fileSize > 1048576 * 5) {
|
|
||||||
// apiResponse.msg = "上传限制(图片最大5MB)".tr;
|
|
||||||
// return apiResponse;
|
|
||||||
// } else if (isVideo && fileSize > 1048576 * 50) {
|
|
||||||
// apiResponse.msg = "上传限制(视频最大50MB)".tr;
|
|
||||||
// return apiResponse;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // 构建上传地址
|
|
||||||
// String queryUrl =
|
|
||||||
// "${ServiceConstant.service_address}${ServiceConstant.server_service}${ServiceConstant.upload_file}";
|
|
||||||
// String? language =
|
|
||||||
// languageController.selectLanguage?.value?.language_code;
|
|
||||||
// if (language != null && language.isNotEmpty) {
|
|
||||||
// queryUrl +=
|
|
||||||
// queryUrl.contains("?") ? "&lang=$language" : "?lang=$language";
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // 构建 formData
|
|
||||||
// var formData = dio.FormData.fromMap({
|
|
||||||
// "type": 2,
|
|
||||||
// "file": await dio.MultipartFile.fromFile(filePath, filename: fileName),
|
|
||||||
// });
|
|
||||||
|
|
||||||
// var response = await EasyDartModule.dio.post(queryUrl, data: formData);
|
|
||||||
// if (response != null) {
|
|
||||||
// var responseData =
|
|
||||||
// response.data is String ? jsonDecode(response.data) : response.data;
|
|
||||||
// ApiResponse res =
|
|
||||||
// ApiResponse.fromJson(responseData, (object) => object);
|
|
||||||
// MyUtils.formatResponse(res, "我的.上传成功".tr, "我的.媒体上传失败".tr);
|
|
||||||
// updateAll();
|
|
||||||
// return res;
|
|
||||||
// } else {
|
|
||||||
// return ApiResponse(code: -1, msg: "服务器.失败".tr);
|
|
||||||
// }
|
|
||||||
// } catch (e) {
|
|
||||||
// EasyDartModule.logger.error("上传媒体失败->$e");
|
|
||||||
// DailyLogUtils.writeError("上传媒体失败->$e");
|
|
||||||
// return ApiResponse(code: -1, msg: "服务器.失败".tr);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,7 +42,8 @@ class _MattressControlPageState extends State<MattressControlPage> {
|
|||||||
"failure": 0,
|
"failure": 0,
|
||||||
"updateTime": -1
|
"updateTime": -1
|
||||||
},
|
},
|
||||||
"code": "545024122666"
|
"code": "545024122666",
|
||||||
|
"blueToothStatus": 1
|
||||||
};
|
};
|
||||||
int selectedIndex = 1; // 当前选中的tab索引
|
int selectedIndex = 1; // 当前选中的tab索引
|
||||||
@override
|
@override
|
||||||
@@ -120,16 +121,13 @@ class _MattressControlPageState extends State<MattressControlPage> {
|
|||||||
highlightColor: Colors.transparent,
|
highlightColor: Colors.transparent,
|
||||||
padding: EdgeInsets.only(right: 69.rpx),
|
padding: EdgeInsets.only(right: 69.rpx),
|
||||||
onTap: () {},
|
onTap: () {},
|
||||||
child: Image.asset(
|
child:
|
||||||
|
//根据data['status']判断用那个svg
|
||||||
|
Image.asset(
|
||||||
'assets/images/active_bluetooth.png',
|
'assets/images/active_bluetooth.png',
|
||||||
width: 42.rpx,
|
width: 42.rpx,
|
||||||
height: 42.rpx,
|
height: 42.rpx,
|
||||||
),
|
),
|
||||||
// Icon(
|
|
||||||
// Icons.bluetooth,
|
|
||||||
// color: Colors.white,
|
|
||||||
// size: 42.rpx,
|
|
||||||
// ),
|
|
||||||
),
|
),
|
||||||
ClickableContainer(
|
ClickableContainer(
|
||||||
backgroundColor: Colors.transparent,
|
backgroundColor: Colors.transparent,
|
||||||
|
|||||||
@@ -13,17 +13,21 @@ import 'package:vbvs_app/component/img/img_preview_widget.dart';
|
|||||||
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
||||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||||
import 'package:vbvs_app/controller/mh_controller/apply_repair_controller.dart';
|
import 'package:vbvs_app/controller/mh_controller/apply_repair_controller.dart';
|
||||||
|
import 'package:vbvs_app/controller/mh_controller/repair_list_controller.dart';
|
||||||
import 'package:vbvs_app/controller/repair/repair_controller.dart';
|
import 'package:vbvs_app/controller/repair/repair_controller.dart';
|
||||||
import 'package:vbvs_app/model/api_response.dart';
|
import 'package:vbvs_app/model/api_response.dart';
|
||||||
|
import 'package:vbvs_app/pages/mh_page/applyRepair/apply_repair_success.dart';
|
||||||
|
|
||||||
class ApplyRepairPage extends GetView<ApplyRepairController> {
|
class ApplyRepairPage extends GetView<ApplyRepairController> {
|
||||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
final scaffoldKey = GlobalKey<ScaffoldState>();
|
||||||
BoxConstraints? bodysize;
|
BoxConstraints? bodysize;
|
||||||
RepairController repairController = Get.find();
|
|
||||||
|
RepairListController repairListController = Get.find();
|
||||||
|
ApplyRepairController applyRepairController = Get.find();
|
||||||
ApplyRepairPage() {
|
ApplyRepairPage() {
|
||||||
controller.attr.value.listenlists.clear();
|
controller.attr.value.listenlists.clear();
|
||||||
controller.getDeviceList();
|
controller.getDeviceList();
|
||||||
controller.model.device_type = "";
|
controller.model.device_type = null;
|
||||||
controller.model.select_device = "";
|
controller.model.select_device = "";
|
||||||
controller.model.device_category = "";
|
controller.model.device_category = "";
|
||||||
controller.model.device_name = "";
|
controller.model.device_name = "";
|
||||||
@@ -37,9 +41,6 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var tmpcontroller =
|
var tmpcontroller =
|
||||||
FormFieldController<String>(controller.model.select_device);
|
FormFieldController<String>(controller.model.select_device);
|
||||||
var typecontroller =
|
|
||||||
FormFieldController<String>(controller.model.device_type);
|
|
||||||
controller.model.address;
|
|
||||||
List<String> deviceTypeNames = ['床', '床垫'];
|
List<String> deviceTypeNames = ['床', '床垫'];
|
||||||
List<String> deviceTypeIds = ['床', '床垫'];
|
List<String> deviceTypeIds = ['床', '床垫'];
|
||||||
return LayoutBuilder(builder: (context, cc) {
|
return LayoutBuilder(builder: (context, cc) {
|
||||||
@@ -259,9 +260,10 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
(val) {
|
(val) {
|
||||||
var selectedDevice = controller.model.device_list!.firstWhere((device) => device['_id'].toString() == val);
|
var selectedDevice = controller.model.device_list!.firstWhere((device) => device['_id'].toString() == val);
|
||||||
controller.model.select_device = val;
|
controller.model.select_device = val;
|
||||||
controller.model.device_type = selectedDevice['type'] == 1 ? '床' : '床垫';
|
controller.model.device_type = selectedDevice['device_type'];
|
||||||
controller.model.device_category = selectedDevice['deviceSeries']['name'] ?? '未知型号'; // 获取设备型号
|
// controller.model.device_category = selectedDevice['deviceSeries']['name'] ?? '未知型号'; // 获取设备型号
|
||||||
controller.model.device_id = selectedDevice['mac'] ?? '未知设备ID'; // 获取设备ID
|
controller.model.device_category = '未知型号';
|
||||||
|
controller.model.device_id = selectedDevice['_id'] ?? '未知设备ID'; // 获取设备ID
|
||||||
controller.model.device_name = selectedDevice['name'] ?? '未知设备'; // 获取设备名称
|
controller.model.device_name = selectedDevice['name'] ?? '未知设备'; // 获取设备名称
|
||||||
controller.updateAll();
|
controller.updateAll();
|
||||||
},
|
},
|
||||||
@@ -373,107 +375,24 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 100,
|
width: 100,
|
||||||
height: 100,
|
height: 100,
|
||||||
decoration:
|
|
||||||
BoxDecoration(
|
|
||||||
color: Colors
|
|
||||||
.white,
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius
|
|
||||||
.circular(
|
|
||||||
8),
|
|
||||||
),
|
|
||||||
child:
|
|
||||||
TextFormField(
|
|
||||||
// autofocus: true,
|
|
||||||
onChanged:
|
|
||||||
(value) {
|
|
||||||
controller
|
|
||||||
.model
|
|
||||||
.device_type =
|
|
||||||
value;
|
|
||||||
},
|
|
||||||
obscureText:
|
|
||||||
false,
|
|
||||||
decoration:
|
decoration:
|
||||||
InputDecoration(
|
BoxDecoration(
|
||||||
isDense:
|
color: Colors
|
||||||
true,
|
.white,
|
||||||
labelStyle:
|
borderRadius:
|
||||||
const TextStyle(
|
BorderRadius
|
||||||
fontFamily:
|
.circular(8),
|
||||||
'Readex Pro',
|
|
||||||
letterSpacing:
|
|
||||||
0,
|
|
||||||
),
|
|
||||||
hintStyle:
|
|
||||||
const TextStyle(
|
|
||||||
fontFamily:
|
|
||||||
'Readex Pro',
|
|
||||||
letterSpacing:
|
|
||||||
0,
|
|
||||||
),
|
|
||||||
enabledBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide:
|
|
||||||
BorderSide(
|
|
||||||
color: const Color(
|
|
||||||
0x00000000),
|
|
||||||
width: 1
|
|
||||||
.rpx,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
AppConstants().normal_container_radius),
|
|
||||||
),
|
|
||||||
focusedBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide:
|
|
||||||
BorderSide(
|
|
||||||
color: Colors
|
|
||||||
.transparent,
|
|
||||||
width: 1
|
|
||||||
.rpx,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
8.rpx),
|
|
||||||
),
|
|
||||||
errorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide:
|
|
||||||
BorderSide(
|
|
||||||
//
|
|
||||||
width: 1
|
|
||||||
.rpx,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
8.rpx),
|
|
||||||
),
|
|
||||||
focusedErrorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide:
|
|
||||||
BorderSide(
|
|
||||||
//
|
|
||||||
width: 1
|
|
||||||
.rpx,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
8.rpx),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
style: TextStyle(
|
child: Padding(
|
||||||
letterSpacing:
|
padding: EdgeInsets.only(left: 26.rpx),
|
||||||
0,
|
child: Align(
|
||||||
color: Colors
|
alignment: Alignment.centerLeft,
|
||||||
.black,
|
child: Obx(() => Text(
|
||||||
fontSize:
|
getDeviceTypeName(controller.model.device_type),
|
||||||
26.rpx),
|
style: TextStyle(fontSize: 26.rpx, color: Colors.black),
|
||||||
),
|
))))),
|
||||||
),
|
|
||||||
),
|
),
|
||||||
].divide(SizedBox(
|
].divide(SizedBox(
|
||||||
width: 26.rpx)),
|
width: 26.rpx)),
|
||||||
@@ -526,107 +445,24 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 100,
|
width: 100,
|
||||||
height: 100,
|
height: 100,
|
||||||
decoration:
|
|
||||||
BoxDecoration(
|
|
||||||
color: Colors
|
|
||||||
.white,
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius
|
|
||||||
.circular(
|
|
||||||
8),
|
|
||||||
),
|
|
||||||
child:
|
|
||||||
TextFormField(
|
|
||||||
// autofocus: true,
|
|
||||||
onChanged:
|
|
||||||
(value) {
|
|
||||||
controller
|
|
||||||
.model
|
|
||||||
.device_category =
|
|
||||||
value;
|
|
||||||
},
|
|
||||||
obscureText:
|
|
||||||
false,
|
|
||||||
decoration:
|
decoration:
|
||||||
InputDecoration(
|
BoxDecoration(
|
||||||
isDense:
|
color: Colors
|
||||||
true,
|
.white,
|
||||||
labelStyle:
|
borderRadius:
|
||||||
const TextStyle(
|
BorderRadius
|
||||||
fontFamily:
|
.circular(8),
|
||||||
'Readex Pro',
|
|
||||||
letterSpacing:
|
|
||||||
0,
|
|
||||||
),
|
|
||||||
hintStyle:
|
|
||||||
const TextStyle(
|
|
||||||
fontFamily:
|
|
||||||
'Readex Pro',
|
|
||||||
letterSpacing:
|
|
||||||
0,
|
|
||||||
),
|
|
||||||
enabledBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide:
|
|
||||||
BorderSide(
|
|
||||||
color: const Color(
|
|
||||||
0x00000000),
|
|
||||||
width: 1
|
|
||||||
.rpx,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
AppConstants().normal_container_radius),
|
|
||||||
),
|
|
||||||
focusedBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide:
|
|
||||||
BorderSide(
|
|
||||||
color: Colors
|
|
||||||
.transparent,
|
|
||||||
width: 1
|
|
||||||
.rpx,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
8.rpx),
|
|
||||||
),
|
|
||||||
errorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide:
|
|
||||||
BorderSide(
|
|
||||||
//
|
|
||||||
width: 1
|
|
||||||
.rpx,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
8.rpx),
|
|
||||||
),
|
|
||||||
focusedErrorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide:
|
|
||||||
BorderSide(
|
|
||||||
//
|
|
||||||
width: 1
|
|
||||||
.rpx,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
8.rpx),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
style: TextStyle(
|
child: Padding(
|
||||||
letterSpacing:
|
padding: EdgeInsets.only(left: 26.rpx),
|
||||||
0,
|
child: Align(
|
||||||
color: Colors
|
alignment: Alignment.centerLeft,
|
||||||
.black,
|
child: Obx(() => Text(
|
||||||
fontSize:
|
controller.model.device_category ?? '',
|
||||||
26.rpx),
|
style: TextStyle(fontSize: 26.rpx, color: Colors.black),
|
||||||
),
|
))))),
|
||||||
),
|
|
||||||
),
|
),
|
||||||
].divide(SizedBox(
|
].divide(SizedBox(
|
||||||
width: 26.rpx)),
|
width: 26.rpx)),
|
||||||
@@ -679,107 +515,24 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 100,
|
width: 100,
|
||||||
height: 100,
|
height: 100,
|
||||||
decoration:
|
|
||||||
BoxDecoration(
|
|
||||||
color: const Color(
|
|
||||||
0xFFF3F5F6),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius
|
|
||||||
.circular(
|
|
||||||
8),
|
|
||||||
),
|
|
||||||
child:
|
|
||||||
TextFormField(
|
|
||||||
// autofocus: true,
|
|
||||||
onChanged:
|
|
||||||
(value) {
|
|
||||||
controller
|
|
||||||
.model
|
|
||||||
.device_id =
|
|
||||||
value;
|
|
||||||
},
|
|
||||||
obscureText:
|
|
||||||
false,
|
|
||||||
decoration:
|
decoration:
|
||||||
InputDecoration(
|
BoxDecoration(
|
||||||
isDense:
|
color: Colors
|
||||||
true,
|
.white,
|
||||||
labelStyle:
|
borderRadius:
|
||||||
const TextStyle(
|
BorderRadius
|
||||||
fontFamily:
|
.circular(8),
|
||||||
'Readex Pro',
|
|
||||||
letterSpacing:
|
|
||||||
0,
|
|
||||||
),
|
|
||||||
hintStyle:
|
|
||||||
const TextStyle(
|
|
||||||
fontFamily:
|
|
||||||
'Readex Pro',
|
|
||||||
letterSpacing:
|
|
||||||
0,
|
|
||||||
),
|
|
||||||
enabledBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide:
|
|
||||||
BorderSide(
|
|
||||||
color: const Color(
|
|
||||||
0x00000000),
|
|
||||||
width: 1
|
|
||||||
.rpx,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
AppConstants().normal_container_radius),
|
|
||||||
),
|
|
||||||
focusedBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide:
|
|
||||||
BorderSide(
|
|
||||||
color: Colors
|
|
||||||
.transparent,
|
|
||||||
width: 1
|
|
||||||
.rpx,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
8.rpx),
|
|
||||||
),
|
|
||||||
errorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide:
|
|
||||||
BorderSide(
|
|
||||||
//
|
|
||||||
width: 1
|
|
||||||
.rpx,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
8.rpx),
|
|
||||||
),
|
|
||||||
focusedErrorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide:
|
|
||||||
BorderSide(
|
|
||||||
//
|
|
||||||
width: 1
|
|
||||||
.rpx,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
8.rpx),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
style: TextStyle(
|
child: Padding(
|
||||||
letterSpacing:
|
padding: EdgeInsets.only(left: 26.rpx),
|
||||||
0,
|
child: Align(
|
||||||
color: Colors
|
alignment: Alignment.centerLeft,
|
||||||
.black,
|
child: Obx(() => Text(
|
||||||
fontSize:
|
controller.model.device_id ?? '',
|
||||||
26.rpx),
|
style: TextStyle(fontSize: 26.rpx, color: Colors.black),
|
||||||
),
|
))))),
|
||||||
),
|
|
||||||
),
|
),
|
||||||
].divide(SizedBox(
|
].divide(SizedBox(
|
||||||
width: 26.rpx)),
|
width: 26.rpx)),
|
||||||
@@ -833,21 +586,11 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
ApiResponse apiResponse =
|
ApiResponse apiResponse =
|
||||||
await repairController
|
await applyRepairController
|
||||||
.uploadImg();
|
.uploadImg();
|
||||||
print(apiResponse);
|
|
||||||
if (apiResponse.code ==
|
if (apiResponse.code ==
|
||||||
HttpStatusCodes.ok) {
|
HttpStatusCodes.ok) {
|
||||||
print(controller.model);
|
|
||||||
// setState(() {
|
|
||||||
// controller.model['path'] = apiResponse.data['path'];
|
|
||||||
// });
|
|
||||||
controller.model.issue_img!
|
|
||||||
.add(apiResponse
|
|
||||||
.data['path']);
|
|
||||||
repairController.repairList
|
|
||||||
.refresh(); // 通知 Obx 更新(如果用了 GetX)
|
|
||||||
print(controller.model);
|
|
||||||
} else {
|
} else {
|
||||||
if (controller.model
|
if (controller.model
|
||||||
.issue_img ==
|
.issue_img ==
|
||||||
@@ -1702,53 +1445,58 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
borderRadius: 16.rpx,
|
borderRadius: 16.rpx,
|
||||||
gradientDirection: GradientDirection.vertical,
|
gradientDirection: GradientDirection.vertical,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
TopSlideNotification.show(
|
String msg = checkRepairParam();
|
||||||
context,
|
if (msg.isNotEmpty) {
|
||||||
text: "功能开发中...",
|
TopSlideNotification.show(context,
|
||||||
);
|
text: msg,
|
||||||
// Get.toNamed("/applyRepairSuccess");
|
textColor:
|
||||||
// String msg = checkRepairParam();
|
themeController.currentColor.sc9);
|
||||||
// if (msg.isNotEmpty) {
|
} else {
|
||||||
// TopSlideNotification.show(context,
|
String serviceAddress =
|
||||||
// text: msg,
|
ServiceConstant.service_address;
|
||||||
// textColor:
|
String serviceName =
|
||||||
// themeController.currentColor.sc9);
|
ServiceConstant.server_service;
|
||||||
// } else {
|
String serviceApi =
|
||||||
// String serviceAddress =
|
ServiceConstant.submit_repair;
|
||||||
// ServiceConstant.service_address;
|
String queryUrl =
|
||||||
// String serviceName =
|
"$serviceAddress$serviceName$serviceApi";
|
||||||
// ServiceConstant.server_service;
|
var data = {
|
||||||
// String serviceApi =
|
"type": controller.model.device_type,
|
||||||
// ServiceConstant.submit_repair;
|
"contacts": {
|
||||||
// String queryUrl =
|
"name": controller.model.apply_name,
|
||||||
// "$serviceAddress$serviceName$serviceApi";
|
"phone": controller.model.tel,
|
||||||
// var data = {
|
},
|
||||||
// "device": repairController.repairList.value,
|
"device": [
|
||||||
// "type": repairController.device_type.value,
|
{
|
||||||
// "contacts": {
|
"mac": controller.model.device_id,
|
||||||
// "name": repairController.name.value,
|
"desc": controller.model.desc,
|
||||||
// "phone": repairController.phone.value
|
"img": controller.model.issue_img,
|
||||||
// },
|
}
|
||||||
// };
|
],
|
||||||
// ApiResponse apiResponse = await requestWithLog(
|
};
|
||||||
// logTitle: "提交报修信息",
|
ApiResponse apiResponse = await requestWithLog(
|
||||||
// method: MyHttpMethod.post,
|
logTitle: "提交报修信息",
|
||||||
// queryUrl: queryUrl,
|
method: MyHttpMethod.post,
|
||||||
// data: data,
|
queryUrl: queryUrl,
|
||||||
// onSuccess: (res) {
|
data: data,
|
||||||
// TopSlideNotification.show(context,
|
onSuccess: (res) {
|
||||||
// text: res.msg!);
|
TopSlideNotification.show(context,
|
||||||
// // Get.back();
|
text: res.msg!);
|
||||||
// Get.toNamed("/applyRepairSuccess");
|
|
||||||
// },
|
Get.toNamed("/applyRepairSuccess");
|
||||||
// onFailure: (res) {
|
// repairListController.getRepairList();
|
||||||
// TopSlideNotification.show(context,
|
},
|
||||||
// text: res.msg!,
|
onFailure: (res) {
|
||||||
// textColor:
|
TopSlideNotification.show(context,
|
||||||
// themeController.currentColor.sc9);
|
text: res.msg!,
|
||||||
// },
|
textColor:
|
||||||
// );
|
themeController.currentColor.sc9);
|
||||||
//}
|
},
|
||||||
|
);
|
||||||
|
controller.model =
|
||||||
|
ApplyRepairModel(); // 在 submitRepair 完成后执行
|
||||||
|
controller.updateAll();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
colors: const [
|
colors: const [
|
||||||
Color(0xFFFCFCFC),
|
Color(0xFFFCFCFC),
|
||||||
@@ -1819,61 +1567,54 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String checkRepairParam() {
|
String checkRepairParam() {
|
||||||
String errormsg = "";
|
String message = "";
|
||||||
|
|
||||||
// 检查报修项
|
if (controller.model.device_type == null ||
|
||||||
for (var i = 0; i < repairController.repairList.length; i++) {
|
controller.model.device_type == 0) {
|
||||||
final item = repairController.repairList[i];
|
message = '请选择设备类型!';
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
if (controller.model.device_category == null ||
|
||||||
|
controller.model.device_category!.isEmpty) {
|
||||||
|
message = '请输入设备型号!';
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
if (controller.model.device_id == null ||
|
||||||
|
controller.model.device_id!.isEmpty) {
|
||||||
|
message = '请输入设备序列号id!';
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
if (controller.model.apply_name == null ||
|
||||||
|
controller.model.apply_name!.isEmpty) {
|
||||||
|
message = '请输入姓名!';
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
RegExp nameRegExp = RegExp(r'^[\u4e00-\u9fa5]{2,4}$');
|
||||||
|
|
||||||
if (item["path"] == null || item["path"].toString().isEmpty) {
|
if (!nameRegExp.hasMatch(controller.model.apply_name!)) {
|
||||||
_scrollToKey(repairItemKeys[i]);
|
message = '姓名必须为2到4个汉字!';
|
||||||
// return "第 ${i + 1} 项图片未上传";
|
|
||||||
return "图片未上传".tr;
|
|
||||||
}
|
|
||||||
if (item["id"] == null || item["id"].toString().isEmpty) {
|
|
||||||
_scrollToKey(repairItemKeys[i]);
|
|
||||||
// return "第 ${i + 1} 项设备未选择";
|
|
||||||
return "设备未选择".tr;
|
|
||||||
}
|
|
||||||
if (item["param"] == null || item["param"].toString().isEmpty) {
|
|
||||||
_scrollToKey(repairItemKeys[i]);
|
|
||||||
// return "第 ${i + 1} 项参数未填写";
|
|
||||||
return "参数未填写".tr;
|
|
||||||
}
|
|
||||||
if (item["issue"] == null || item["issue"].toString().isEmpty) {
|
|
||||||
_scrollToKey(repairItemKeys[i]);
|
|
||||||
// return "第 ${i + 1} 项问题描述未填写";
|
|
||||||
return "问题描述未填写".tr;
|
|
||||||
}
|
|
||||||
if (item["issue"] != null && item["issue"].toString().trim().isNotEmpty) {
|
|
||||||
final issueText = item["issue"].toString().trim();
|
|
||||||
final charCount = issueText.runes.length;
|
|
||||||
|
|
||||||
if (charCount > 60) {
|
return message;
|
||||||
_scrollToKey(repairItemKeys[i]);
|
}
|
||||||
return "问题描述最多输入60个字".tr;
|
if (controller.model.tel == null || controller.model.tel!.isEmpty) {
|
||||||
}
|
message = '请输入手机号!';
|
||||||
} else {
|
return message;
|
||||||
_scrollToKey(repairItemKeys[i]);
|
}
|
||||||
return "问题描述不能为空".tr;
|
if (!MyUtils.isValidPhoneNumber(controller.model.tel!)) {
|
||||||
}
|
message = '无效的手机号!';
|
||||||
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查联系人
|
if (controller.model.desc == null || controller.model.desc!.isEmpty) {
|
||||||
if (repairController.name.trim().isEmpty) {
|
message = '请输入问题描述!';
|
||||||
_scrollToKey(contactKey);
|
return message;
|
||||||
return "联系人不能为空".tr;
|
|
||||||
}
|
}
|
||||||
if (repairController.phone.trim().isEmpty) {
|
if (controller.model.issue_img == null ||
|
||||||
_scrollToKey(phoneKey);
|
controller.model.issue_img!.isEmpty) {
|
||||||
return "联系电话不能为空".tr;
|
message = '请至少上传一张问题图片!';
|
||||||
|
return message;
|
||||||
}
|
}
|
||||||
if (!MyUtils.isValidPhoneNumber(repairController.phone.trim())) {
|
return message;
|
||||||
_scrollToKey(phoneKey);
|
|
||||||
return "无效的手机号码".tr;
|
|
||||||
}
|
|
||||||
|
|
||||||
return errormsg;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新增滚动方法
|
// 新增滚动方法
|
||||||
@@ -1886,4 +1627,18 @@ class ApplyRepairPage extends GetView<ApplyRepairController> {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String getDeviceTypeName(int? type) {
|
||||||
|
if (type == null) return '';
|
||||||
|
switch (type) {
|
||||||
|
case 1:
|
||||||
|
return '体征检测设备';
|
||||||
|
case 2:
|
||||||
|
return '智能床';
|
||||||
|
case 3:
|
||||||
|
return '智能床垫';
|
||||||
|
default:
|
||||||
|
return '未知设备';
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,15 +107,27 @@ class BluetoothPage extends GetView {
|
|||||||
// 蓝牙连接状态
|
// 蓝牙连接状态
|
||||||
Column(
|
Column(
|
||||||
children: [
|
children: [
|
||||||
Image.asset(
|
data['blueToothStatus'] == 1
|
||||||
'assets/images/active_bluetooth.png',
|
? SvgPicture.asset(
|
||||||
width: 68.rpx,
|
'assets/img/icon/blue_fail.svg',
|
||||||
height: 68.rpx,
|
width: 68.rpx,
|
||||||
),
|
height: 68.rpx,
|
||||||
|
)
|
||||||
|
: SvgPicture.asset(
|
||||||
|
'assets/img/icon/blue_success.svg',
|
||||||
|
width: 68.rpx,
|
||||||
|
height: 68.rpx,
|
||||||
|
),
|
||||||
SizedBox(height: 4),
|
SizedBox(height: 4),
|
||||||
Text('已连接',
|
//下面文字和颜色也根据上面变化
|
||||||
|
Text(
|
||||||
|
data['blueToothStatus'] == 1
|
||||||
|
? '未连接'
|
||||||
|
: '已连接',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Color(0xFF6BFDAC),
|
color: data['blueToothStatus'] == 1
|
||||||
|
? Color(0xFFFF7159)
|
||||||
|
: Color(0xFF6BFDAC),
|
||||||
fontSize: 26.rpx)),
|
fontSize: 26.rpx)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -136,7 +148,8 @@ class BluetoothPage extends GetView {
|
|||||||
context, '人员资料', "/peopleInfoPage",
|
context, '人员资料', "/peopleInfoPage",
|
||||||
arguments: data),
|
arguments: data),
|
||||||
_buildMenuButton(
|
_buildMenuButton(
|
||||||
context, '房间选择', "/roomPickerPage",arguments: data),
|
context, '房间选择', "/roomPickerPage",
|
||||||
|
arguments: data),
|
||||||
_buildMenuButton(context, '设备校准', ""),
|
_buildMenuButton(context, '设备校准', ""),
|
||||||
_buildMenuButton(context, '体征传感器', ""),
|
_buildMenuButton(context, '体征传感器', ""),
|
||||||
_buildMenuButton(context, 'WIFI配置', ""),
|
_buildMenuButton(context, 'WIFI配置', ""),
|
||||||
|
|||||||
@@ -631,7 +631,8 @@ class _MHTBlueteethDevicePageState extends State<MHTBlueteethDevicePage> {
|
|||||||
)),
|
)),
|
||||||
)),
|
)),
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsetsDirectional.fromSTEB(0, 52.rpx, 0, 0),
|
padding:
|
||||||
|
EdgeInsetsDirectional.fromSTEB(0, 52.rpx, 0, 30.rpx),
|
||||||
child: Container(
|
child: Container(
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import 'package:vbvs_app/common/util/FitTool.dart';
|
|||||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||||
import 'package:vbvs_app/common/util/requestWithLog.dart';
|
import 'package:vbvs_app/common/util/requestWithLog.dart';
|
||||||
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
||||||
|
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||||
|
|
||||||
class EditBedPage extends StatefulWidget {
|
class EditBedPage extends StatefulWidget {
|
||||||
final Map data;
|
final Map data;
|
||||||
@@ -171,6 +172,8 @@ class _EditBedPageState extends State<EditBedPage> {
|
|||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontFamily: 'Readex Pro',
|
fontFamily: 'Readex Pro',
|
||||||
letterSpacing: 0,
|
letterSpacing: 0,
|
||||||
|
color: Colors.white,
|
||||||
|
fontSize: 26.rpx,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
))
|
))
|
||||||
@@ -200,7 +203,8 @@ class _EditBedPageState extends State<EditBedPage> {
|
|||||||
"name": editedData["name"],
|
"name": editedData["name"],
|
||||||
},
|
},
|
||||||
onSuccess: (res) {
|
onSuccess: (res) {
|
||||||
'更新人员信息成功: $res';
|
TopSlideNotification.show(context,
|
||||||
|
text: "修改名称成功".tr);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import 'package:vbvs_app/common/color/appColors.dart';
|
|||||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||||
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
||||||
|
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||||
import 'package:vbvs_app/controller/mh_controller/repair_info_controller.dart';
|
import 'package:vbvs_app/controller/mh_controller/repair_info_controller.dart';
|
||||||
import 'package:vbvs_app/controller/mh_controller/repair_list_controller.dart';
|
import 'package:vbvs_app/controller/mh_controller/repair_list_controller.dart';
|
||||||
import 'package:vbvs_app/pages/mh_page/ColorChangeOnTap.dart';
|
import 'package:vbvs_app/pages/mh_page/ColorChangeOnTap.dart';
|
||||||
@@ -23,133 +24,19 @@ class RepairHistoryWidget extends GetView<RepairInfoController> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
int tmp = index;
|
int tmp = index;
|
||||||
index = tmp;
|
index = tmp;
|
||||||
// return ColorChangeOnPress(
|
|
||||||
// pressColor: AppColors().press_color, // 按下时的颜色
|
|
||||||
// shouldNavigate: true, // 是否需要跳转
|
|
||||||
// routeName: "/repairHistoryListPage", // 路由名称
|
|
||||||
// topLeft: 16,
|
|
||||||
// topRight: 16,
|
|
||||||
// bottomLeft: 16,
|
|
||||||
// bottomRight: 16,
|
|
||||||
// onTap: () async {
|
|
||||||
// print("object");
|
|
||||||
// final RepairInfoController repairInfoController =
|
|
||||||
// Get.find<RepairInfoController>();
|
|
||||||
// await repairInfoController
|
|
||||||
// .initData(repairListController.model.repairList[index])
|
|
||||||
// .then((_) {
|
|
||||||
// repairInfoController.updateAll();
|
|
||||||
// // Get.toNamed("/repairHistoryListPage"); // 这个在 ColorChangeOnPress 中已经处理
|
|
||||||
// });
|
|
||||||
// },
|
|
||||||
// child: Container(
|
|
||||||
// width: MediaQuery.sizeOf(context).width,
|
|
||||||
// constraints: BoxConstraints(
|
|
||||||
// minHeight: 70,
|
|
||||||
// ),
|
|
||||||
// child: Padding(
|
|
||||||
// padding: EdgeInsetsDirectional.fromSTEB(15, 14, 15, 13),
|
|
||||||
// child: Row(
|
|
||||||
// mainAxisSize: MainAxisSize.max,
|
|
||||||
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
||||||
// children: [
|
|
||||||
// Container(
|
|
||||||
// width: MediaQuery.sizeOf(context).width * 0.5,
|
|
||||||
// child: Column(
|
|
||||||
// mainAxisSize: MainAxisSize.max,
|
|
||||||
// children: [
|
|
||||||
// Align(
|
|
||||||
// alignment: AlignmentDirectional(-1, 0),
|
|
||||||
// child: Text(
|
|
||||||
// repairListController
|
|
||||||
// .model.repairList[index].device_category ??
|
|
||||||
// '',
|
|
||||||
// style: TextStyle(
|
|
||||||
// fontFamily: 'Readex Pro',
|
|
||||||
// color: Color(0xFF333333),
|
|
||||||
// fontSize: 30.rpx,
|
|
||||||
// letterSpacing: 0,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// Align(
|
|
||||||
// alignment: AlignmentDirectional(-1, 0),
|
|
||||||
// child: Text(
|
|
||||||
// "报修单号:${repairListController.model.repairList[index].id}",
|
|
||||||
// style: TextStyle(
|
|
||||||
// fontFamily: 'Readex Pro',
|
|
||||||
// color: Color(0xFFC8CBD2),
|
|
||||||
// fontSize: AppFontsize.small_text_size,
|
|
||||||
// letterSpacing: 0,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// Align(
|
|
||||||
// alignment: AlignmentDirectional(-1, 0),
|
|
||||||
// child: Text(
|
|
||||||
// "提交时间:" +
|
|
||||||
// (MyUtils.formatDateTime(repairListController
|
|
||||||
// .model.repairList[index].create_time!) ??
|
|
||||||
// ''),
|
|
||||||
// style: TextStyle(
|
|
||||||
// fontFamily: 'Readex Pro',
|
|
||||||
// color: Color(0xFFC8CBD2),
|
|
||||||
// fontSize: AppFontsize.small_text_size,
|
|
||||||
// letterSpacing: 0,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// Container(
|
|
||||||
// width: MediaQuery.sizeOf(context).width * 0.2,
|
|
||||||
// height: MediaQuery.sizeOf(context).height * 0.075,
|
|
||||||
// constraints: BoxConstraints(
|
|
||||||
// maxWidth: 130,
|
|
||||||
// ),
|
|
||||||
// child: Row(
|
|
||||||
// mainAxisSize: MainAxisSize.max,
|
|
||||||
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
||||||
// children: [
|
|
||||||
// Align(
|
|
||||||
// alignment: AlignmentDirectional(0, 0),
|
|
||||||
// child: Text(
|
|
||||||
// repairListController.model.repairList[index].status ??
|
|
||||||
// '',
|
|
||||||
// style: TextStyle(
|
|
||||||
// fontFamily: 'Readex Pro',
|
|
||||||
// color: Color(0xFF333333),
|
|
||||||
// fontSize: AppFontsize.normal_text_size,
|
|
||||||
// letterSpacing: 0,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// Flexible(
|
|
||||||
// child: Align(
|
|
||||||
// alignment: AlignmentDirectional(0, 0.05),
|
|
||||||
// child: Icon(
|
|
||||||
// Icons.arrow_forward_ios,
|
|
||||||
// color: FlutterFlowTheme.of(context).secondaryText,
|
|
||||||
// size: 10,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ].divide(SizedBox(width: 27)),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
|
|
||||||
return ClickableContainer(
|
return ClickableContainer(
|
||||||
backgroundColor: Colors.transparent,
|
backgroundColor: Colors.transparent,
|
||||||
highlightColor: Color(0XFF055466),
|
highlightColor: Color(0XFF055466),
|
||||||
padding: EdgeInsets.only(top: 0),
|
padding: EdgeInsets.only(top: 0),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Get.toNamed("/repairHistoryListPage");
|
TopSlideNotification.show(
|
||||||
|
context,
|
||||||
|
text: "功能开发中...",
|
||||||
|
);
|
||||||
|
|
||||||
|
// Get.toNamed("/repairHistoryListPage",
|
||||||
|
// arguments: repairListController.model.repairList[index]);
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
// height: 119.rpx,
|
// height: 119.rpx,
|
||||||
@@ -176,8 +63,8 @@ class RepairHistoryWidget extends GetView<RepairInfoController> {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
repairListController
|
repairListController.model.repairList[index]['device']
|
||||||
.model.repairList[index].device_category ??
|
[0]['mac'] ??
|
||||||
'',
|
'',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.white, fontSize: 30.rpx, height: 1),
|
color: Colors.white, fontSize: 30.rpx, height: 1),
|
||||||
@@ -185,8 +72,8 @@ class RepairHistoryWidget extends GetView<RepairInfoController> {
|
|||||||
const SizedBox(height: 4),
|
const SizedBox(height: 4),
|
||||||
Text(
|
Text(
|
||||||
"提交时间:" +
|
"提交时间:" +
|
||||||
(MyUtils.formatDateTime(repairListController
|
(MyUtils.formatTimestamp(repairListController
|
||||||
.model.repairList[index].create_time!) ??
|
.model.repairList[index]["create_time"]) ??
|
||||||
''),
|
''),
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.white60, fontSize: 20.rpx, height: 1),
|
color: Colors.white60, fontSize: 20.rpx, height: 1),
|
||||||
@@ -197,8 +84,8 @@ class RepairHistoryWidget extends GetView<RepairInfoController> {
|
|||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
repairListController.model.repairList[index].status ??
|
getStatusText(repairListController
|
||||||
'',
|
.model.repairList[index]['status']),
|
||||||
style: TextStyle(color: Colors.white, fontSize: 26.rpx),
|
style: TextStyle(color: Colors.white, fontSize: 26.rpx),
|
||||||
),
|
),
|
||||||
ClickableContainer(
|
ClickableContainer(
|
||||||
@@ -225,4 +112,23 @@ class RepairHistoryWidget extends GetView<RepairInfoController> {
|
|||||||
),
|
),
|
||||||
)));
|
)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String getStatusText(dynamic status) {
|
||||||
|
switch (status?.toString()) {
|
||||||
|
case '1':
|
||||||
|
return '审核中';
|
||||||
|
case '2':
|
||||||
|
return '审核通过';
|
||||||
|
case '3':
|
||||||
|
return '维修中';
|
||||||
|
case '4':
|
||||||
|
return '维修完成';
|
||||||
|
case '5':
|
||||||
|
return '已完成';
|
||||||
|
case '6':
|
||||||
|
return '已评价';
|
||||||
|
default:
|
||||||
|
return '未知状态';
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
|||||||
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
||||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||||
import 'package:vbvs_app/controller/device/body_device_controller.dart';
|
import 'package:vbvs_app/controller/device/body_device_controller.dart';
|
||||||
|
import 'package:vbvs_app/controller/mh_controller/apply_repair_controller.dart';
|
||||||
import 'package:vbvs_app/controller/repair/repair_controller.dart';
|
import 'package:vbvs_app/controller/repair/repair_controller.dart';
|
||||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||||
import 'package:vbvs_app/model/api_response.dart';
|
import 'package:vbvs_app/model/api_response.dart';
|
||||||
@@ -28,7 +29,7 @@ class RepairModelWidget extends StatefulWidget {
|
|||||||
required this.onTap,
|
required this.onTap,
|
||||||
required this.length,
|
required this.length,
|
||||||
required this.widgetKey,
|
required this.widgetKey,
|
||||||
this.showDelete = true, // ✅ 默认为 false
|
this.showDelete = true, // ✅ 默认为 false
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -38,6 +39,7 @@ class RepairModelWidget extends StatefulWidget {
|
|||||||
class _RepairModelWidgetState extends State<RepairModelWidget> {
|
class _RepairModelWidgetState extends State<RepairModelWidget> {
|
||||||
FormFieldController<String> _deviceController =
|
FormFieldController<String> _deviceController =
|
||||||
FormFieldController<String>(null);
|
FormFieldController<String>(null);
|
||||||
|
ApplyRepairController applyRepairController = Get.find();
|
||||||
RepairController repairController = Get.find();
|
RepairController repairController = Get.find();
|
||||||
UserInfoController userInfoController = Get.find();
|
UserInfoController userInfoController = Get.find();
|
||||||
late FormFieldController<String?>? _issueController;
|
late FormFieldController<String?>? _issueController;
|
||||||
@@ -143,7 +145,7 @@ class _RepairModelWidgetState extends State<RepairModelWidget> {
|
|||||||
),
|
),
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
Icons.keyboard_arrow_down_rounded,
|
Icons.keyboard_arrow_down_rounded,
|
||||||
color:Colors.white,
|
color: Colors.white,
|
||||||
size: 24.rpx,
|
size: 24.rpx,
|
||||||
),
|
),
|
||||||
fillColor: themeController.currentColor.sc15,
|
fillColor: themeController.currentColor.sc15,
|
||||||
@@ -342,7 +344,8 @@ class _RepairModelWidgetState extends State<RepairModelWidget> {
|
|||||||
borderRadius: 20.rpx,
|
borderRadius: 20.rpx,
|
||||||
padding: EdgeInsets.zero,
|
padding: EdgeInsets.zero,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
ApiResponse apiResponse = await repairController.uploadImg();
|
ApiResponse apiResponse =
|
||||||
|
await applyRepairController.uploadImg();
|
||||||
print(apiResponse);
|
print(apiResponse);
|
||||||
if (apiResponse.code == HttpStatusCodes.ok) {
|
if (apiResponse.code == HttpStatusCodes.ok) {
|
||||||
print(widget.model);
|
print(widget.model);
|
||||||
|
|||||||
@@ -54,7 +54,8 @@ var mhroutes = {
|
|||||||
"/peopleInfoPage": (contxt, {arguments}) => PeopleInfoPage(
|
"/peopleInfoPage": (contxt, {arguments}) => PeopleInfoPage(
|
||||||
data: arguments,
|
data: arguments,
|
||||||
),
|
),
|
||||||
"/repairHistoryListPage": (contxt) => RepairHistoryListPage(),
|
"/repairHistoryListPage": (contxt, {arguments}) =>
|
||||||
|
RepairHistoryListPage(data: arguments),
|
||||||
"/deviceRepairPage": (contxt) => DeviceRepairPage(),
|
"/deviceRepairPage": (contxt) => DeviceRepairPage(),
|
||||||
"/settingPage": (contxt) => SettingPage(),
|
"/settingPage": (contxt) => SettingPage(),
|
||||||
"/issueListpage": (contxt) => IssueListPage(),
|
"/issueListpage": (contxt) => IssueListPage(),
|
||||||
|
|||||||
Reference in New Issue
Block a user