人民医院前端

comDispatchDetail.vue 25KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806
  1. <template>
  2. <page-meta :root-font-size="getFontSizeValue"></page-meta>
  3. <view class="wrapper">
  4. <view class="detailContent">
  5. <view class="contentTable">
  6. <text class="contentTitle">工单编号:</text>
  7. <text class="contentText">{{ detailContentData.F_WorkOrderCode }}</text>
  8. <!-- <text class="textState" v-show="detailContentData.StateName">{{ detailContentData.StateName }}</text> -->
  9. </view>
  10. <view class="contentTable" v-show="detailContentData.StateName">
  11. <text class="contentTitle">工单状态:</text>
  12. <text class="textState" style="margin-left: 10px">{{
  13. detailContentData.StateName
  14. }}</text>
  15. </view>
  16. <view class="contentTable">
  17. <text class="contentTitle">工单类型:</text>
  18. <text class="contentText">{{
  19. $mHelper.findParents(
  20. orderTypeList,
  21. detailContentData.F_WorkOrderCategory
  22. )
  23. }}</text>
  24. </view>
  25. <view class="contentTable">
  26. <text class="contentTitle">申请科室:</text>
  27. <text class="contentText">{{
  28. $mHelper.findParents(departList, detailContentData.F_ApplicationDept)
  29. }}</text>
  30. </view>
  31. <view class="contentTable">
  32. <text class="contentTitle">科室位置:</text>
  33. <text class="contentText">{{ detailContentData.F_Location }}</text>
  34. </view>
  35. <view class="contentTable">
  36. <text class="contentTitle">科室电话:</text>
  37. <text class="contentText">{{ detailContentData.F_DeptPhone }}</text>
  38. </view>
  39. <view class="contentTable">
  40. <text class="contentTitle">申请时间:</text>
  41. <text class="contentText">{{ detailContentData.F_CreateTime }}</text>
  42. </view>
  43. <view class="contentTable">
  44. <text class="contentTitle">申请人员:</text>
  45. <text class="contentText">{{ detailContentData.applicantname }}</text>
  46. </view>
  47. <view class="contentTable">
  48. <text class="contentTitle">联系电话:</text>
  49. <text class="contentText" style="margin-top: -5px"
  50. >{{ detailContentData.F_Phone }}
  51. <uni-icons
  52. @click="callHandle(detailContentData.F_Phone)"
  53. class="frContentText"
  54. type="phone"
  55. size="30"
  56. ></uni-icons
  57. ></text>
  58. </view>
  59. <view class="contentTable">
  60. <view class="contentTitle">工单内容:</view>
  61. <view class="contentText">{{ detailContentData.F_Content }}</view>
  62. </view>
  63. <view class="contentTable">
  64. <text class="contentTitle">申请位置:</text>
  65. <text class="contentText">{{ detailContentData.F_Location }}</text>
  66. </view>
  67. <!-- <view class="contentTable">
  68. <text class="contentTitle">送达地点:</text>
  69. <text class="contentText">{{ detailContentData.F_ToPlace }}</text>
  70. </view> -->
  71. <!-- <view class="contentTable">
  72. <text class="contentTitle">紧急情况:</text>
  73. <text class="contentText">{{ detailContentData.F_EmergencyTypes }}</text>
  74. </view> -->
  75. <view class="contentTable">
  76. <text class="contentTitle">超时时限:</text>
  77. <text class="contentText">{{ detailContentData.GapTime }}</text>
  78. </view>
  79. <view class="contentTable">
  80. <text class="contentTitle">接单人员:</text>
  81. <text class="contentText" v-if="detailContentData.DealManName">{{
  82. detailContentData.DealManName
  83. }}</text>
  84. </view>
  85. <view class="contentTable">
  86. <text class="contentTitle">联系电话:</text>
  87. <text class="contentText" style="margin-top: -5px"
  88. >{{ detailContentData.DealManPhone }}
  89. <uni-icons
  90. @click="callHandle(detailContentData.DealManPhone)"
  91. class="frContentText"
  92. type="phone"
  93. size="30"
  94. v-if="detailContentData.DealManPhone"
  95. ></uni-icons
  96. ></text>
  97. </view>
  98. <view
  99. class="contentTable"
  100. v-show="isDD.indexOf('DD') >= 0 || isDD === 'GLY'"
  101. >
  102. <text class="contentTitle">接单时间:</text>
  103. <text class="contentText">{{ detailContentData.F_AcceptTime }}</text>
  104. </view>
  105. <view class="contentTable">
  106. <text class="contentTitle">完成时间:</text>
  107. <text class="contentText">{{ detailContentData.F_Endtime }}</text>
  108. </view>
  109. <view class="contentTable">
  110. <text class="contentTitle">完成时长:</text>
  111. <text class="contentText">{{ detailContentData.SpendTime }}</text>
  112. </view>
  113. <view class="contentTable">
  114. <text class="contentTitle">配送信息:</text>
  115. <text
  116. class="contentText"
  117. v-if="!String(this.detailContentData.PSInfo)"
  118. ></text>
  119. <div style="color: #525252">
  120. <div v-for="item in detailContentData.PSInfo">
  121. <span v-if="item.F_ToDept && item.F_ToDept != '0'"
  122. >送达科室:{{
  123. $mHelper.findParents(departList, item.F_ToDept)
  124. }}-</span
  125. >
  126. <span v-if="findIndex >= 0">{{
  127. $mHelper.findParents(orderTypeBBXXList, item.F_DicId) +
  128. "(" +
  129. item.F_Number +
  130. ")"
  131. }}</span>
  132. <span v-if="findIndex < 0">{{
  133. item.F_DicName + "(" + item.F_Number + ")"
  134. }}</span>
  135. <span v-if="item.F_IsBorrow == 1">(借)</span>
  136. <span v-if="item.F_IsBorrow == 2">(还)</span>
  137. <span v-if="item.F_PaidInQuantity"
  138. >(实收数量:{{ item.F_PaidInQuantity }})</span
  139. >
  140. <span v-else></span>
  141. </div>
  142. </div>
  143. <!-- <view class="contentText" style="" v-for="item in detailContentData.PSInfo">
  144. <text v-if="item.F_DicName">{{item.F_DicName + '('+ item.F_Number + ')'}}</text>
  145. <text v-else class="contentText"></text>
  146. </view> -->
  147. </view>
  148. <view class="contentTable">
  149. <text class="contentTitle">异常配送信息:</text>
  150. <text
  151. class="contentText"
  152. v-if="!String(this.detailContentData.SDInfo)"
  153. ></text>
  154. <div style="color: #525252">
  155. <div v-for="item in detailContentData.SDInfo">
  156. <span v-if="item.F_ToDept && item.F_ToDept != '0'"
  157. >送达科室:{{
  158. $mHelper.findParents(departList, item.F_ToDept)
  159. }}-</span
  160. >
  161. <span v-if="findIndex >= 0">{{
  162. $mHelper.findParents(orderTypeBBXXList, item.F_DicId) +
  163. "(" +
  164. item.F_Number +
  165. ")"
  166. }}</span>
  167. <span v-if="findIndex < 0">{{
  168. (item.F_DicName || "") + "(" + item.F_Number + ")"
  169. }}</span>
  170. <span v-if="item.F_IsBorrow == 1">(借)</span>
  171. <span v-if="item.F_IsBorrow == 2">(还)</span>
  172. <span v-if="item.F_PaidInQuantity"
  173. >(实收数量:{{ item.F_PaidInQuantity }})</span
  174. >
  175. <span v-else></span>
  176. </div>
  177. </div>
  178. <!-- <view class="contentText" style="" v-for="item in detailContentData.PSInfo">
  179. <text v-if="item.F_DicName">{{item.F_DicName + '('+ item.F_Number + ')'}}</text>
  180. <text v-else class="contentText"></text>
  181. </view> -->
  182. </view>
  183. <view class="contentTable" v-if="detailContentData.F_Recipient">
  184. <text class="contentTitle">接收人:</text>
  185. <text class="contentText">{{ detailContentData.F_Recipient }}</text>
  186. </view>
  187. <view class="contentTable" v-if="detailContentData.F_Recipient">
  188. <text class="contentTitle">是否异常:</text>
  189. <text class="contentText">{{
  190. detailContentData.F_IsAbnormal == 0 ? "否" : "是"
  191. }}</text>
  192. </view>
  193. <!-- <view class="contentTable" v-if="detailContentData.F_WorkOrderCodes">
  194. <text class="contentTitle">关联工单:</text>
  195. <text class="contentText">{{ detailContentData.F_WorkOrderCodes }}</text>
  196. </view> -->
  197. <view class="contentTable">
  198. <text class="contentTitle"
  199. >附&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;件:</text
  200. >
  201. <view class="contentText" style="margin-top: 10px">
  202. <view class="contentText" style="margin-top: 10px">
  203. <text v-for="item in detailContentData.FileUrl">
  204. <img
  205. :src="item.F_FileUrl"
  206. class="imgstyle"
  207. v-if="fileType.indexOf(item.F_FileType) > -1"
  208. @click="downloadFile(item.F_FileUrl)"
  209. />
  210. <img
  211. src="@/static/file.png"
  212. class="imgstyle"
  213. v-else
  214. @click="downloadFile(item.F_FileUrl)"
  215. />
  216. </text>
  217. <text v-for="item in detailContentData.DealFileUrl">
  218. <img
  219. :src="item.F_FileUrl"
  220. class="imgstyle"
  221. v-if="fileType.indexOf(item.F_FileType) > -1"
  222. @click="downloadFile(item.F_FileUrl)"
  223. />
  224. <img
  225. src="@/static/file.png"
  226. class="imgstyle"
  227. v-else
  228. @click="downloadFile(item.F_FileUrl)"
  229. />
  230. </text>
  231. <text v-for="item in detailContentData.CollectFile">
  232. <img
  233. :src="item.F_FileUrl"
  234. class="imgstyle"
  235. v-if="fileType.indexOf(item.F_FileType) > -1"
  236. @click="downloadFile(item.F_FileUrl)"
  237. />
  238. <img
  239. src="@/static/file.png"
  240. class="imgstyle"
  241. v-else
  242. @click="downloadFile(item.F_FileUrl)"
  243. />
  244. </text>
  245. </view>
  246. <!-- <uni-file-picker readonly :value="getFileData(detailContentData.FileUrl)" :imageStyles="imageStyles" file-mediatype="image"/> -->
  247. <!-- <uni-file-picker readonly :value="getFileData(detailContentData.FileUrl)" :imageStyles="imageStyles" file-mediatype="image" v-if="detailContentData.FileUrl"/> -->
  248. <!-- <uni-file-picker readonly :value="getFileData(detailContentData.DealFileUrl)" :imageStyles="imageStyles" file-mediatype="image" v-if="detailContentData.DealFileUrl"/>
  249. <uni-file-picker readonly :value="getFileData(detailContentData.CollectFile)" :imageStyles="imageStyles" file-mediatype="image" v-if="detailContentData.CollectFile"/> -->
  250. </view>
  251. </view>
  252. </view>
  253. <yiLine>
  254. <view></view>
  255. </yiLine>
  256. <view class="operationButton" v-show="orderButtonData">
  257. <!-- <view class="operationButton" > -->
  258. <view>
  259. <text class="operationButtonTitle">操作</text>
  260. <buttonsComponents
  261. class="buttons"
  262. :order-button-data="orderButtonData"
  263. :wid="workorderid"
  264. :orderType="workOrdertype"
  265. :departid="departid"
  266. :applicationDept="applicationDept"
  267. :maintenancer="
  268. $mHelper.findUserName(
  269. userCodeList,
  270. detailContentData.F_Maintenancer
  271. )
  272. "
  273. />
  274. </view>
  275. </view>
  276. <yiLine>
  277. <view></view>
  278. </yiLine>
  279. <view style="background-color: #fff; padding: 17px">
  280. <view class="segmentedControlWrapper">
  281. <uni-segmented-control
  282. :current="segmenter.current"
  283. :values="segmenter.items"
  284. @clickItem="onClickSegmentedControl"
  285. styleType="text"
  286. activeColor="#007aff"
  287. />
  288. </view>
  289. <view class="handleProcess">
  290. <view v-show="current == 0">
  291. <uni-steps
  292. :options="orderProcessDate"
  293. :steteName="'gdlc'"
  294. v-if="orderProcessDate"
  295. />
  296. <view class="contentTable noCon" v-else> 暂时无相关记录 </view>
  297. </view>
  298. <view v-show="current == 2">
  299. <view
  300. class="detailContent showType"
  301. v-for="item in evaluateDate"
  302. :key="item.F_Id"
  303. >
  304. <view class="contentTable">
  305. <text class="contentTitle">服务态度:</text>
  306. <htz-rate
  307. v-model="item.F_Attitude"
  308. :readonly="true"
  309. :size="30"
  310. :type="2"
  311. ></htz-rate>
  312. <text class="contentTitle">{{
  313. item.F_Attitude | getEvaluateFilters
  314. }}</text>
  315. </view>
  316. <view class="contentTable">
  317. <text class="contentTitle">维修质量:</text>
  318. <htz-rate
  319. v-model="item.F_Quality"
  320. :size="30"
  321. :type="2"
  322. ></htz-rate>
  323. <text class="contentTitle">{{
  324. item.F_Quality | getEvaluateFilters
  325. }}</text>
  326. </view>
  327. <view class="contentTable">
  328. <text class="contentTitle">完工时效:</text>
  329. <htz-rate
  330. v-model="item.F_Efficiency"
  331. :size="30"
  332. :type="2"
  333. ></htz-rate>
  334. <text class="contentTitle">{{
  335. item.F_Efficiency | getEvaluateFilters
  336. }}</text>
  337. </view>
  338. <view class="contentTable">
  339. <text class="contentTitle">文字评价:</text>
  340. <text class="contentText">{{ item.F_EvaluateContent }}</text>
  341. </view>
  342. </view>
  343. <view class="contentTable noCon" v-show="evaluateDate">
  344. 暂时无相关记录
  345. </view>
  346. </view>
  347. <view v-show="current == 1">
  348. <view
  349. class="detailContent showType"
  350. v-for="item in sonData"
  351. :key="item.F_Id"
  352. >
  353. <view class="contentTable">
  354. <text class="contentTitle">工单编号:</text>
  355. <text class="contentText">{{ item.F_WorkOrderCode }}</text>
  356. </view>
  357. <view class="contentTable">
  358. <text class="contentTitle">接单人员:</text>
  359. <text class="contentText"
  360. >{{ item.DealManName }}-{{ item.DealManPhone }}</text
  361. >
  362. </view>
  363. <view class="contentTable">
  364. <text class="contentTitle">接单时间:</text>
  365. <text class="contentText">{{ item.F_AcceptTime }}</text>
  366. </view>
  367. </view>
  368. <view class="contentTable noCon" v-show="!sonData"> 暂时数据 </view>
  369. </view>
  370. </view>
  371. </view>
  372. </view>
  373. </template>
  374. <script>
  375. import yiLine from "@/components/yi-line/yi-line.vue";
  376. import buttonsComponents from "pages/myTask/workOrderDetail/button/button";
  377. import pageData from "@/pages/myTask/repairList/addRepair/pageData.js";
  378. import uniSteps from "@/pages/components/steps/index.vue";
  379. import htzRate from "@/pages/components/htz-rate/htz-rate.vue";
  380. const segmenterData = {
  381. 0: ["工单流程", "关联工单", "工单评价"],
  382. 1: ["工单流程", "工单评价"],
  383. };
  384. export default {
  385. components: {
  386. yiLine,
  387. buttonsComponents,
  388. uniSteps,
  389. htzRate,
  390. },
  391. filters: {
  392. getEvaluateFilters(state) {
  393. const data = {
  394. 1: "不满意",
  395. 2: "不满意",
  396. 3: "基本满意",
  397. 4: "满意",
  398. 5: "满意",
  399. };
  400. return data[state];
  401. },
  402. },
  403. data() {
  404. return {
  405. isDD: uni.getStorageSync("roleCode"),
  406. getFontSizeValue: "1rem",
  407. active: 1,
  408. current: 0,
  409. workorderid: "", // 工单id
  410. sms_id: "", // 消息id
  411. tap: "", //工单切换
  412. roleCode: "", //角色
  413. departList: [], //部门数据
  414. orderTypeList: [], // 工单状态
  415. orderTypeBBXXList: [], //标本信息
  416. userCodeList: [], //用户信息
  417. detailContentData: {}, // 详情内容
  418. orderButtonData: [],
  419. departid: "",
  420. applicationDept: "",
  421. workOrdertype: "",
  422. sonData: [],
  423. findIndex: -1,
  424. evaluateDate: [], // 评价
  425. orderProcessDate: [], // 工单流程
  426. workOrderButton: [], // 工单按钮权限
  427. fileType: [".png", ".jpg", ".webp", ".bmp", ".jpeg"],
  428. segmenter: {
  429. current: 0,
  430. items: ["0", "1", "2"],
  431. type: "",
  432. },
  433. imageStyles: {
  434. width: 64,
  435. height: 64,
  436. border: {
  437. radius: "20%",
  438. },
  439. },
  440. isDisplay: {
  441. displaySegmentedControl: false, // 分段器
  442. },
  443. };
  444. },
  445. onLoad(optioin) {
  446. this.getFontSizeValue = uni.getStorageSync("fontSizeValue") + "rem";
  447. this.workorderid = optioin.wid;
  448. this.sms_id = optioin.sms_id;
  449. this.getGongDanType();
  450. this.getGongDanTypeBBXX();
  451. this.getDetail(0);
  452. this.getDetail(1);
  453. this.getDetail(2);
  454. this.getDetail(3);
  455. console.log(this.sms_id);
  456. console.log(optioin.buttons);
  457. if (this.sms_id) {
  458. this.getButtons();
  459. } else if (optioin.buttons) {
  460. JSON.parse(optioin.buttons).forEach((v) => {
  461. let btn = this.$mButtonConfig[v.key];
  462. if (btn != undefined) {
  463. this.orderButtonData.push(btn);
  464. }
  465. });
  466. }
  467. // pageData.getDet((res, data) => {
  468. // console.log(data)
  469. // this.departList = data
  470. // })
  471. this.departList = JSON.parse(uni.getStorageSync("deptTreeData"));
  472. pageData.getApplicant("", (res) => {
  473. this.userCodeList = res;
  474. });
  475. // this.isDisplay.displaySegmentedControl = true
  476. // this.segmenter.type = 0
  477. // this.segmenter.items = segmenterData[0]
  478. if (this.sms_id) {
  479. this.isDisplay.displaySegmentedControl = true;
  480. this.segmenter.type = 0;
  481. this.segmenter.items = ["工单流程", "关联工单", "工单评价"];
  482. this.getDetail(2);
  483. } else {
  484. this.isDisplay.displaySegmentedControl = true;
  485. this.segmenter.type = optioin.segmenter;
  486. this.segmenter.items = segmenterData[optioin.segmenter];
  487. this.getDetail(2);
  488. }
  489. this.roleCode = uni.getStorageSync("roleCode");
  490. },
  491. methods: {
  492. callHandle(phone) {
  493. if (!phone) {
  494. this.$mHelper.toast("无号码信息");
  495. return;
  496. }
  497. uni.makePhoneCall({
  498. phoneNumber: phone, //仅为示例
  499. });
  500. },
  501. getButtons() {
  502. this.orderButtonData = [];
  503. const params = {
  504. SMS_Id: this.sms_id,
  505. };
  506. this.$http.get("InternalMessages/GetButtons", params).then((res) => {
  507. if (res.state.toLowerCase() === "success") {
  508. res.rows[0].Buttons.forEach((v) => {
  509. let btn = this.$mButtonConfig[v.key];
  510. if (btn != undefined) {
  511. this.orderButtonData.push(btn);
  512. }
  513. });
  514. }
  515. });
  516. },
  517. getGongDanType() {
  518. let dataOrderType = [];
  519. const params = {
  520. pid: 0,
  521. flag: 1,
  522. };
  523. this.$http.get("GongDanType/GetList", params).then((res) => {
  524. if (res.state.toLowerCase() === "success") {
  525. this.orderTypeList = res.data;
  526. }
  527. });
  528. },
  529. getGongDanTypeBBXX() {
  530. let dataOrderType = [];
  531. const params = {
  532. pid: 0,
  533. flag: 1,
  534. };
  535. this.$http.get("GongDanType/GetBBXXList", params).then((res) => {
  536. if (res.state.toLowerCase() === "success") {
  537. this.orderTypeBBXXList = res.data;
  538. }
  539. });
  540. },
  541. getGongDanType() {
  542. let dataOrderType = [];
  543. const params = {
  544. pid: 0,
  545. flag: 1,
  546. };
  547. this.$http.get("GongDanType/GetList", params).then((res) => {
  548. if (res.state.toLowerCase() === "success") {
  549. this.orderTypeList = res.data;
  550. }
  551. });
  552. },
  553. getFileData(fileData) {
  554. let newFile = [];
  555. if (fileData && fileData.length > 0) {
  556. fileData.forEach((element, index) => {
  557. const obj = {};
  558. obj.url = element.F_FileUrl;
  559. obj.extname = element.F_FileType.split(".")[1];
  560. obj.name = element.F_FileName;
  561. newFile.push(obj);
  562. });
  563. }
  564. return newFile;
  565. },
  566. getDetail(type) {
  567. const params = {
  568. WorkOrderCode: this.workorderid,
  569. type: type,
  570. };
  571. this.$http
  572. .get("Scheduling/GetWorkOrder", params)
  573. .then((response) => {
  574. if (response.state.toLowerCase() === "success") {
  575. if (type == 0) {
  576. this.detailContentData =
  577. response.data && response.data.length > 0
  578. ? response.data[0]
  579. : {};
  580. // console.log(this.detailContentData.F_WorkOrderCategory,'88999')
  581. this.workOrdertype = this.detailContentData.F_WorkOrderCategory;
  582. this.applicationDept = this.detailContentData.F_ApplicationDept;
  583. const identification = this.$mHelper.findParents(
  584. this.orderTypeList,
  585. this.F_WorkOrderCategory
  586. );
  587. if (identification) {
  588. this.findIndex = identification.indexOf("标本");
  589. }
  590. } else if (type == 1) {
  591. this.orderProcessDate = [];
  592. response.data.forEach((v) => {
  593. this.orderProcessDate.push({
  594. F_OperationTime: v.F_OperationTime,
  595. username: v.username,
  596. F_LogContent: v.F_LogContent,
  597. });
  598. });
  599. console.log(this.orderProcessDate);
  600. } else if (type == 2) {
  601. this.evaluateDate = response.data;
  602. } else if (type == 3) {
  603. if (response.data == null) {
  604. this.segmenter.items = segmenterData[1];
  605. this.segmenter.type = "1";
  606. }
  607. this.sonData = response.data;
  608. }
  609. }
  610. })
  611. .catch((e) => {
  612. console.log(e);
  613. });
  614. },
  615. onClickSegmentedControl(e) {
  616. this.current = e.currentIndex;
  617. switch (String(e.currentIndex)) {
  618. case "0":
  619. this.tap = 1;
  620. break;
  621. case "1":
  622. this.tap = 2;
  623. break;
  624. case "2":
  625. this.tap = 3;
  626. break;
  627. }
  628. this.getDetail(this.tap);
  629. },
  630. downloadFile(url) {
  631. uni.downloadFile({
  632. url: encodeURI(url), //仅为示例,并非真实的资源
  633. success: (res) => {
  634. if (res.statusCode === 200) {
  635. uni.openDocument({
  636. filePath: res.tempFilePath,
  637. success: (res) => {},
  638. });
  639. }
  640. },
  641. });
  642. },
  643. },
  644. };
  645. </script>
  646. <style lang="scss">
  647. /deep/ .uni-file-picker[data-v-363ace0e] {
  648. display: inline-block !important;
  649. width: 20% !important;
  650. }
  651. .noCon {
  652. height: 200px;
  653. text-align: center;
  654. // font-size: 14px;
  655. color: #525252;
  656. }
  657. /deep/.segmented-control__text {
  658. font-size: 1rem;
  659. }
  660. /deep/ .set2-test {
  661. font-size: 1rem;
  662. }
  663. /deep/.set-2 .set-view .setTitle {
  664. font-size: 1rem;
  665. }
  666. /deep/.set-2 .set-view .setCon {
  667. font-size: 1rem;
  668. }
  669. .imgstyle {
  670. width: 64px;
  671. }
  672. .wrapper {
  673. // background-color: #fff;
  674. // height: 100vh;
  675. // padding: 10px 20px 0 20px;
  676. .showType {
  677. background-color: #fff;
  678. padding: 10px 13px;
  679. border-radius: 10px;
  680. box-shadow: 0px 4px 16px 0px rgba(69, 91, 99, 0.13);
  681. margin-bottom: 25px;
  682. }
  683. .detailContent {
  684. // margin: 0 0 15px 0;
  685. padding: 17px;
  686. background-color: #fff;
  687. .contentTable {
  688. margin: 0 0 10px 0;
  689. display: flex;
  690. .contentTitle {
  691. // font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';
  692. font-weight: 700;
  693. // text-align-last: justify;
  694. font-style: normal;
  695. // font-size: 14px;
  696. color: #555555;
  697. width: 34%;
  698. display: inline-block;
  699. text-align: right;
  700. }
  701. .frContentText {
  702. font-size: 25px !important;
  703. color: #1e90ff !important;
  704. margin-left: 15px !important;
  705. }
  706. .contentText {
  707. width: 66%;
  708. color: #525252;
  709. // font-size: 14px;
  710. margin-left: 10px;
  711. }
  712. .textState {
  713. // position: absolute;
  714. // right: 15px;
  715. // font-size: 12px;
  716. border: 1px solid #52c41a;
  717. padding: 2px 5px;
  718. color: #52c41a;
  719. background-color: rgba(195, 239, 161, 0.2);
  720. border-radius: 5px;
  721. }
  722. .fx {
  723. // right: 70px;
  724. border: 1px solid #ff6e54;
  725. color: #ff6e54;
  726. background-color: rgba(255, 110, 84, 0.2);
  727. margin-left: 20px;
  728. }
  729. }
  730. }
  731. .operationButton {
  732. margin: 5px 0;
  733. padding: 17px;
  734. background-color: #fff;
  735. .operationButtonTitle {
  736. font-weight: 700;
  737. }
  738. .buttons {
  739. margin: 15px 0 0 0;
  740. }
  741. }
  742. .equipmentInfo {
  743. width: 100%;
  744. margin-top: 15px;
  745. border: 1px solid rgb(229, 229, 229);
  746. box-shadow: 0px 4px 16px 0px rgba(69, 91, 99, 0.05);
  747. margin-bottom: 20px;
  748. border-radius: 5px;
  749. .trCon {
  750. width: 100%;
  751. // font-size: 14px;
  752. .tdCon {
  753. display: inline-block;
  754. padding: 10px 0px;
  755. color: rgb(102, 102, 102);
  756. width: 31%;
  757. padding-right: 5px;
  758. text-align: center;
  759. }
  760. }
  761. }
  762. .handleProcess {
  763. margin: 15px 0;
  764. .handleProcessTitle {
  765. font-weight: 700;
  766. }
  767. .handleProcessContent {
  768. margin: 8px 0 0 0;
  769. .handleProcessContentTime text {
  770. // font-size: 14px;
  771. color: #73d13d;
  772. }
  773. .handleProcessContentText text {
  774. // font-size: 14px;
  775. color: #525252;
  776. }
  777. }
  778. }
  779. }
  780. </style>