detail.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854
  1. <template>
  2. <view>
  3. <uni-nav-bar
  4. fixed="true"
  5. statusBar="true"
  6. left-icon="back"
  7. :title="isApproval ? '设备维修验收详情' : workOrderType.code==10?'计划维修工单详情':'维修工单详情'"
  8. @clickLeft="back"
  9. >
  10. </uni-nav-bar>
  11. <view class="tab-title">
  12. <view
  13. v-for="(item, index) in tabList"
  14. :key="index"
  15. class="tab-item"
  16. v-text="item.label"
  17. :class="index === pickTabIndex ? 'active' : ''"
  18. @click="changeChartsTab(index)"
  19. ></view>
  20. </view>
  21. <view class="main">
  22. <!-- 工单信息 -->
  23. <view class="kd-baseInfo" v-if="pickTabIndex == 0">
  24. <view class="kd-cell">
  25. <text class="kd-label">工单编号</text>
  26. {{ worksheetInfo.workOrderCode }}
  27. </view>
  28. <view class="kd-cell">
  29. <text class="kd-label">执行部门</text>
  30. {{ worksheetInfo.executorDeptName }}
  31. </view>
  32. <view class="kd-cell">
  33. <text class="kd-label">执行人</text>
  34. {{ worksheetInfo.executeUserName }}
  35. </view>
  36. <view class="kd-cell">
  37. <text class="kd-label">计划单号</text>
  38. {{ planRepair.planCode }}
  39. </view>
  40. <view class="kd-cell">
  41. <text class="kd-label">计划名称</text>
  42. {{ planRepair.planName }}
  43. </view>
  44. <view class="kd-cell" v-if="workOrderType.code != 10">
  45. <text class="kd-label">计划完成时间</text>
  46. {{ worksheetInfo.planFinishTime }}
  47. </view>
  48. <view class="kd-cell" v-if="workOrderType.code == 10">
  49. <text class="kd-label">计划开始时间</text>
  50. {{ planRepair.planStartTime }}
  51. </view>
  52. <view class="kd-cell" v-if="workOrderType.code == 10">
  53. <text class="kd-label">计划完成时间</text>
  54. {{ planRepair.planEndTime }}
  55. </view>
  56. <view class="kd-cell" >
  57. <text class="kd-label">开工时间:</text>
  58. {{ worksheetInfo.acceptTime }}
  59. </view>
  60. <view class="kd-cell" >
  61. <text class="kd-label">完工时间:</text>
  62. {{ worksheetInfo.finishTime }}
  63. </view>
  64. <view class="kd-cell" >
  65. <text class="kd-label">实际工时:</text>
  66. {{ timeInterval(worksheetInfo.acceptTime, worksheetInfo.finishTime) }}
  67. </view>
  68. <view
  69. class="zxpg-wrap"
  70. v-if="worksheetInfo.status && !isApproval && isMygd"
  71. >
  72. <template v-if="worksheetInfo.status.code === 8">
  73. <!-- <view class="zx-btn btns" @click="handleExecute"> 开始执行 </view> -->
  74. <view class="zx-btn btns" @click="handleNotice"> 开始执行 </view>
  75. </template>
  76. <template v-if="worksheetInfo.status.code === 1">
  77. <view class="zx-btn btns" @click="handlbg"> 报工 </view>
  78. <!-- <view class="zp-btn btns" @click="handlbpbj" v-if="!worksheetInfo.applyOrder">
  79. 申请备品备件
  80. </view>
  81. <view class="zp-btn btns" v-if="worksheetInfo.applyOrder" @click="handCkbpbj">
  82. 查看备品备件
  83. </view> -->
  84. </template>
  85. <template v-if="worksheetInfo.status.code === 5">
  86. <view class="zx-btn btns disabled"> 已报工 </view>
  87. </template>
  88. <div class="apply-box">
  89. <view
  90. class="zp-btn btns"
  91. @click="handlbpbj"
  92. v-if="
  93. worksheetInfo.status.code != 5 &&
  94. worksheetInfo.status.code != 3 &&
  95. worksheetInfo.status.code != 7
  96. "
  97. >
  98. 申请备品备件
  99. </view>
  100. <view
  101. class="zp-btn btns"
  102. @click="handlZp"
  103. v-if="worksheetInfo.status.code === 8"
  104. >
  105. 转派
  106. </view>
  107. </div>
  108. </view>
  109. <Assign ref="Assign" @success="handleAssign"></Assign>
  110. </view>
  111. <!-- 报修信息 -->
  112. <view class="bg" v-if="pickTabIndex == 1 ">
  113. <view class="kd-baseInfo" v-if=" workOrderType.code != 10 ">
  114. <view class="kd-cell">
  115. <text class="kd-label">报修记录编号</text>
  116. {{
  117. worksheetInfo.repairInfo && worksheetInfo.repairInfo.repairsCode
  118. }}
  119. </view>
  120. <view class="kd-cell">
  121. <text class="kd-label">报修时间</text>
  122. {{
  123. worksheetInfo.repairInfo && worksheetInfo.repairInfo.createTime
  124. }}
  125. </view>
  126. <view class="kd-cell" >
  127. <text class="kd-label">来源编码</text>
  128. {{
  129. worksheetInfo.repairInfo && worksheetInfo.repairInfo.sourceCode
  130. }}
  131. </view>
  132. <view class="kd-cell">
  133. <text class="kd-label">固资编码</text>
  134. {{
  135. device.fixAssetCode
  136. }}
  137. </view>
  138. <view class="kd-cell" >
  139. <text class="kd-label">来源</text>
  140. {{
  141. worksheetInfo.repairInfo && worksheetInfo.repairInfo.source.desc
  142. }}
  143. </view>
  144. <view class="kd-cell" >
  145. <text class="kd-label">报修部门</text>
  146. {{
  147. worksheetInfo.repairInfo &&
  148. worksheetInfo.repairInfo.repairsDeptName
  149. }}
  150. </view>
  151. <view class="kd-cell">
  152. <text class="kd-label">报修人</text>
  153. {{
  154. worksheetInfo.repairInfo && worksheetInfo.repairInfo.repairsPerson
  155. }}
  156. </view>
  157. <view class="kd-cell" >
  158. <text class="kd-label">报修人电话</text>
  159. {{
  160. worksheetInfo.repairInfo &&
  161. worksheetInfo.repairInfo.repairsDeptPhone
  162. }}
  163. </view>
  164. <view class="kd-cell">
  165. <text class="kd-label">期望完成时间</text>
  166. {{
  167. worksheetInfo.repairInfo && worksheetInfo.repairInfo.expectedTime
  168. }}
  169. </view>
  170. <view class="kd-cell">
  171. <text class="kd-label2">委托单位交底负责人</text>
  172. {{
  173. worksheetInfo.repairInfo && worksheetInfo.repairInfo.repairsPerson
  174. }}
  175. </view>
  176. <view class="kd-cell">
  177. <text class="kd-label2">交底时间</text>
  178. {{
  179. worksheetInfo.repairInfo && worksheetInfo.repairInfo.tellTime
  180. }}
  181. </view>
  182. <view class="kd-cell">
  183. <text class="kd-label2">接受交底负责人</text>
  184. {{
  185. worksheetInfo.repairInfo && worksheetInfo.tellName
  186. }}
  187. </view>
  188. <view class="kd-cell" >
  189. <text class="kd-label">故障描述</text>
  190. {{
  191. worksheetInfo.repairInfo &&
  192. worksheetInfo.repairInfo.repairsDescription
  193. }}
  194. </view>
  195. <view class="img-wrap" v-if="workOrderType.code != 10 && worksheetInfo.repairInfo.repairsImg">
  196. <image
  197. class="img"
  198. @click="
  199. clickImg(worksheetInfo.repairInfo.repairsImg.split(','), item_s)
  200. "
  201. :src="apiUrl + item_s"
  202. v-for="(
  203. item_s, index_s
  204. ) in worksheetInfo.repairInfo.repairsImg.split(',')"
  205. :key="index_s"
  206. >
  207. </image>
  208. </view>
  209. </view>
  210. <view class="kd-baseInfo" v-if=" workOrderType.code == 10 ">
  211. <view class="kd-cell">
  212. <text class="kd-label">报修时间</text>
  213. {{
  214. planRepair.createTime
  215. }}
  216. </view>
  217. <view class="kd-cell">
  218. <text class="kd-label">维修部门</text>
  219. {{
  220. planRepair.executorDeptName
  221. }}
  222. </view>
  223. <view class="kd-cell">
  224. <text class="kd-label">维修人员</text>
  225. {{
  226. planRepair.executorName
  227. }}
  228. </view>
  229. </view>
  230. </view>
  231. <!-- 设备信息 -->
  232. <view class="kd-baseInfo" v-if="pickTabIndex == 2">
  233. <view class="kd-cell">
  234. <text class="kd-label">设备编号</text>
  235. {{ workOrderType.code == 10 ? device.equiCode : device.assetCode }}
  236. </view>
  237. <view class="kd-cell">
  238. <text class="kd-label">设备名称</text>
  239. {{workOrderType.code == 10 ? device.equiName : device.assetName }}
  240. </view>
  241. <view class="kd-cell">
  242. <text class="kd-label">设备分类</text>
  243. {{ workOrderType.code == 10 ? planRepair.equiTypeName : device.information && device.information.classificationUrl }}
  244. </view>
  245. <view class="kd-cell">
  246. <text class="kd-label">固资编码</text>
  247. {{ device.fixedAssetsCode }}
  248. </view>
  249. <view class="kd-cell">
  250. <text class="kd-label">规格型号</text>
  251. {{ workOrderType.code == 10 ? device.equiModel : device.information && device.information.specification }}
  252. </view>
  253. <view class="kd-cell" v-if='workOrderType.code != 10'>
  254. <text class="kd-label">权属部门</text>
  255. {{ device.ownershipDeptName }}
  256. </view>
  257. <view class="kd-cell" v-if='workOrderType.code != 10'>
  258. <text class="kd-label">权属人</text>
  259. {{ device.ownershipUserName }}
  260. </view>
  261. <view class="kd-cell" v-if='workOrderType.code != 10'>
  262. <text class="kd-label">权属部门电话</text>
  263. {{ device.ownershipUserMobile }}
  264. </view>
  265. <view class="kd-cell" v-if='workOrderType.code != 10'>
  266. <text class="kd-label">设备位置</text>
  267. {{ device.factoryName }}—{{ device.workshopName }}—{{
  268. device.lineName
  269. }}
  270. </view>
  271. <view class="kd-cell" v-if='workOrderType.code == 10'>
  272. <text class="kd-label">设备位置</text>
  273. {{ device.equiLocation }}
  274. </view>
  275. </view>
  276. <!-- 维修历程 -->
  277. <view class="" v-if="pickTabIndex == 3">
  278. <!-- 步骤条 -->
  279. <maintain_course
  280. :repairInfoLogList="worksheetInfo.repairInfoLogList"
  281. :planEquiList="worksheetInfo.planEquiList"
  282. :workOrderCode="workOrderCode"
  283. ></maintain_course>
  284. </view>
  285. <!-- 维修记录 -->
  286. <view class="wx-main" v-if="pickTabIndex == 4">
  287. <view class="wx-wrap">
  288. <view
  289. class="item"
  290. v-for="(item, index) in worksheetInfo.workOrderRecordRespList"
  291. :key="index"
  292. >
  293. <view class="bh-wrap">
  294. <view class="s1">
  295. <view class="title-md"> 工单编号: </view>
  296. <view class="b1">
  297. {{ item.workOrderCode }}
  298. </view>
  299. </view>
  300. <view class="s2"> {{ item.createTime }} </view>
  301. </view>
  302. <fold :hide="false">
  303. <view class="title-wrap">
  304. <view class="s1 title-md"> 执行人 </view>
  305. <view class="s2">
  306. {{ item.executeUserName }}
  307. </view>
  308. </view>
  309. <view class="bg-wrap-item">
  310. <view class="label title-md"> 故障描述 </view>
  311. <view class="value-wrap">
  312. <view class="text">
  313. {{ item.repairsDescription }}
  314. </view>
  315. <view class="img-wrap" v-if="item.repairsImg">
  316. <image
  317. class="img"
  318. @click="clickImg(item.repairsImg.split(','), item_s)"
  319. :src="apiUrl + item_s"
  320. v-for="(item_s, index_s) in item.repairsImg.split(',')"
  321. :key="index_s"
  322. >
  323. </image>
  324. </view>
  325. </view>
  326. </view>
  327. <view class="bg-wrap-item">
  328. <view class="label title-md"> 处理说明 </view>
  329. <view class="value-wrap">
  330. <view class="text">
  331. {{ item.repairReportExplain }}
  332. </view>
  333. <view class="img-wrap" v-if="item.workOrderImg">
  334. <image
  335. class="img"
  336. @click="clickImg(item.workOrderImg.split(','), item_s)"
  337. :src="apiUrl + item_s"
  338. v-for="(item_s, index_s) in item.workOrderImg.split(',')"
  339. :key="index_s"
  340. >
  341. </image>
  342. </view>
  343. </view>
  344. </view>
  345. <view class="bjsymx" @click="handlbjsymx(item.workOrderCode)">
  346. 备件使用明细
  347. </view>
  348. </fold>
  349. </view>
  350. </view>
  351. </view>
  352. </view>
  353. <PopSparePart
  354. ref="PopSparePart"
  355. :workOrderCode="sparePartWorkOrderCode"
  356. ></PopSparePart>
  357. <Approval
  358. v-if="
  359. isApproval && worksheetInfo.status && worksheetInfo.status.code == 5
  360. "
  361. :devOpsType="1"
  362. :planType="3"
  363. :myHandleId="myHandleId"
  364. :id="worksheetInfo.workOrderId"
  365. />
  366. <Notice v-if="noticeShow" :id='worksheetInfo.id' :repairInfo='worksheetInfo.repairInfo' @agree="agree"></Notice>
  367. </view>
  368. </template>
  369. <script>
  370. import Step from '@/components/Step/Step.vue'
  371. import StepItem from '@/components/Step/StepItem.vue'
  372. import Assign from '@/components/Assign.vue'
  373. import fold from '../components/fold.vue'
  374. import PopSparePart from '../components/PopSparePart.vue'
  375. import Approval from '@/components/Approval.vue'
  376. import maintain_course from '../components/maintain_course.vue'
  377. import Notice from '../components/notice.vue'
  378. import { get, postJ, post } from '@/utils/api.js'
  379. export default {
  380. components: {
  381. Step,
  382. StepItem,
  383. Assign,
  384. fold,
  385. PopSparePart,
  386. Approval,
  387. maintain_course,
  388. Notice
  389. },
  390. computed: {
  391. // 是否为自己的工单
  392. isMygd () {
  393. let userInfo = uni.getStorageSync('userInfo')
  394. // 当前登录人id
  395. let userId = userInfo.id
  396. // 执行人id
  397. let executeUserId = this.worksheetInfo.executeUserId
  398. if (executeUserId == userId) {
  399. return true
  400. } else {
  401. return false
  402. }
  403. }
  404. },
  405. data () {
  406. return {
  407. type: 1,
  408. sparePartWorkOrderCode: '',
  409. tabList: [
  410. {
  411. label: '工单信息',
  412. value: '0'
  413. },
  414. {
  415. label: '报修信息',
  416. value: '1'
  417. },
  418. {
  419. label: '设备信息',
  420. value: '2'
  421. },
  422. {
  423. label: '维修历程',
  424. value: '3'
  425. },
  426. {
  427. label: '维修记录',
  428. value: '4'
  429. }
  430. ],
  431. pickTabIndex: 0,
  432. workOrderCode: '',
  433. worksheetInfo: {},
  434. dict: {
  435. // 报修来源 1:手动创建;2:工单反工;3:告警通知;4:保养工单;5:巡点检工单)
  436. source: {
  437. 1: '手动创建',
  438. 2: '工单反工',
  439. 3: '告警通知',
  440. 4: '保养工单',
  441. 5: '巡点检工单'
  442. }
  443. },
  444. // 设备信息
  445. device: {},
  446. isApproval: false,
  447. myHandleId: '',
  448. equiCode: '',
  449. noticeShow: false,
  450. workOrderType: { },
  451. planRepair: {}
  452. }
  453. },
  454. onLoad (options) {
  455. this.workOrderCode = options.workOrderCode
  456. this.isApproval = options.type === 'approval'
  457. this.myHandleId = options.myHandleId
  458. },
  459. onShow () {
  460. if (this.workOrderCode) {
  461. this.getInfo()
  462. }
  463. },
  464. methods: {
  465. handleAssign () {
  466. this.back()
  467. },
  468. getInfo () {
  469. get(
  470. this.apiUrl + '/repair/info/getWorkOrderDetail/' + this.workOrderCode
  471. ).then(res => {
  472. if (res.success) {
  473. res.data.repairInfoLogList = res.data.repairInfoLogList.reverse()
  474. res.data.repairInfoLogList = res.data.repairInfoLogList.map(n => {
  475. if (n.content) {
  476. n.content = JSON.parse(n.content)
  477. }
  478. return n
  479. })
  480. this.worksheetInfo = res.data
  481. this.workOrderType = res.data?.workOrderType
  482. this.equiCode = res.data?.repairInfo?.equiCode
  483. if(this.workOrderType.code == 10) {
  484. this.planRepair = res.data?.planRepair
  485. this.device = res.data.planRepairEqui
  486. let districtManName = res.data?.planRepair.districtManName.split(',')
  487. this.worksheetInfo.repairInfo = {
  488. repairsPerson: districtManName[0]
  489. }
  490. } else {
  491. this.getDevice()
  492. }
  493. }
  494. })
  495. },
  496. changeChartsTab (index) {
  497. this.pickTabIndex = index
  498. },
  499. // 跳转备品备件
  500. handlbpbj () {
  501. uni.navigateTo({
  502. url: `/pages/maintain_service/sparepart/sparepart?workOrderId=${this.worksheetInfo.workOrderId}&sourceId=${this.worksheetInfo.id}&sourceCode=${this.worksheetInfo.workOrderCode}`
  503. })
  504. },
  505. // 查看备品备件 详情
  506. handCkbpbj () {
  507. uni.navigateTo({
  508. url: `/pages/maintain_service/sparepart/sparepartDetail?applyOrder=${this.worksheetInfo.applyOrder}`
  509. })
  510. },
  511. // 跳转报工
  512. handlbg () {
  513. uni.navigateTo({
  514. url: `/pages/maintain_service/submitted_ministry/submitted_ministry?workOrderCode=${this.workOrderCode}&equiCode=${this.equiCode}`
  515. })
  516. },
  517. // 保修须知
  518. handleNotice() {
  519. this.noticeShow = true
  520. },
  521. agree() {
  522. this.noticeShow = false
  523. this.handleExecute()
  524. },
  525. // 执行工单
  526. handleExecute () {
  527. post(this.apiUrl + '/workOrder/repairExecute', {
  528. workOrderCode: this.worksheetInfo.workOrderCode
  529. }).then(res => {
  530. uni.showToast({
  531. icon: 'success',
  532. title: '操作成功!',
  533. duration: 2000
  534. })
  535. this.getInfo()
  536. })
  537. },
  538. // 转派
  539. handlZp () {
  540. let id = this.worksheetInfo.id
  541. this.$refs.Assign.open(id)
  542. },
  543. // 备件使用明细
  544. handlbjsymx (workOrderCode) {
  545. this.$refs.PopSparePart.open('备件使用明细', null, workOrderCode)
  546. },
  547. // 获取设备信息
  548. getDevice () {
  549. try {
  550. let par = {
  551. code: this.worksheetInfo.repairInfo.equiCode
  552. }
  553. get(this.apiUrl + '/asset/detail', par).then(res => {
  554. if (res.success) {
  555. this.device = res.data
  556. }
  557. })
  558. } catch (e) {
  559. //TODO handle the exception
  560. }
  561. },
  562. // 查看图片
  563. clickImg (urls, indexUrl) {
  564. urls = urls.map(n => {
  565. return this.apiUrl + n
  566. })
  567. wx.previewImage({
  568. urls: urls, //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了
  569. current: this.apiUrl + indexUrl, // 当前显示图片的http链接,默认是第一个
  570. success: function (res) {},
  571. fail: function (res) {},
  572. complete: function (res) {}
  573. })
  574. },
  575. // 计算实际工时
  576. timeInterval(dt1, dt2) {
  577. if (!dt1 || !dt2) {
  578. return "";
  579. }
  580. if (typeof dt1 == "string") {
  581. dt1 = new Date(dt1.replace(/-/, "/"));
  582. dt2 = new Date(dt2.replace(/-/, "/"));
  583. }
  584. var res = dt2 - dt1;
  585. if (isNaN(res)) throw Error("invalid dates arguments");
  586. let re = res / (1000 * 60 * 60);
  587. var h = parseInt(re);
  588. var m = parseInt((re - h) * 60);
  589. let result = "";
  590. if (h) {
  591. result += `${h} 小时`;
  592. }
  593. if (m) {
  594. result += `${m} 分钟`;
  595. }
  596. return result;
  597. }
  598. }
  599. }
  600. </script>
  601. <style lang="scss" scoped>
  602. .img-wrap {
  603. flex: 1;
  604. display: flex;
  605. flex-wrap: wrap;
  606. .img {
  607. width: 80px;
  608. height: 60px;
  609. margin: 5px;
  610. }
  611. }
  612. .tab-title {
  613. position: fixed;
  614. width: 100%;
  615. display: flex;
  616. justify-content: space-between;
  617. height: 82rpx;
  618. line-height: 82rpx;
  619. background-color: #ffffff;
  620. border-bottom: 1px solid #f2f2f2;
  621. z-index: 99;
  622. box-sizing: border-box;
  623. .tab-item {
  624. width: 50%;
  625. text-align: center;
  626. font-size: 32rpx;
  627. color: $uni-text-color-grey;
  628. }
  629. .tab-item.active {
  630. color: $j-primary-border-green;
  631. border-bottom: 1px solid $j-primary-border-green;
  632. }
  633. }
  634. .fixed {
  635. position: fixed;
  636. width: 100%;
  637. left: 0;
  638. }
  639. .add {
  640. bottom: 0;
  641. }
  642. .main {
  643. border-top: 10px solid #f0f0f0;
  644. margin-top: 42px;
  645. }
  646. .img-bar {
  647. padding: 10px 0;
  648. display: flex;
  649. .label {
  650. color: #999;
  651. text-align: right;
  652. max-width: 104px;
  653. font-size: 32rpx;
  654. padding: 0 15px;
  655. flex: 1;
  656. }
  657. .img-wrap {
  658. flex: 1;
  659. display: flex;
  660. flex-wrap: wrap;
  661. .img {
  662. width: 80px;
  663. height: 60px;
  664. margin: 5px;
  665. }
  666. }
  667. }
  668. .kd-baseInfo {
  669. padding: 0 32rpx;
  670. font-size: 28rpx;
  671. .kd-cell {
  672. line-height: 90rpx;
  673. border-bottom: 1px dashed #dadada;
  674. word-break: break-all;
  675. .kd-label {
  676. display: inline-block;
  677. width: 8em;
  678. font-weight: bold;
  679. }
  680. .kd-label2{
  681. display: inline-block;
  682. width: 11em;
  683. font-weight: bold;
  684. }
  685. }
  686. }
  687. .wx-wrap {
  688. .item {
  689. padding: 20rpx;
  690. font-size: 28rpx;
  691. .bh-wrap {
  692. display: flex;
  693. margin-bottom: 10rpx;
  694. justify-content: space-between;
  695. .s1 {
  696. display: flex;
  697. align-items: center;
  698. .b1 {
  699. font-size: 28rpx;
  700. }
  701. }
  702. .s2 {
  703. font-size: 28rpx;
  704. }
  705. }
  706. .title-wrap {
  707. display: flex;
  708. justify-content: space-between;
  709. border-bottom: 1px dashed #dadada;
  710. padding-bottom: 10rpx;
  711. }
  712. .bg-wrap-item {
  713. margin-top: 20rpx;
  714. .value-wrap {
  715. .text {
  716. color: #7f7f7f;
  717. }
  718. .img-wrap {
  719. margin-top: 20rpx;
  720. display: flex;
  721. .img {
  722. width: 140rpx;
  723. height: 140rpx;
  724. & + .img {
  725. margin-left: 10rpx;
  726. }
  727. }
  728. }
  729. }
  730. }
  731. }
  732. }
  733. .title-md {
  734. font-weight: bold;
  735. }
  736. .zxpg-wrap {
  737. display: flex;
  738. flex-direction: column;
  739. align-items: center;
  740. margin-top: 100rpx;
  741. .btns {
  742. font-size: 32rpx;
  743. width: 420rpx;
  744. height: 80rpx;
  745. line-height: 80rpx;
  746. text-align: center;
  747. }
  748. .zx-btn {
  749. background-color: rgba(21, 122, 44, 1);
  750. color: #ffffff;
  751. }
  752. .zp-btn {
  753. color: #169bd5;
  754. }
  755. .disabled {
  756. background-color: rgba(127, 127, 127, 1);
  757. }
  758. }
  759. .bjsymx {
  760. color: #4f7f00;
  761. padding: 20rpx 0;
  762. }
  763. .apply-box {
  764. width: 70%;
  765. margin: 10rpx auto;
  766. display: flex;
  767. align-items: center;
  768. justify-content: space-around;
  769. }
  770. </style>