DieFa.vue 48 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481
  1. <template>
  2. <div style="display: flex">
  3. <div class="select-info">
  4. <div class="info-title">{{ $t("配置概要") }}</div>
  5. <div class="scroll">
  6. <div class="product-wrapper">
  7. <div class="product">
  8. <div class="product-header">
  9. <div class="title">{{ $t("光头") }}</div>
  10. <span
  11. @click="
  12. active = 1;
  13. resultArr = [];
  14. fujianArr = [];
  15. items.splice(2, 1);
  16. isEdit = true;
  17. "
  18. v-if="!!resultArr[0]"
  19. >
  20. <img src="@/assets/reSelect.svg" alt="" />
  21. {{ $t("重选") }}
  22. </span>
  23. </div>
  24. <div class="product-name">
  25. {{ resultArr[0] ? resultArr[0].itemname : $t("暂无") }}
  26. </div>
  27. <div class="attrite" v-if="resultArr[0] && resultArr[0].torque">
  28. <div class="attrite-title">{{ $t("扭矩") }}:</div>
  29. <div class="attrite-value">{{ resultArr[0].torque }}</div>
  30. </div>
  31. <div class="attrite" v-if="resultArr[0] && resultArr[0].flh">
  32. <div class="attrite-title">{{ $t("法兰号") }}:</div>
  33. <div class="attrite-value">
  34. {{
  35. typeof resultArr[0].flh == "string"
  36. ? resultArr[0].flh
  37. : resultArr[0].flh[0]
  38. }}
  39. </div>
  40. </div>
  41. <div class="attrite" v-if="resultArr[0] && resultArr[0].caliber">
  42. <div class="attrite-title">{{ $t("公称通径") }}:</div>
  43. <div class="attrite-value">{{ resultArr[0].caliber }}</div>
  44. </div>
  45. <div
  46. class="attrite"
  47. v-if="resultArr[0] && resultArr[0].nominalpressure"
  48. >
  49. <div class="attrite-title">{{ $t("公称压力") }}:</div>
  50. <div class="attrite-value">
  51. {{ tool.nominalPressureSet(resultArr[0].nominalpressure) }}
  52. </div>
  53. </div>
  54. <div
  55. class="attrite"
  56. v-if="resultArr[0] && resultArr[0].stemmaterial"
  57. >
  58. <div class="attrite-title">{{ $t("阀杆材质") }}:</div>
  59. <div class="attrite-value">{{ resultArr[0].stemmaterial }}</div>
  60. </div>
  61. <div
  62. class="attrite"
  63. v-if="resultArr[0] && resultArr[0].bodymaterial"
  64. >
  65. <div class="attrite-title">{{ $t("阀体材质") }}:</div>
  66. <div class="attrite-value">{{ resultArr[0].bodymaterial }}</div>
  67. </div>
  68. </div>
  69. <div class="product">
  70. <div class="product-header">
  71. <div class="title">{{ $t("执行器") }}</div>
  72. <span
  73. @click="
  74. active = 2;
  75. resultArr.splice(1);
  76. fujianArr = [];
  77. isEdit = true;
  78. "
  79. v-if="!!resultArr[1]"
  80. >
  81. <img src="@/assets/reSelect.svg" alt="" />
  82. {{ $t("重选") }}
  83. </span>
  84. </div>
  85. <div class="product-name">
  86. {{ resultArr[1] ? resultArr[1].actuatorname : $t("暂无") }}
  87. </div>
  88. <div
  89. class="attrite"
  90. v-if="guangtouParam.content.where.drivetype == '电动'"
  91. >
  92. {{
  93. resultArr[1]
  94. ? `${resultArr[1].itemname}+${resultArr[1].gearboxname}`
  95. : $t("暂无")
  96. }}
  97. </div>
  98. <div class="attrite" v-else>
  99. {{ resultArr[1] ? `${resultArr[1].itemname}` : $t("暂无") }}
  100. </div>
  101. <div class="attrite" v-if="resultArr[1] && resultArr[1].torque">
  102. <div class="attrite-title">{{ $t("输出扭矩") }}:</div>
  103. <div class="attrite-value">{{ resultArr[1].torque }}</div>
  104. </div>
  105. <div class="attrite" v-if="resultArr[1] && resultArr[1].maxruntime">
  106. <div class="attrite-title">{{ $t("开关时间") }}:</div>
  107. <div class="attrite-value">{{ resultArr[1].maxruntime }}</div>
  108. </div>
  109. <div class="attrite" v-if="resultArr[1] && resultArr[1].speed">
  110. <div class="attrite-title">{{ $t("转速") }}:</div>
  111. <div class="attrite-value">{{ resultArr[1].speed }}</div>
  112. </div>
  113. <div class="attrite" v-if="resultArr[1] && resultArr[1].ratio">
  114. <div class="attrite-title">{{ $t("减速比") }}:</div>
  115. <div class="attrite-value">{{ resultArr[1].ratio }}</div>
  116. </div>
  117. <div
  118. class="attrite"
  119. v-if="resultArr[1] && resultArr[1].supplyvoltage"
  120. >
  121. <div class="attrite-title">{{ $t("电压") }}:</div>
  122. <div class="attrite-value">{{ resultArr[1].supplyvoltage }}</div>
  123. </div>
  124. <div
  125. class="attrite"
  126. v-if="resultArr[1] && resultArr[1].ratedcurrent"
  127. >
  128. <div class="attrite-title">{{ $t("电流") }}:</div>
  129. <div class="attrite-value">{{ resultArr[1].ratedcurrent }}</div>
  130. </div>
  131. <div class="attrite" v-if="resultArr[1] && resultArr[1].ratedpower">
  132. <div class="attrite-title">{{ $t("功率") }}:</div>
  133. <div class="attrite-value">{{ resultArr[1].ratedpower }}</div>
  134. </div>
  135. </div>
  136. <div class="product">
  137. <div class="product-header">
  138. <div class="title">{{ $t("辅件") }}</div>
  139. <span
  140. @click="
  141. fujianArr = [];
  142. fujianParam.content.othertypes = [
  143. '电磁阀',
  144. '限位开关',
  145. '过滤减压阀',
  146. ];
  147. $refs.fujianRef.listData();
  148. isEdit = true;
  149. "
  150. v-if="resultArr.length >= 3"
  151. >
  152. <img src="@/assets/reSelect.svg" alt="" />
  153. {{ $t("重选") }}
  154. </span>
  155. </div>
  156. <div
  157. class="attrite2"
  158. v-for="item in fujianArr"
  159. :key="item.othertype"
  160. >
  161. <div class="attrite-title">{{ $t(item.othertype) }}:</div>
  162. <div class="attrite-value">{{ $t(item.model) }}</div>
  163. </div>
  164. </div>
  165. </div>
  166. </div>
  167. </div>
  168. <div class="drawer__panel">
  169. <div class="my-steps">
  170. <a-steps
  171. :current="active - 1"
  172. style="margin-bottom: 10px"
  173. @change="stepsChange"
  174. >
  175. <a-step
  176. :title="item.title"
  177. v-for="(item, index) in items"
  178. :key="index"
  179. >
  180. <i
  181. slot="icon"
  182. class="iconfont"
  183. style="font-size: 32px; color: #3874f6 !important"
  184. v-if="active > index + 1"
  185. >&#xe6fd;</i
  186. >
  187. </a-step>
  188. </a-steps>
  189. </div>
  190. <!--选光头-->
  191. <div class="dialog-content" v-show="active == 1">
  192. <div class="option-line">
  193. <div class="item">
  194. <div class="label">{{ $t("驱动方式") }}:</div>
  195. <MySelect
  196. :isClear="false"
  197. @click="
  198. ($event) => {
  199. guangtouChange($event);
  200. Search('guangtouParam', 'drivetype');
  201. }
  202. "
  203. :options="drivetype"
  204. v-model="guangtouParam.content.where.drivetype"
  205. ></MySelect>
  206. </div>
  207. </div>
  208. <div class="option-line">
  209. <div class="item">
  210. <div class="label">{{ $t("公称通径") }}:</div>
  211. <el-select
  212. filterable
  213. v-model="guangtouParam.content.where.caliber"
  214. :placeholder="$t(`请选择公称通径`)"
  215. size="small"
  216. style="width: 100%"
  217. clearable
  218. @change="Search('guangtouParam', 'caliber')"
  219. >
  220. <el-option
  221. v-for="item in caliber"
  222. :key="item.value"
  223. :value="item.value"
  224. :label="$t(item.value)"
  225. ></el-option>
  226. </el-select>
  227. </div>
  228. <div class="item">
  229. <div class="label">{{ $t("公称压力") }}:</div>
  230. <el-select
  231. filterable
  232. @change="Search('guangtouParam', 'nominalpressure')"
  233. :disabled="!guangtouParam.content.where.caliber"
  234. v-model="guangtouParam.content.where.nominalpressure"
  235. :placeholder="$t(`请选择公称压力`)"
  236. size="small"
  237. style="width: 100%"
  238. clearable
  239. >
  240. <el-option
  241. v-for="item in nominalpressure"
  242. :key="item.value"
  243. :value="item.value"
  244. :label="item.remarks"
  245. ></el-option>
  246. </el-select>
  247. </div>
  248. </div>
  249. <div class="option-line">
  250. <div class="item">
  251. <div class="label">{{ $t("连接方式") }}:</div>
  252. <MySelect
  253. @click="Search('guangtouParam', 'connection')"
  254. :disabled="!guangtouParam.content.where.nominalpressure"
  255. :options="connection"
  256. v-model="guangtouParam.content.where.connection"
  257. ></MySelect>
  258. </div>
  259. </div>
  260. <div class="option-line">
  261. <div class="item">
  262. <div class="label">{{ $t("阀体材质") }}:</div>
  263. <el-select
  264. filterable
  265. @change="Search('guangtouParam', 'bodymaterial')"
  266. :disabled="!guangtouParam.content.where.connection"
  267. v-model="guangtouParam.content.where.bodymaterial"
  268. :placeholder="$t(`请选择阀体材质`)"
  269. size="small"
  270. style="width: 100%"
  271. clearable
  272. >
  273. <el-option
  274. v-for="item in bodymaterial"
  275. :key="item.value"
  276. :value="item.value"
  277. :label="item.remarks"
  278. ></el-option>
  279. </el-select>
  280. </div>
  281. <div class="item">
  282. <div class="label">{{ $t("阀杆材质") }}:</div>
  283. <el-select
  284. filterable
  285. @change="Search('guangtouParam', 'stemmaterial')"
  286. :disabled="!guangtouParam.content.where.bodymaterial"
  287. v-model="guangtouParam.content.where.stemmaterial"
  288. :placeholder="$t(`请选择阀杆材质`)"
  289. size="small"
  290. style="width: 100%"
  291. clearable
  292. >
  293. <el-option
  294. v-for="item in stemmaterial"
  295. :key="item.value"
  296. :value="item.value"
  297. :label="item.remarks"
  298. ></el-option>
  299. </el-select>
  300. </div>
  301. <div class="item">
  302. <div class="label">{{ $t("阀座材质") }}:</div>
  303. <el-select
  304. filterable
  305. @change="Search('guangtouParam', 'plinthmaterial')"
  306. :disabled="!guangtouParam.content.where.stemmaterial"
  307. v-model="guangtouParam.content.where.plinthmaterial"
  308. :placeholder="$t(`请选择阀座材质`)"
  309. size="small"
  310. style="width: 100%"
  311. clearable
  312. >
  313. <el-option
  314. v-for="item in plinthmaterial"
  315. :key="item.value"
  316. :value="item.value"
  317. :label="item.remarks"
  318. ></el-option>
  319. </el-select>
  320. </div>
  321. </div>
  322. <!--光头-->
  323. <MyTable
  324. :noQuery="true"
  325. fixedName="operation"
  326. :height="tableHeight"
  327. ref="guangtouRef"
  328. :layout="tool.tabelCol($route.name)['guangtouTable'].tablecols"
  329. :param="guangtouParam"
  330. :opwidth="200"
  331. :custom="true"
  332. style="margin-top: 14px"
  333. >
  334. <template v-slot:customcol="scope">
  335. <span v-if="scope.column.columnname != 'operation'">{{
  336. $t(scope.column.data[scope.column.columnname])
  337. }}</span>
  338. </template>
  339. <template v-slot:opreation="scope">
  340. <el-button
  341. type="text"
  342. size="mini"
  343. @click="selectTarget(scope.data, '主阀')"
  344. :disabled="!guangtouParam.content.where.drivetype"
  345. >{{ $t("选择") }}</el-button
  346. >
  347. </template>
  348. </MyTable>
  349. </div>
  350. <!--选执行器-->
  351. <div class="dialog-content" v-show="active == 2">
  352. <div class="option-line">
  353. <div class="item">
  354. <div class="label">{{ $t("执行器") }}:</div>
  355. <el-input
  356. :placeholder="$t(`型号/料号`)"
  357. v-model="excelParam.content.where.condition1"
  358. clearable
  359. @clear="Search('excelParam')"
  360. size="small"
  361. @keyup.enter.native="Search('excelParam')"
  362. >
  363. </el-input>
  364. </div>
  365. <div
  366. class="item"
  367. v-if="guangtouParam.content.where.drivetype != '气动'"
  368. >
  369. <div class="label">{{ $t("减速箱") }}:</div>
  370. <el-input
  371. :placeholder="$t(`型号/料号`)"
  372. v-model="excelParam.content.where.condition2"
  373. clearable
  374. @clear="Search('excelParam')"
  375. size="small"
  376. @keyup.enter.native="Search('excelParam')"
  377. >
  378. </el-input>
  379. </div>
  380. </div>
  381. <div
  382. class="option-line"
  383. v-if="guangtouParam.content.where.drivetype == '气动'"
  384. >
  385. <div class="item">
  386. <div class="label">{{ $t("驱动方式") }}:</div>
  387. <MySelect
  388. :isClear="false"
  389. :options="[
  390. { remarks: '气动调节', value: '气动调节' },
  391. { remarks: '气动开关', value: '气动开关' },
  392. ]"
  393. v-model="excelParam.content.where.drivetype"
  394. ></MySelect>
  395. </div>
  396. </div>
  397. <div
  398. class="option-line"
  399. v-if="guangtouParam.content.where.drivetype == '电动'"
  400. >
  401. <div class="item">
  402. <div class="label">{{ $t("驱动方式") }}:</div>
  403. <MySelect
  404. @click="
  405. Search('excelParam', 'actuatordrivetype');
  406. calcTableHieght('excelRef');
  407. "
  408. :options="[
  409. { remarks: '电动开关', value: '电动开关' },
  410. { remarks: '电动调节', value: '电动调节' },
  411. ]"
  412. v-model="excelParam.content.where.actuatordrivetype"
  413. ></MySelect>
  414. </div>
  415. </div>
  416. <div
  417. class="option-line"
  418. v-if="guangtouParam.content.where.drivetype == '电动'"
  419. >
  420. <div class="item">
  421. <div class="label">{{ $t("品牌") }}:</div>
  422. <MySelect
  423. @click="
  424. Search('excelParam', 'actuatorbrand');
  425. calcTableHieght('excelRef');
  426. "
  427. :disabled="!excelParam.content.where.actuatordrivetype"
  428. :options="actuatorbrand"
  429. v-model="excelParam.content.where.actuatorbrand"
  430. ></MySelect>
  431. </div>
  432. </div>
  433. <div class="option-line" v-else>
  434. <div class="item">
  435. <div class="label">{{ $t("品牌") }}:</div>
  436. <MySelect
  437. @click="Search('excelParam', 'actuatorbrand')"
  438. :options="actuatorbrand"
  439. v-model="excelParam.content.where.actuatorbrand"
  440. ></MySelect>
  441. </div>
  442. </div>
  443. <div
  444. v-if="
  445. guangtouParam.content.where.drivetype == '电动' &&
  446. excelParam.content.where.actuatorbrand &&
  447. actuatorname.length
  448. "
  449. >
  450. <div class="option-line">
  451. <div class="item">
  452. <div class="label" style="width: 80px">
  453. {{ $t("执行器类型") }}:
  454. </div>
  455. <span
  456. style="font-size: 14px; font-weight: bold; color: #3874f6"
  457. >{{ $t(excelParam.content.where.actuatorname) || "--" }}</span
  458. >
  459. </div>
  460. </div>
  461. <SelectBar
  462. style="margin: 20px 0"
  463. v-model="excelParam.content.where.actuatorname"
  464. @change="Search('excelParam', 'actuatorname')"
  465. :options="computedActuatorNameOptions"
  466. ></SelectBar>
  467. </div>
  468. <div
  469. class="option-line"
  470. v-if="guangtouParam.content.where.drivetype == '电动'"
  471. >
  472. <div class="item">
  473. <div class="label">{{ $t("电源电压") }}:</div>
  474. <MySelect
  475. @click="Search('excelParam', 'supplyvoltage')"
  476. :disabled="!excelParam.content.where.actuatorname"
  477. :options="supplyvoltage"
  478. v-model="excelParam.content.where.supplyvoltage"
  479. ></MySelect>
  480. </div>
  481. <div class="item">
  482. <div class="label">{{ $t("信号类型") }}:</div>
  483. <MySelect
  484. @click="Search('excelParam', 'actuatorsignal')"
  485. :disabled="!excelParam.content.where.supplyvoltage"
  486. :options="actuatorsignal"
  487. v-model="excelParam.content.where.actuatorsignal"
  488. ></MySelect>
  489. </div>
  490. </div>
  491. <div
  492. class="option-line"
  493. v-show="guangtouParam.content.where.drivetype == '气动'"
  494. >
  495. <div class="item">
  496. <div class="label">{{ $t("功能") }}:</div>
  497. <MySelect
  498. :disabled="!excelParam.content.where.actuatorname"
  499. @click="Search('excelParam', 'func')"
  500. :options="func"
  501. v-model="excelParam.content.where.func"
  502. ></MySelect>
  503. </div>
  504. </div>
  505. <div
  506. class="option-line"
  507. v-show="guangtouParam.content.where.drivetype == '气动'"
  508. >
  509. <div class="item">
  510. <div class="label">{{ $t("结构") }}:</div>
  511. <MySelect
  512. :disabled="!excelParam.content.where.func"
  513. @click="Search('excelParam', 'bodystructure')"
  514. :options="bodystructure"
  515. v-model="excelParam.content.where.bodystructure"
  516. ></MySelect>
  517. </div>
  518. </div>
  519. <div style="display: flex;justify-content: left;margin-top: 10px">
  520. <div
  521. class="tips"
  522. v-if="
  523. guangtouParam.content.where.drivetype == '电动' && resultArr.length
  524. "
  525. style="color: #3874f6;margin-top: 2px"
  526. >
  527. <i class="el-icon-warning" style="margin-right: 5px"></i
  528. >{{ $t("建议开关阀时间")
  529. }}{{
  530. caliber.filter((v) => v.value == resultArr[0].caliber).length
  531. ? caliber
  532. .filter((v) => v.value == resultArr[0].caliber)[0]
  533. .remarks.split(";")[0]
  534. : "-"
  535. }}{{ $t("秒") }}
  536. </div>
  537. <div style="margin-left: 20px;display: flex;justify-content: left">
  538. <div class="label" style="margin-top:2px;">{{$t(`开关阀安全时间:`)}}</div>
  539. <el-input style="width: 160px;margin-right: 10px" size="small" v-model="mintime" :placeholder="$t(`开关阀安全时间`)"></el-input> -
  540. <el-input style="width: 160px;margin-left: 10px" size="small" v-model="maxtime" :placeholder="$t(`开关阀安全时间`)"></el-input>
  541. </div>
  542. <el-button type="primary" style="margin-left: 10px" size="small" @click="Search('excelParam')">{{$t(`查询`)}}</el-button>
  543. </div>
  544. <!--执行器-->
  545. <div v-if="guangtouParam.content.where.drivetype == '电动'">
  546. <MyTable
  547. fixedName="operation"
  548. :height="tableHeight"
  549. :noQuery="true"
  550. ref="excelRef"
  551. :layout="tool.tabelCol($route.name)['excelTable1'].tablecols"
  552. :param="excelParam"
  553. :custom="true"
  554. style="margin-top: 14px"
  555. >
  556. <template v-slot:customcol="scope">
  557. <span
  558. v-if="scope.column.columnname == 'matchratio'"
  559. style="color: red"
  560. >{{ $t(scope.column.data[scope.column.columnname]) }}</span
  561. >
  562. <span v-else-if="scope.column.columnname == 'maxsquarewidth'">{{
  563. scope.column.data[scope.column.columnname].join(",")
  564. }}</span>
  565. <span v-else-if="scope.column.columnname != 'operation'">{{
  566. $t(scope.column.data[scope.column.columnname])
  567. }}</span>
  568. </template>
  569. <template v-slot:opreation="scope">
  570. <el-button
  571. type="text"
  572. size="mini"
  573. @click="selectTarget(scope.data, '执行器')"
  574. :disabled="
  575. (guangtouParam.content.where.drivetype == '电动' &&
  576. resultArr.length == 2)
  577. "
  578. >{{ $t("选择") }}</el-button
  579. >
  580. </template>
  581. </MyTable>
  582. </div>
  583. <MyTable
  584. v-else
  585. :height="tableHeight"
  586. fixedName="operation"
  587. :noQuery="true"
  588. ref="excelRef"
  589. :layout="tool.tabelCol($route.name)['excelTable2'].tablecols"
  590. :param="excelParam"
  591. :custom="true"
  592. style="margin-top: 14px"
  593. >
  594. <template v-slot:customcol="scope">
  595. <span
  596. v-if="scope.column.columnname == 'matchratio'"
  597. style="color: red"
  598. >{{ $t(scope.column.data[scope.column.columnname]) }}</span
  599. >
  600. <span v-else-if="scope.column.columnname == 'maxsquarewidth'">{{
  601. scope.column.data[scope.column.columnname].join(",")
  602. }}</span>
  603. <span v-else-if="scope.column.columnname != 'operation'">{{
  604. $t(scope.column.data[scope.column.columnname])
  605. }}</span>
  606. </template>
  607. <template v-slot:opreation="scope">
  608. <el-button
  609. type="text"
  610. size="mini"
  611. @click="selectTarget(scope.data, '执行器')"
  612. :disabled="
  613. (guangtouParam.content.where.drivetype == '电动' &&
  614. resultArr.length == 2)
  615. "
  616. >{{ $t("选择") }}</el-button
  617. >
  618. </template>
  619. </MyTable>
  620. </div>
  621. <!--选辅件-->
  622. <div class="dialog-content" v-show="active == 3">
  623. <MyTable
  624. :noQuery="true"
  625. ref="fujianRef"
  626. fixedName="operation"
  627. :height="tableHeight"
  628. :layout="tool.tabelCol($route.name)['itemList'].tablecols"
  629. :param="fujianParam"
  630. :opwidth="200"
  631. :custom="true"
  632. style="margin-top: 14px"
  633. >
  634. <template v-slot:customcol="scope">
  635. <span v-if="scope.column.columnname != 'operation'">{{
  636. $t(scope.column.data[scope.column.columnname])
  637. }}</span>
  638. </template>
  639. <template v-slot:opreation="scope">
  640. <el-button
  641. type="text"
  642. size="mini"
  643. @click="selectTarget(scope.data, '辅件')"
  644. :disabled="loading"
  645. >{{ $t("选择") }}</el-button
  646. >
  647. </template>
  648. </MyTable>
  649. </div>
  650. <div class="fixed__btn__panel">
  651. <el-button size="small" @click="close()" class="normal-btn-width">{{
  652. $t(`取 消`)
  653. }}</el-button>
  654. <el-button
  655. size="small"
  656. type="primary"
  657. @click="onSubmit"
  658. class="normal-btn-width"
  659. v-if="active == 3"
  660. :disabled="$refs.fujianRef.list.length != 0"
  661. >{{ $t("确认") }}</el-button
  662. >
  663. </div>
  664. </div>
  665. </div>
  666. </template>
  667. <script>
  668. import "@/optionSystem/valveOption/index.css";
  669. import MySelect from "@/optionSystem/FProductManage/modules/select.vue";
  670. import MyTable from "@/optionSystem/FProductManage/modules/table.vue";
  671. import SelectBar from "@/optionSystem/FProductManage/modules/selectBar.vue";
  672. export default {
  673. components: { MySelect, MyTable, SelectBar },
  674. props: ["data"],
  675. inject: ["valvetype", "resultArrs"],
  676. computed: {
  677. //执行器类型选项
  678. computedActuatorNameOptions() {
  679. return this.actuatorname.map((v) => {
  680. return {
  681. url: v.url,
  682. remarks: v.remarks.split("-").pop(),
  683. value: v.remarks,
  684. };
  685. });
  686. },
  687. },
  688. data() {
  689. return {
  690. items: [
  691. { title: "选光头", value: "光头" },
  692. { title: "选执行器", value: "执行器" },
  693. ],
  694. active: 1,
  695. tableHeight: "400px",
  696. isEdit: false,
  697. excel: "",
  698. gangtou: "",
  699. resultArr: [],
  700. caliber: [],
  701. nominalpressure: [],
  702. connection: [],
  703. bodymaterial: [],
  704. stemmaterial: [],
  705. plinthmaterial: [],
  706. actuatorbrand: [],
  707. actuatorname: [],
  708. actuatorsignal: [],
  709. supplyvoltage: [],
  710. actuatordrivetype: [],
  711. drivetype: [],
  712. bodystructure: [],
  713. func: [],
  714. guangtouList: [],
  715. form: {
  716. itemid: 0,
  717. plm_itemextendid: 0,
  718. valvetype: "蝶阀", //阀门类型(固定)
  719. itemno: "", //产品编码(必填,唯一)
  720. itemname: "", //产品名称(必填)
  721. erpitemno: "", //erp品号(必填)
  722. erpitemname: "", //erp品名(必填)
  723. spec: "", //规格尺寸(必填)
  724. model: "", //型号(必填)
  725. material: "", //材质(必填,选项)
  726. marketprice: "",
  727. caliber: "", //公称通径
  728. nominalpressure: [], //公称压力
  729. connection: "",
  730. drivetype: [], //驱动方式
  731. valveplatematerial: "",
  732. bodymaterial: "",
  733. stemmaterial: "",
  734. plinthmaterial: "",
  735. torque: "", //
  736. maxruntime: "", //90°最大运行时间
  737. actuatorbrand: "", //执行器品牌
  738. actuatordrivetype: "", //执行器类型
  739. part_itemids: [],
  740. },
  741. guangtouParam: {
  742. id: 20240718162102,
  743. content: {
  744. pageNumber: 1,
  745. pageSize: 30,
  746. sa_lectotypecfgid: this.$route.query.id,
  747. where: {
  748. condition: "",
  749. caliber: "", //公称通径
  750. nominalpressure: "", //公称压力
  751. connection: "", //连接方式
  752. bodymaterial: "", //阀体材质
  753. stemmaterial: "", //阀杆材质
  754. plinthmaterial: "", //阀座材质
  755. drivetype: "电动", //驱动方式
  756. },
  757. },
  758. },
  759. excelList: [],
  760. excelParam: {
  761. id: 20240718162202,
  762. content: {
  763. itemid: "", //光头id
  764. pageNumber: 1,
  765. pageSize: 30,
  766. sa_lectotypecfgid: this.$route.query.id,
  767. where: {
  768. actuatordrivetype: "电动开关", //驱动方式
  769. condition1: "",
  770. condition2: "",
  771. torque: "", //阀门扭矩
  772. flh: "", //法兰号
  773. actuatorbrand: "", //品牌
  774. actuatorname: "",
  775. supplyvoltage: "",
  776. actuatorsignal: "",
  777. maxsquarewidth: "", //方阀杆最大宽度
  778. maxrounddiameter: "", //圆阀杆最大直径
  779. mintime:"",
  780. maxtime:""
  781. },
  782. },
  783. },
  784. fujianList: [],
  785. fujianArr: [],
  786. loading: false,
  787. fujianParam: {
  788. id: 20240718162402,
  789. content: {
  790. othertypes: [],
  791. pageNumber: 1,
  792. pageSize: 300,
  793. where: {
  794. actuatorbrand: "", //品牌
  795. },
  796. },
  797. },
  798. timer: null,
  799. product: {},
  800. /*开关阀时间*/
  801. dateDefault:{
  802. id: 20220901092501,
  803. content: {
  804. optiontypeid: 115, //光头id
  805. pageNumber: 1,
  806. pageSize: 9999999,
  807. where: {
  808. condition: "",
  809. },
  810. },
  811. },
  812. diameter:'',
  813. mintime:"",
  814. maxtime:""
  815. };
  816. },
  817. watch: {
  818. active(val) {
  819. switch (val) {
  820. case 1:
  821. this.calcTableHieght("guangtouRef");
  822. break;
  823. case 2:
  824. this.calcTableHieght("excelRef");
  825. break;
  826. case 3:
  827. this.calcTableHieght("fujianRef");
  828. break;
  829. default:
  830. break;
  831. }
  832. },
  833. },
  834. methods: {
  835. init() {
  836. this.guangtouChange(this.data.filter.mainvalve.drivetype);
  837. Object.keys(this.data.filter.mainvalve).forEach((v) => {
  838. this.guangtouParam.content.where[v] = this.data.filter.mainvalve[v];
  839. });
  840. Object.keys(this.data.filter.actuator).forEach((v) => {
  841. this.excelParam.content.where[v] = this.data.filter.actuator[v];
  842. });
  843. if (this.guangtouParam.content.where.drivetype == "气动") {
  844. this.items.push({ title: "选辅件", value: "辅件" });
  845. this.fujianArr = this.data.filter.other.fujianArr;
  846. }
  847. this.$refs.guangtouRef.listData(() => {
  848. if (!this.$refs.guangtouRef.list.length) return;
  849. console.log(this.$refs.guangtouRef.list[0]);
  850. this.nominalpressure =
  851. this.$refs.guangtouRef.list[0].option.nominalpressure;
  852. this.connection = this.$refs.guangtouRef.list[0].option.connection;
  853. this.bodymaterial = this.$refs.guangtouRef.list[0].option.bodymaterial;
  854. this.stemmaterial = this.$refs.guangtouRef.list[0].option.stemmaterial;
  855. this.plinthmaterial =
  856. this.$refs.guangtouRef.list[0].option.plinthmaterial;
  857. });
  858. this.resultArr = JSON.parse(JSON.stringify(this.resultArrs()));
  859. console.log(this.resultArr);
  860. setTimeout(() => {
  861. this.$refs.excelRef.listData(() => {
  862. if (!this.$refs.excelRef.list.length) return;
  863. this.actuatorbrand = this.$refs.excelRef.list[0].option.actuatorbrand;
  864. this.bodystructure = this.$refs.excelRef.list[0].option.bodystructure;
  865. this.actuatorname = this.$refs.excelRef.list[0].option.actuatorname;
  866. this.func = this.$refs.excelRef.list[0].option.func;
  867. });
  868. this.$refs.fujianRef.listData();
  869. }, 1000);
  870. },
  871. calcTableHieght(id) {
  872. this.$nextTick(() => {
  873. if (!this.$refs[id]) return;
  874. let target = this.$refs[id].$el.getBoundingClientRect();
  875. let clientHeight = document.body.clientHeight;
  876. this.tableHeight = clientHeight - target.top - 85 + "px";
  877. this.$refs[id].$refs.table.doLayout();
  878. });
  879. },
  880. close() {
  881. this.active = 1;
  882. this.guangtouParam.content.where.drivetype = "电动";
  883. this.resultArr = [];
  884. this.fujianArr = [];
  885. this.items = [
  886. { title: "选光头", value: "光头" },
  887. { title: "选执行器", value: "执行器" },
  888. ];
  889. this.isEdit = false;
  890. this.$emit("close");
  891. },
  892. //搜索
  893. Search(type, position, init) {
  894. if (!init) this.isEdit = true;
  895. let index = 0;
  896. let whereKeys = Object.keys(this[type].content.where);
  897. if (position) {
  898. index = whereKeys.indexOf(position) + 1;
  899. }
  900. if (type != "excelParam") {
  901. for (let i = index; i < whereKeys.length - 1; i++) {
  902. if (!position && whereKeys[i].indexOf("condition") != -1) continue;
  903. this[type].content.where[whereKeys[i]] = "";
  904. }
  905. } else if (type == "excelParam") {
  906. for (let i = index; i < whereKeys.length; i++) {
  907. if (
  908. whereKeys[i].indexOf("condition") != -1 ||
  909. whereKeys[i].indexOf("flh") != -1 ||
  910. whereKeys[i].indexOf("maxrounddiameter") != -1 ||
  911. whereKeys[i].indexOf("maxsquarewidth") != -1 ||
  912. whereKeys[i].indexOf("torque") != -1 ||
  913. whereKeys[i].indexOf("drivetype") != -1
  914. )
  915. continue;
  916. this[type].content.where[whereKeys[i]] = ""
  917. this.excelParam.content.where.mintime = this.mintime
  918. this.excelParam.content.where.maxtime = this.maxtime
  919. }
  920. }
  921. switch (type) {
  922. case "guangtouParam":
  923. if (this.loading) return;
  924. this.loading = true;
  925. whereKeys = whereKeys.filter((item) => item != "caliber");
  926. this.$refs.guangtouRef &&
  927. this.$refs.guangtouRef.listData(_changeOption);
  928. break;
  929. case "excelParam":
  930. if (this.loading) return;
  931. this.loading = true;
  932. this.$nextTick(() => {
  933. this.$refs.excelRef && this.$refs.excelRef.listData(_changeOption2);
  934. });
  935. break;
  936. default:
  937. break;
  938. }
  939. //更新选项列表
  940. let that = this;
  941. function _changeOption() {
  942. that.loading = false;
  943. let isbreak = false;
  944. for (let i = 0; i < whereKeys.length; i++) {
  945. if (isbreak) break;
  946. if (whereKeys[i].indexOf("condition") == -1) {
  947. if (that.$refs.guangtouRef.list.length) {
  948. if (i >= index - 1 && whereKeys[i] != "drivetype") {
  949. that[whereKeys[i]] =
  950. that.$refs.guangtouRef.list[0].option[whereKeys[i]];
  951. if (that[whereKeys[i]].length == 1) {
  952. if (that.guangtouParam.content.where[position])
  953. that.guangtouParam.content.where[whereKeys[i]] =
  954. that[whereKeys[i]][0].value;
  955. if (that.timer) clearTimeout(that.timer);
  956. that.timer = setTimeout(() => {
  957. that.$refs.guangtouRef && that.$refs.guangtouRef.listData();
  958. });
  959. } else if (that[whereKeys[i]].length > 1) {
  960. that.guangtouParam.content.where[whereKeys[i]] = "";
  961. }
  962. if (
  963. that.$refs.guangtouRef.list[0].option[whereKeys[i]].length > 1
  964. ) {
  965. isbreak = true;
  966. }
  967. }
  968. } else {
  969. if (i >= index && whereKeys[i] != "drivetype")
  970. that[whereKeys[i]] = [];
  971. }
  972. }
  973. }
  974. }
  975. function _changeOption2() {
  976. that.loading = false;
  977. let isbreak = false;
  978. for (let i = 5; i < whereKeys.length; i++) {
  979. if (isbreak) break;
  980. if (whereKeys[i].indexOf("condition") == -1) {
  981. if (that.$refs.excelRef.list.length) {
  982. if (i >= index) {
  983. if (whereKeys[i] != "drivetype")
  984. that[whereKeys[i]] =
  985. that.$refs.excelRef.list[0].option[whereKeys[i]];
  986. if (that[whereKeys[i]].length == 1) {
  987. if (that.excelParam.content.where[position])
  988. that.excelParam.content.where[whereKeys[i]] =
  989. that[whereKeys[i]][0].value;
  990. if (that.timer) clearTimeout(that.timer);
  991. that.timer = setTimeout(() => {
  992. that.$refs.excelRef && that.$refs.excelRef.listData();
  993. });
  994. } else if (
  995. that[whereKeys[i]].length > 1 &&
  996. whereKeys[i] != "drivetype"
  997. ) {
  998. that.excelParam.content.where[whereKeys[i]] = "";
  999. }
  1000. if (
  1001. that.$refs.excelRef.list[0].option[whereKeys[i]].length > 1
  1002. ) {
  1003. isbreak = true;
  1004. }
  1005. }
  1006. } else {
  1007. if (i >= index && whereKeys[i] != "drivetype")
  1008. that[whereKeys[i]] = [];
  1009. }
  1010. }
  1011. }
  1012. }
  1013. },
  1014. guangtouChange(val) {
  1015. switch (val) {
  1016. case "电动":
  1017. this.excelParam = {
  1018. id: 20240718162202,
  1019. content: {
  1020. itemid: 0, //光头id
  1021. pageNumber: 1,
  1022. pageSize: 30,
  1023. where: {
  1024. actuatordrivetype: "电动开关", //驱动方式
  1025. condition1: "",
  1026. condition2: "",
  1027. torque: "", //阀门扭矩
  1028. flh: "", //法兰号
  1029. actuatorbrand: "", //品牌
  1030. actuatorname: "",
  1031. supplyvoltage: "",
  1032. actuatorsignal: "",
  1033. maxsquarewidth: "", //方阀杆最大宽度
  1034. maxrounddiameter: "", //圆阀杆最大直径
  1035. },
  1036. },
  1037. };
  1038. break;
  1039. case "气动":
  1040. this.excelParam = {
  1041. id: 20240718162302,
  1042. content: {
  1043. pageNumber: 1,
  1044. pageSize: 30,
  1045. where: {
  1046. condition1: "",
  1047. torque: "", //阀门扭矩
  1048. flh: "", //法兰号
  1049. maxsquarewidth: "", //方阀杆最大宽度
  1050. maxrounddiameter: "", //圆阀杆最大直径
  1051. actuatorbrand: "", //品牌
  1052. actuatorname: "",
  1053. func: "", //功能
  1054. bodystructure: "", //结构
  1055. drivetype: "气动调节",
  1056. },
  1057. },
  1058. };
  1059. break;
  1060. default:
  1061. break;
  1062. }
  1063. },
  1064. async onSubmit() {
  1065. let res = await this.$api.requested({
  1066. content: {
  1067. sa_lectotypecfgid: this.$route.query.id,
  1068. },
  1069. id: 2024072414593102,
  1070. });
  1071. this.$confirm(res.data ? res.data : "确认提交数据吗?", this.$t("提示"), {
  1072. confirmButtonText: this.$t("确定"),
  1073. cancelButtonText: this.$t("取消"),
  1074. type: "warning",
  1075. })
  1076. .then(async () => {
  1077. let mainvalve = Object.keys(this.guangtouParam.content.where)
  1078. .filter((v) => v.indexOf("condition") == -1)
  1079. .reduce((result, item) => {
  1080. result[item] = this.guangtouParam.content.where[item];
  1081. return result;
  1082. }, {});
  1083. let actuator = Object.keys(this.excelParam.content.where)
  1084. .filter((v) => v.indexOf("condition") == -1)
  1085. .reduce((result, item) => {
  1086. result[item] = this.excelParam.content.where[item];
  1087. return result;
  1088. }, {});
  1089. let param = {
  1090. id: 2024071809123402,
  1091. content: {
  1092. sa_lectotypecfgid: this.$route.query.id,
  1093. projectname: this.data.projectname,
  1094. enterprisename: this.data.enterprisename,
  1095. source: this.data.source,
  1096. sourceid: this.$route.query.id,
  1097. sourcetable: this.data.sourcetable,
  1098. valvetype: this.valvetype(),
  1099. filter: {
  1100. mainvalve: mainvalve,
  1101. actuator: actuator,
  1102. other: {
  1103. fujianArr: this.fujianArr,
  1104. },
  1105. },
  1106. part_itemids: this.resultArr,
  1107. },
  1108. };
  1109. this.$emit("handleParam", param);
  1110. let res = await this.$api.requested(param);
  1111. this.tool.showMessage(res, () => {
  1112. this.close();
  1113. this.$emit("onEditSuccess");
  1114. });
  1115. })
  1116. .catch(() => {});
  1117. },
  1118. //选择目标
  1119. selectTarget(data, type) {
  1120. this.isEdit = true;
  1121. data.parttype = type;
  1122. if (type == "主阀") {
  1123. this.queryDefaultDate(data)
  1124. this.resultArr[0] = data;
  1125. if (
  1126. this.guangtouParam.content.where.drivetype == "气动" &&
  1127. this.items.length == 2
  1128. ) {
  1129. this.items.push({ title: "选辅件", value: "辅件" });
  1130. } else if (
  1131. this.guangtouParam.content.where.drivetype == "电动" &&
  1132. this.items.length == 3
  1133. ) {
  1134. this.items.splice(2, 1);
  1135. }
  1136. this.guangtouChange(this.guangtouParam.content.where.drivetype);
  1137. this.excelParam.content.itemid = data.itemid;
  1138. this.excelParam.content.where.torque = data.torque;
  1139. this.excelParam.content.where.flh = data.flh;
  1140. this.excelParam.content.where.maxsquarewidth = data.maxsquarewidth;
  1141. this.excelParam.content.where.maxrounddiameter = data.maxrounddiameter;
  1142. this.$nextTick(() => {
  1143. this.$refs.excelRef.listData(() => {
  1144. if (!this.$refs.excelRef.list.length) return;
  1145. this.actuatorbrand =
  1146. this.$refs.excelRef.list[0].option.actuatorbrand;
  1147. this.bodystructure =
  1148. this.$refs.excelRef.list[0].option.bodystructure;
  1149. this.func = this.$refs.excelRef.list[0].option.func;
  1150. });
  1151. });
  1152. this.active = 2;
  1153. } else if (type == "执行器") {
  1154. if (this.guangtouParam.content.where.drivetype === "电动") {
  1155. const times = this.caliber
  1156. .find(
  1157. (v) =>
  1158. v.value === this.guangtouParam.content.where.caliber
  1159. )
  1160. .remarks.split(";")[0]
  1161. .split("-")
  1162. .map(Number);
  1163. const maxRuntime = parseInt(data.maxruntime, 10);
  1164. if (maxRuntime > times[1] || maxRuntime < times[0]) {
  1165. this.$confirm(
  1166. `${this.$t("当前选择执行器开关时间为")}${
  1167. data.maxruntime
  1168. }${this.$t("秒,超出建议值")}${times.join("-")},${this.$t(
  1169. "是否确认"
  1170. )}?`,
  1171. this.$t("提示"),
  1172. {
  1173. confirmButtonText: this.$t("确定"),
  1174. cancelButtonText: this.$t("取消"),
  1175. type: "warning",
  1176. }
  1177. )
  1178. .then(() => {
  1179. handle.call(this);
  1180. })
  1181. .catch(() => {});
  1182. } else {
  1183. handle.call(this);
  1184. }
  1185. } else {
  1186. handle.call(this);
  1187. }
  1188. function handle() {
  1189. this.resultArr[1] = data;
  1190. this.resultArr[1].itemname = this.resultArr[1].actuatormodel;
  1191. if (this.guangtouParam.content.where.drivetype === "电动") {
  1192. const gearbox = {
  1193. parttype: "减速箱",
  1194. itemid: this.resultArr[1].gearboxid,
  1195. };
  1196. if (this.resultArr.length === 3) {
  1197. this.resultArr[2] = gearbox;
  1198. } else {
  1199. this.resultArr.push(gearbox);
  1200. }
  1201. }
  1202. this.fujianParam.content.othertypes =
  1203. this.excelParam.content.where.drivetype === "气动调节"
  1204. ? ["定位器", "过滤减压阀"]
  1205. : ["电磁阀", "限位开关", "过滤减压阀"];
  1206. this.fujianArr = [];
  1207. const spliceIndex =
  1208. this.guangtouParam.content.where.drivetype === "电动" ? 3 : 2;
  1209. this.resultArr.splice(
  1210. spliceIndex,
  1211. this.resultArr.length - spliceIndex
  1212. );
  1213. data.itemid = data.actuatorid;
  1214. data.itemname = data.actuatormodel;
  1215. if (this.items.length >= 3) {
  1216. this.active = 3;
  1217. this.$refs.fujianRef.listData();
  1218. } else {
  1219. this.onSubmit();
  1220. }
  1221. }
  1222. } else {
  1223. this.resultArr.push(data);
  1224. if (this.fujianArr.filter((item) => item.itemid == data.itemid).length)
  1225. return;
  1226. this.fujianParam.content.othertypes.splice(
  1227. this.fujianParam.content.othertypes.indexOf(data.itemname),
  1228. 1
  1229. );
  1230. this.loading = true;
  1231. this.$refs.fujianRef.listData(() => {
  1232. this.fujianArr.push(data);
  1233. this.loading = false;
  1234. });
  1235. }
  1236. },
  1237. handleClose(tag) {
  1238. this.fujianArr = this.fujianArr.filter((item) => {
  1239. if (item.itemid != tag.itemid) {
  1240. return item;
  1241. } else {
  1242. this.fujianParam.content.othertypes.push(item.itemname);
  1243. }
  1244. });
  1245. this.resultArr = this.resultArr.filter((item) => {
  1246. if (item.itemid != tag.itemid) {
  1247. return item;
  1248. }
  1249. });
  1250. this.$refs.fujianRef.listData();
  1251. },
  1252. stepsChange(val) {
  1253. if (this.isEdit)
  1254. return this.$message.warning("已操作过选型单,请按步骤进行!!");
  1255. this.active = val + 1;
  1256. },
  1257. //选项
  1258. optionsList() {
  1259. this.$store.dispatch("optiontypeselect", "caliber").then((res) => {
  1260. this.caliber = res.data;
  1261. });
  1262. this.drivetype = [
  1263. { remarks: "电动", value: "电动" },
  1264. { remarks: "气动", value: "气动" },
  1265. ];
  1266. },
  1267. async queryDefaultDate(val){
  1268. const res = await this.$api.requested(this.dateDefault)
  1269. res.data.forEach(e=>{
  1270. if (e.value == val.caliber){
  1271. this.diameter = e
  1272. }
  1273. })
  1274. let newDiameter = this.diameter.remarks.split(';')
  1275. let diameter = newDiameter[1].split('-')
  1276. this.mintime = diameter[0]
  1277. this.maxtime = diameter[1]
  1278. }
  1279. },
  1280. created() {
  1281. this.optionsList();
  1282. },
  1283. mounted() {
  1284. this.init();
  1285. this.calcTableHieght("guangtouRef");
  1286. },
  1287. };
  1288. </script>
  1289. <style scoped>
  1290. /deep/.ant-steps-item-finish
  1291. > .ant-steps-item-container
  1292. > .ant-steps-item-content
  1293. > .ant-steps-item-title::after {
  1294. background: #3874f6 !important;
  1295. }
  1296. /deep/.ant-steps-item-finish .ant-steps-item-icon {
  1297. background: none !important;
  1298. }
  1299. /deep/.ant-steps-item-icon {
  1300. background: #3874f6;
  1301. height: 32px !important;
  1302. }
  1303. /deep/.ant-steps-item-wait .ant-steps-item-icon {
  1304. background: none !important;
  1305. }
  1306. /deep/.ant-steps-item-active .ant-steps-item-title {
  1307. color: #3874f6 !important;
  1308. font-weight: bold;
  1309. }
  1310. /deep/.fixed__btn__panel {
  1311. padding-left: 240px !important;
  1312. }
  1313. .scroll {
  1314. height: calc(100vh - 60px);
  1315. overflow-y: scroll;
  1316. }
  1317. ::-webkit-scrollbar {
  1318. display: none;
  1319. }
  1320. .select-info {
  1321. background: #f5f6fa;
  1322. font-family: Microsoft YaHei, Microsoft YaHei;
  1323. width: 240px;
  1324. border-right: 1px #999999 solid;
  1325. z-index: 99999991;
  1326. flex-shrink: 0;
  1327. word-wrap: break-word;
  1328. }
  1329. .select-info .info-title {
  1330. font-weight: bold;
  1331. font-size: 20px;
  1332. color: #333333;
  1333. padding: 10px 20px;
  1334. border-bottom: 1px solid #d9d9d9;
  1335. }
  1336. .select-info .product-wrapper {
  1337. padding: 0 20px;
  1338. }
  1339. .select-info .product-wrapper .product {
  1340. padding-bottom: 20px;
  1341. border-bottom: #d9d9d9 1px solid;
  1342. }
  1343. .select-info .product-wrapper .product:last-child {
  1344. border-bottom: none !important;
  1345. }
  1346. .select-info .product-wrapper .product .product-header {
  1347. display: flex;
  1348. align-items: center;
  1349. align-content: center;
  1350. padding: 10px 0;
  1351. }
  1352. .select-info .product-wrapper .product .product-header span:last-child {
  1353. color: #3874f6;
  1354. margin-left: 18px;
  1355. cursor: pointer;
  1356. }
  1357. .select-info .product-wrapper .product .product-header .title {
  1358. font-weight: bold;
  1359. font-size: 14px;
  1360. color: #333333;
  1361. }
  1362. .select-info .product-wrapper .product .product-header img {
  1363. width: 12px;
  1364. height: 12px;
  1365. }
  1366. .select-info .product-wrapper .product .product-name {
  1367. font-weight: 400;
  1368. font-size: 14px;
  1369. color: #555555;
  1370. }
  1371. .select-info .product-wrapper .product .attrite {
  1372. display: flex;
  1373. justify-content: space-between;
  1374. align-items: center;
  1375. font-weight: 400;
  1376. font-size: 12px;
  1377. color: #999999;
  1378. padding-top: 10px;
  1379. }
  1380. .select-info .product-wrapper .product .attrite .attrite-title {
  1381. color: #555555;
  1382. }
  1383. .select-info .product-wrapper .product .attrite .attrite-value {
  1384. }
  1385. .select-info .product-wrapper .product .attrite2 {
  1386. display: flex;
  1387. flex-direction: column;
  1388. font-weight: 400;
  1389. font-size: 12px;
  1390. color: #999999;
  1391. padding-top: 10px;
  1392. }
  1393. .select-info .product-wrapper .product .attrite2 .attrite-title {
  1394. color: #555555;
  1395. margin-bottom: 5px;
  1396. }
  1397. .select-info .product-wrapper .product .attrite2 .attrite-value {
  1398. }
  1399. .select-info .product-wrapper .product {
  1400. display: flex;
  1401. flex-direction: column;
  1402. }
  1403. .drawer__panel {
  1404. font-family: Source Han Sans SC, Source Han Sans SC;
  1405. padding: 10px 40px !important;
  1406. flex: 1;
  1407. overflow: hidden;
  1408. }
  1409. .my-steps {
  1410. padding: 0px 68px;
  1411. }
  1412. .drawer__panel {
  1413. font-family: Source Han Sans SC, Source Han Sans SC;
  1414. }
  1415. .product-content .block {
  1416. margin-top: 30px;
  1417. padding-left: 20px;
  1418. }
  1419. .product-content .block .header {
  1420. display: flex;
  1421. align-content: center;
  1422. align-items: center;
  1423. margin-bottom: 20px;
  1424. }
  1425. .product-content .block .header .title {
  1426. font-size: 16px;
  1427. font-weight: bold;
  1428. margin-right: 20px;
  1429. }
  1430. .product-content .block .header .handle {
  1431. display: flex;
  1432. }
  1433. .dialog-content {
  1434. }
  1435. .dialog-content .option-line {
  1436. display: flex;
  1437. margin-top: 10px;
  1438. }
  1439. .dialog-content .option-line .item {
  1440. display: flex;
  1441. align-items: center;
  1442. font-size: 14px;
  1443. font-weight: 500px;
  1444. margin-right: 20px;
  1445. }
  1446. .dialog-content .option-line .item .label {
  1447. width: 70px;
  1448. flex-shrink: 0;
  1449. text-align-last: justify;
  1450. margin-right: 15px;
  1451. color: #000000 !important;
  1452. }
  1453. .descript {
  1454. font-size: 12px;
  1455. color: red;
  1456. }
  1457. </style>