two.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785
  1. <template>
  2. <view class="container">
  3. <!-- 头部区域 -->
  4. <view class="header">
  5. <u-row>
  6. <u-col span="2">
  7. <view class="status-btn" :class="{ active_btn: communicationLink_2 }">Link</view>
  8. </u-col>
  9. <u-col span="2">
  10. <view class="status-btn" :class="{ active_btn: bleConnected }">blue</view>
  11. </u-col>
  12. <u-col span="6" textAlign="left">
  13. <text class="title">长沙亿旭智能</text>
  14. </u-col>
  15. <u-col span="2">
  16. </u-col>
  17. </u-row>
  18. </view>
  19. <!-- 主要内容区域 -->
  20. <scroll-view class="content" scroll-y>
  21. <view class="param-section">
  22. <!-- 电机方向 -->
  23. <view class="param-row">
  24. <view class="btn-class">
  25. <u-button type="primary" size="mini" class="param-label">电机方向</u-button>
  26. </view>
  27. <view class="input-class" >
  28. <u-input
  29. @focus="editStatus = true"
  30. @blur="handleBlurWithDelay"
  31. v-model="params.motorDirection"
  32. disabledColor="#ffffff"
  33. placeholder="请选择方向"
  34. readonly
  35. ></u-input>
  36. </view>
  37. <view class="checkbox-class">
  38. <u-checkbox-group
  39. placement="column">
  40. <u-checkbox v-model="params.wDir" @change="handleDirectionChange" class="checkbox" label="W_Dir">W_Dir</u-checkbox>
  41. </u-checkbox-group>
  42. </view>
  43. <u-button :plain="true" :hairline="true" size="mini" class="action-btn" @click="writeDirection" :disabled="params.wDir">方向设置</u-button>
  44. </view>
  45. <!-- 通讯时间 -->
  46. <view class="param-row">
  47. <view class="btn-class">
  48. <u-button type="primary" size="mini" class="param-label">通讯时间</u-button>
  49. </view>
  50. <view class="input-class">
  51. <u-input
  52. @focus="editStatus = true"
  53. @blur="handleBlurWithDelay"
  54. v-model="params.communicationTime"
  55. disabledColor="#ffffff"
  56. placeholder=""
  57. ></u-input>
  58. </view>
  59. <view class="checkbox-class">
  60. <u-checkbox-group v-model="checkboxValue_timedSend"
  61. placement="column">
  62. <u-checkbox name="timedSend" v-model="params.timedSend" class="checkbox" label="定时发送" @change="handleCommunicationTimeChange">定时发送</u-checkbox>
  63. </u-checkbox-group>
  64. </view>
  65. </view>
  66. <!-- 夜返角度 -->
  67. <view class="param-row">
  68. <view class="btn-class">
  69. <u-button type="primary" size="mini" class="param-label">夜返角度°</u-button>
  70. </view>
  71. <view class="input-class">
  72. <u-input
  73. @focus="editStatus = true"
  74. @blur="handleBlurWithDelay"
  75. v-model="params.nightReturnAngle"
  76. placeholder="请输入角度"
  77. type="text"
  78. class="param-input"
  79. ></u-input>
  80. </view>
  81. <view class="checkbox-class">
  82. <u-checkbox-group
  83. placement="column">
  84. <u-checkbox v-model="params.wBackA" class="checkbox" label="W_BackA" @change="handleNightReturnAngleChange">W_BackA</u-checkbox>
  85. </u-checkbox-group>
  86. </view>
  87. <u-button :plain="true" :hairline="true" size="mini" class="action-btn" :disabled="params.wBackA"
  88. @click="writeNightReturnAngle">夜返角写入
  89. </u-button>
  90. </view>
  91. <!-- 放平角度 -->
  92. <view class="param-row">
  93. <view class="btn-class">
  94. <u-button type="primary" size="mini" class="param-label">放平角度°</u-button>
  95. </view>
  96. <view class="input-class">
  97. <u-input
  98. @focus="editStatus = true"
  99. @blur="handleBlurWithDelay"
  100. v-model="params.flatAngle"
  101. placeholder="请输入角度"
  102. type="text"
  103. class="param-input"
  104. ></u-input>
  105. </view>
  106. <view class="checkbox-class">
  107. <u-checkbox-group
  108. placement="column">
  109. <u-checkbox v-model="params.wFlat" class="checkbox" label="W_Flat" @change="handleFlatAngleChange">W_Flat</u-checkbox>
  110. </u-checkbox-group>
  111. </view>
  112. <u-button :plain="true" :hairline="true" size="mini" class="action-btn" :disabled="params.wFlat" @click="writeFlatAngle">
  113. 放平角度写入
  114. </u-button>
  115. </view>
  116. <!-- 指定角度 -->
  117. <view class="param-row">
  118. <view class="btn-class">
  119. <u-button type="primary" size="mini" class="param-label">指定角度°</u-button>
  120. </view>
  121. <view class="input-class">
  122. <u-input
  123. @focus="editStatus = true"
  124. @blur="handleBlurWithDelay"
  125. v-model="params.specifiedAngle"
  126. placeholder="请输入角度"
  127. type="text"
  128. class="param-input"
  129. ></u-input>
  130. </view>
  131. <view class="checkbox-class">
  132. <u-checkbox-group
  133. placement="column">
  134. <u-checkbox v-model="params.wSetA" class="checkbox" label="W_SetA" @change="handleSpecifiedAngleChange">W_SetA</u-checkbox>
  135. </u-checkbox-group>
  136. </view>
  137. <u-button :plain="true" :hairline="true" size="mini" class="action-btn" :disabled="params.wSetA" @click="writeSpecifiedAngle">
  138. 指定角度写入
  139. </u-button>
  140. </view>
  141. <!-- 雪天角度 -->
  142. <view class="param-row">
  143. <view class="btn-class">
  144. <u-button type="primary" size="mini" class="param-label">雪天角度°</u-button>
  145. </view>
  146. <view class="input-class">
  147. <u-input
  148. @focus="editStatus = true"
  149. @blur="handleBlurWithDelay"
  150. v-model="params.snowAngle"
  151. placeholder="请输入角度"
  152. type="text"
  153. class="param-input"
  154. ></u-input>
  155. </view>
  156. <view class="checkbox-class">
  157. <u-checkbox-group
  158. placement="column">
  159. <u-checkbox v-model="params.wSno" class="checkbox" label="W_Sno" @change="handleSnowAngleChange">W_Sno</u-checkbox>
  160. </u-checkbox-group>
  161. </view>
  162. <u-button :plain="true" :hairline="true" size="mini" class="action-btn" :disabled="params.wSno" @click="writeSnowAngle">
  163. 雪天角度写入
  164. </u-button>
  165. </view>
  166. <!-- 大风角度 -->
  167. <view class="param-row">
  168. <view class="btn-class">
  169. <u-button type="primary" size="mini" class="param-label">大风角度°</u-button>
  170. </view>
  171. <view class="input-class">
  172. <u-input
  173. @focus="editStatus = true"
  174. @blur="handleBlurWithDelay"
  175. v-model="params.windAngle"
  176. placeholder="请输入角度"
  177. type="text"
  178. class="param-input"
  179. ></u-input>
  180. </view>
  181. <view class="checkbox-class">
  182. <u-checkbox-group
  183. placement="column">
  184. <u-checkbox v-model="params.wWin" class="checkbox" label="W_Win" @change="handleWindAngleChange">W_Win</u-checkbox>
  185. </u-checkbox-group>
  186. </view>
  187. <u-button :plain="true" :hairline="true" size="mini" class="action-btn" :disabled="params.wWin" @click="writeWindAngle">
  188. 大风角度写入
  189. </u-button>
  190. </view>
  191. <!-- 过流值 -->
  192. <view class="param-row">
  193. <view class="btn-class">
  194. <u-button type="primary" size="mini" class="param-label">过流值(A)</u-button>
  195. </view>
  196. <view class="input-class">
  197. <u-input
  198. @focus="editStatus = true"
  199. @blur="handleBlurWithDelay"
  200. v-model="params.overcurrentValue"
  201. placeholder="请输入过流值"
  202. type="text"
  203. class="param-input"
  204. ></u-input>
  205. </view>
  206. <view class="checkbox-class">
  207. <u-checkbox-group
  208. placement="column">
  209. <u-checkbox v-model="params.wCurr" class="checkbox" label="W_Curr" @change="handleOvercurrentValueChange">W_Curr</u-checkbox>
  210. </u-checkbox-group>
  211. </view>
  212. <u-button :plain="true" :hairline="true" size="mini" class="action-btn" :disabled="params.wCurr"
  213. @click="writeOvercurrentProtection">过流保护写入
  214. </u-button>
  215. </view>
  216. <!-- 跟踪精度 -->
  217. <view class="param-row">
  218. <view class="btn-class">
  219. <u-button type="primary" size="mini" class="param-label">跟踪精度</u-button>
  220. </view>
  221. <view class="input-class">
  222. <u-input
  223. @focus="editStatus = true"
  224. @blur="handleBlurWithDelay"
  225. v-model="params.trackingAccuracy"
  226. placeholder="请输入精度"
  227. type="text"
  228. class="param-input"
  229. ></u-input>
  230. </view>
  231. <view class="checkbox-class">
  232. <u-checkbox-group
  233. placement="column">
  234. <u-checkbox v-model="params.wAccu" class="checkbox" label="W_Accu" @change="handleAccuracyChange">W_Accu</u-checkbox>
  235. </u-checkbox-group>
  236. </view>
  237. <u-button :plain="true" :hairline="true" size="mini" class="action-btn" :disabled="params.wAccu" @click="writeAccuracy">
  238. 精度写入
  239. </u-button>
  240. </view>
  241. </view>
  242. </scroll-view>
  243. <u-action-sheet
  244. :show="showMotorDirection"
  245. :actions="directionOptions"
  246. title="请选择电机方向"
  247. @close="showMotorDirection = false"
  248. @select="motorDirectionSelect"
  249. >
  250. </u-action-sheet>
  251. </view>
  252. </template>
  253. <script>
  254. import {writeRegister,setTime,stopHeartbeat,setTimeStatus} from '@/utils/modbus.js';
  255. export default {
  256. data() {
  257. return {
  258. checkboxValue_timedSend: ['timedSend'],
  259. editStatus: false,
  260. showMotorDirection: false,
  261. checkboxValue1: [],
  262. activeTab: 'settings2',
  263. params: {
  264. motorDirection: '正转',
  265. communicationTime: '0.5',
  266. nightReturnAngle: '-30',
  267. flatAngle: '-1',
  268. specifiedAngle: '20',
  269. snowAngle: '30',
  270. windAngle: '10',
  271. overcurrentValue: '5',
  272. trackingAccuracy: '1',
  273. wDir:true,
  274. timedSend: true,
  275. wBackA: true,
  276. wFlat: true,
  277. wSetA: true,
  278. wSno: true,
  279. wWin: true,
  280. wCurr: true,
  281. wAccu: true
  282. },
  283. directionOptions: [
  284. {name: '正转', value: '正转'},
  285. {name: '反转', value: '反转'}
  286. ],
  287. communicationLink_2: false,
  288. communicationTimer_2: null, // 添加这一行用于保存定时器 ID
  289. }
  290. },
  291. computed: {
  292. bleConnected() {
  293. return this.$store.getters['ble/connected']
  294. },
  295. bleData() {
  296. return this.$store.getters['ble/data']
  297. }
  298. },
  299. watch: {
  300. bleData: {
  301. handler(newData, oldData) {
  302. if (newData) {
  303. console.log('接收到蓝牙数据:', newData)
  304. // 清除之前的定时器
  305. if (this.communicationTimer_2) {
  306. clearTimeout(this.communicationTimer_2)
  307. this.communicationTimer_2 = null
  308. }
  309. // 设置通信链接状态为 true
  310. this.communicationLink_2 = true
  311. if (!this.editStatus){
  312. this.updateSensorData(newData)
  313. }
  314. }
  315. },
  316. deep: true, // 深度监听,确保嵌套对象变化时也能触发
  317. immediate: true // 立即执行一次
  318. }
  319. },
  320. methods: {
  321. handleBlurWithDelay() {
  322. setTimeout(() => {
  323. this.editStatus = false;
  324. }, 1000);
  325. },
  326. handleNightReturnAngleChange(value){
  327. this.params.wBackA = !value;
  328. },
  329. handleFlatAngleChange(value){
  330. this.params.wFlat = !value;
  331. },
  332. handleSpecifiedAngleChange(value){
  333. this.params.wSetA = !value;
  334. },
  335. handleSnowAngleChange(value){
  336. this.params.wSno = !value;
  337. },
  338. handleWindAngleChange(value){
  339. this.params.wWin = !value;
  340. },
  341. handleOvercurrentValueChange(value){
  342. this.params.wCurr = !value;
  343. },
  344. handleAccuracyChange(value){
  345. this.params.wAccu = !value;
  346. },
  347. handleCommunicationTimeChange(value){
  348. this.params.wTim = !value;
  349. if (value){
  350. let number = parseFloat(this.params.communicationTime || "0");
  351. const intValue1 = Math.round(number * 1000);
  352. setTime(intValue1);
  353. }else{
  354. stopHeartbeat();
  355. }
  356. setTimeStatus(value);
  357. },
  358. handleDirectionChange(value){
  359. this.params.wDir = !value;
  360. },
  361. motorDirectionSelect(e){
  362. this.params.motorDirection = e.name
  363. uni.showModal({
  364. title: '确认写入',
  365. content: `确定执行电机方向设置?`,
  366. success: (res) => {
  367. if (res.confirm) {
  368. if (e.name === '正转'){
  369. writeRegister('READ_DIRECTION', null)
  370. }else {
  371. writeRegister('READ_REVERSE', null)
  372. }
  373. uni.showToast({
  374. title: '操作执行成功!',
  375. icon: 'success',
  376. duration: 2000
  377. });
  378. }
  379. }
  380. });
  381. },
  382. writeDirection() {
  383. this.showMotorDirection = true;
  384. },
  385. writeNightReturnAngle() {
  386. if (this.params.wBackA) return
  387. uni.showModal({
  388. title: '确认写入',
  389. content: `是否确定执行此操作?`,
  390. success: (res) => {
  391. if (res.confirm) {
  392. writeRegister('READ_RETURN', this.params.nightReturnAngle);
  393. uni.showToast({
  394. title: '操作执行成功!',
  395. icon: 'success',
  396. duration: 2000
  397. });
  398. }
  399. }
  400. });
  401. },
  402. writeFlatAngle() {
  403. if (this.params.wFlat) return
  404. uni.showModal({
  405. title: '确认写入',
  406. content: `是否确定执行此操作?`,
  407. success: (res) => {
  408. if (res.confirm) {
  409. writeRegister('READ_FLAT', this.params.flatAngle);
  410. uni.showToast({
  411. title: '操作执行成功!',
  412. icon: 'success',
  413. duration: 2000
  414. });
  415. }
  416. }
  417. });
  418. },
  419. writeSpecifiedAngle() {
  420. if (this.params.wSetA) return
  421. uni.showModal({
  422. title: '确认写入',
  423. content: `是否确定执行此操作?`,
  424. success: (res) => {
  425. if (res.confirm) {
  426. writeRegister('READ_SPECIFY', this.params.specifiedAngle);
  427. uni.showToast({
  428. title: '操作执行成功!',
  429. icon: 'success',
  430. duration: 2000
  431. });
  432. }
  433. }
  434. });
  435. },
  436. writeSnowAngle() {
  437. if (this.params.wSno) return
  438. uni.showModal({
  439. title: '确认写入',
  440. content: `是否确定执行此操作?`,
  441. success: (res) => {
  442. if (res.confirm) {
  443. writeRegister('READ_SNOW', this.params.snowAngle);
  444. uni.showToast({
  445. title: '操作执行成功!',
  446. icon: 'success',
  447. duration: 2000
  448. });
  449. }
  450. }
  451. });
  452. },
  453. writeWindAngle() {
  454. if (this.params.wWin) return
  455. uni.showModal({
  456. title: '确认写入',
  457. content: `是否确定执行此操作?`,
  458. success: (res) => {
  459. if (res.confirm) {
  460. writeRegister('READ_WIND', this.params.windAngle);
  461. uni.showToast({
  462. title: '操作执行成功!',
  463. icon: 'success',
  464. duration: 2000
  465. });
  466. }
  467. }
  468. });
  469. },
  470. writeOvercurrentProtection() {
  471. if (this.params.wCurr) return
  472. uni.showModal({
  473. title: '确认写入',
  474. content: `是否确定执行此操作?`,
  475. success: (res) => {
  476. if (res.confirm) {
  477. writeRegister('READ_OVERCURRENT', this.params.overcurrentValue);
  478. uni.showToast({
  479. title: '操作执行成功!',
  480. icon: 'success',
  481. duration: 2000
  482. });
  483. }
  484. }
  485. });
  486. },
  487. writeAccuracy() {
  488. if (this.params.wAccu) return
  489. uni.showModal({
  490. title: '确认写入',
  491. content: `是否确定执行此操作?`,
  492. success: (res) => {
  493. if (res.confirm) {
  494. writeRegister('READ_ACCURACY', this.params.trackingAccuracy);
  495. uni.showToast({
  496. title: '操作执行成功!',
  497. icon: 'success',
  498. duration: 2000
  499. });
  500. }
  501. }
  502. });
  503. },
  504. updateSensorData(data) {
  505. // 根据蓝牙数据更新参数值
  506. if (data.MotDrection_37 !== undefined && this.params.wDir) {
  507. // 电机方向: 0表示正转,1表示反转
  508. this.params.motorDirection = data.MotDrection_37 === '1' ? '反转' : '正转'
  509. }
  510. if (data.qNightAngle_66 !== undefined && this.params.wBackA) {
  511. this.params.nightReturnAngle = data.qNightAngle_66
  512. }
  513. if (data.qFlatAngle_67 !== undefined && this.params.wFlat) {
  514. this.params.flatAngle = data.qFlatAngle_67
  515. }
  516. if (data.qSpecifiedAngle_69 !== undefined && this.params.wSetA) {
  517. this.params.specifiedAngle = data.qSpecifiedAngle_69
  518. }
  519. if (data.qSnowAngle_68 !== undefined && this.params.wSno) {
  520. this.params.snowAngle = data.qSnowAngle_68
  521. }
  522. if (data.qWindAngle_70 !== undefined && this.params.wWin ) {
  523. this.params.windAngle = data.qWindAngle_70
  524. }
  525. if (data.OverProtection_38 !== undefined && this.params.wCurr) {
  526. this.params.overcurrentValue = data.OverProtection_38
  527. }
  528. if (data.TrackingAccuracy_39 !== undefined && this.params.wAccu) {
  529. this.params.trackingAccuracy = data.TrackingAccuracy_39
  530. }
  531. // 设置6秒后将 communicationLink_2 设置为 false 的定时器
  532. this.communicationTimer_2 = setTimeout(() => {
  533. this.communicationLink_2 = false
  534. this.communicationTimer_2 = null
  535. }, 5000)
  536. }
  537. }
  538. }
  539. </script>
  540. <style lang="scss" >
  541. @import '@/static/scss/custom-theme.scss';
  542. .container {
  543. height: calc(100% - 140px);
  544. display: flex;
  545. flex-direction: column;
  546. background-color: $custom-bg-tertiary;
  547. }
  548. .status-bar {
  549. height: $custom-status-height;
  550. background-color: $custom-bg-primary;
  551. @include flex-between;
  552. padding: 0 $custom-spacing-md;
  553. font-size: 14px;
  554. .status-left {
  555. color: $custom-text-primary;
  556. }
  557. .status-right {
  558. @include flex-start;
  559. gap: $custom-spacing-xs;
  560. .data-rate {
  561. color: $custom-text-secondary;
  562. font-size: 12px;
  563. }
  564. .wifi-icon, .hd-text, .network, .battery {
  565. font-size: 12px;
  566. }
  567. }
  568. }
  569. .header {
  570. background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  571. padding: 20rpx;
  572. .link-btn {
  573. background-color: #ff4757;
  574. border: none;
  575. width: 60px;
  576. margin-left: 0px;
  577. }
  578. .title {
  579. color: #fff;
  580. font-size: 36rpx;
  581. font-weight: bold;
  582. }
  583. .status-btn {
  584. background-color: #ff4757;
  585. border: none;
  586. margin-left: 0px;
  587. padding: 0px;
  588. width: 40px;
  589. text-align: center;
  590. color: white;
  591. border-radius: 4px;
  592. height: 20px;
  593. line-height: 20px;
  594. }
  595. .active_btn {
  596. background-color: yellowgreen !important;
  597. }
  598. }
  599. .content {
  600. flex: 1;
  601. padding: $custom-spacing-md;
  602. }
  603. .param-section {
  604. @include card-style;
  605. }
  606. .param-row {
  607. @include flex-start;
  608. margin-bottom: $custom-spacing-md;
  609. gap: 2px;
  610. .param-label {
  611. width: 70px;
  612. @include button-style('primary');
  613. }
  614. .param-input {
  615. flex: 1;
  616. width: 60px;
  617. @include input-style;
  618. }
  619. .radio-group {
  620. @include flex-start;
  621. gap: $custom-spacing-md;
  622. }
  623. .checkbox {
  624. margin-left: $custom-spacing-sm;
  625. }
  626. .action-btn {
  627. width: 90px;
  628. background-color: $custom-bg-secondary;
  629. color: $custom-text-secondary;
  630. border: 1px solid $custom-border-secondary;
  631. height: 30px;
  632. line-height: 30px;
  633. margin-right: 0px;
  634. font-size: 12px;
  635. }
  636. }
  637. .bottom-nav {
  638. height: $custom-nav-height;
  639. background-color: $custom-nav-bg;
  640. display: flex;
  641. border-top: 1px solid $custom-border-primary;
  642. .nav-item {
  643. flex: 1;
  644. @include flex-center;
  645. font-size: 14px;
  646. color: $custom-text-secondary;
  647. background-color: $custom-bg-secondary;
  648. border-right: 1px solid $custom-border-primary;
  649. transition: $custom-transition;
  650. &:last-child {
  651. border-right: none;
  652. }
  653. &.active {
  654. background-color: $custom-nav-active-bg;
  655. color: $custom-text-primary;
  656. font-weight: bold;
  657. }
  658. &:hover {
  659. background-color: darken($custom-bg-secondary, 5%);
  660. }
  661. }
  662. }
  663. .footer-status {
  664. height: $custom-footer-height;
  665. @include gradient-bg;
  666. @include flex-between;
  667. padding: 0 $custom-spacing-md;
  668. .bt-status {
  669. color: #007aff;
  670. font-size: 14px;
  671. font-weight: bold;
  672. }
  673. .rx-tx-status {
  674. color: $custom-text-primary;
  675. font-size: 12px;
  676. }
  677. }
  678. // 响应式设计
  679. @include responsive(md) {
  680. .param-row {
  681. .param-input {
  682. min-width: 150px;
  683. }
  684. }
  685. }
  686. @include responsive(lg) {
  687. .param-row {
  688. .param-input {
  689. min-width: 200px;
  690. }
  691. }
  692. }
  693. ::v-deep .param-section .u-button--mini{
  694. width: 80px !important;
  695. height: 36px !important;
  696. font-size: 10px !important;
  697. }
  698. ::v-deep .param-section .u-input{
  699. width: 60px !important;
  700. }
  701. ::v-deep .content text{
  702. font-size: 12px !important;
  703. }
  704. </style>