institution.vue 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. <!-- @format -->
  2. <template>
  3. <view class="container">
  4. <view style="margin-top: 15rpx">
  5. <view class="content-header">
  6. <view class="content">
  7. <view style="font-size: 28rpx" class="title">检定类型</view>
  8. <view style="font-size: 28rpx">{{
  9. checkMethod == "1" ? "外检" : "送检"
  10. }}</view>
  11. </view>
  12. <view class="content">
  13. <view style="font-size: 28rpx" class="title">申请检定器具</view>
  14. <view style="font-size: 28rpx">{{ danwei }}</view>
  15. </view>
  16. <view class="content">
  17. <view class="title">申请人</view>
  18. <view>{{ applyPeople }}</view>
  19. </view>
  20. <view class="content">
  21. <view style="font-size: 28rpx" class="title">提交时间</view>
  22. <view style="font-size: 28rpx">{{ createTime }}</view>
  23. </view>
  24. <view class="content">
  25. <view style="font-size: 28rpx" class="title">申请人手机号</view>
  26. <view style="font-size: 28rpx">{{ userMobile }}</view>
  27. </view>
  28. </view>
  29. <u-divider
  30. style="padding: 0 30rpx"
  31. :dashed="true"
  32. textSize="28rpx"
  33. text="检定机构任务单"
  34. textColor="#2979ff"
  35. lineColor="#2979ff"
  36. ></u-divider>
  37. <view v-if="dataList.length">
  38. <view
  39. @click="cchandleDetails(item)"
  40. v-for="item in dataList"
  41. :key="item"
  42. class="content-header"
  43. style="height: 200rpx"
  44. >
  45. <view v-if="item.rollbacked == '1'"
  46. class="rightTipc"
  47. :style="{
  48. background: '#fa3534',
  49. }"
  50. >已撤回</view
  51. >
  52. <view
  53. class="swTipc"
  54. v-if="item.type == '1'"
  55. ><image
  56. style="height: 100rpx"
  57. :src="baseUrl + '/ruoyi/sw.png'"
  58. mode=""
  59. >
  60. </image
  61. style="height: 100rpx"></view
  62. >
  63. <view @click="detailsList(item)" style="height: 140rpx" class="">
  64. <view style="display: flex; line-height: 80rpx">
  65. <view
  66. style="color: black; font-size: 32rpx; font-weight: 700"
  67. class="message"
  68. >
  69. {{ item.organizationName }}
  70. </view>
  71. </view>
  72. <view style="display: flex; line-height: 40rpx">
  73. <view style="font-size: 28rpx; color: #929292" class="title"
  74. >任务单编号:</view
  75. >
  76. <view style="color: red; font-size: 28rpx" class="message">
  77. {{ item.number }}
  78. </view>
  79. </view>
  80. <view style="display: flex; line-height: 40rpx">
  81. <view style="font-size: 28rpx; color: #929292" class="title"
  82. >单位联系电话:</view
  83. >
  84. <view
  85. style="color: red; font-size: 28rpx; padding-bottom: 15rpx"
  86. class="message"
  87. >
  88. {{ item.checkOrgPhone }}
  89. </view>
  90. </view>
  91. </view>
  92. </view>
  93. </view>
  94. <view v-else style="height: 200rpx">
  95. <u-empty mode="data" text="当前没有机构任务单"> </u-empty>
  96. </view>
  97. </view>
  98. <view style="height: 100rpx"></view>
  99. </view>
  100. </template>
  101. <script>
  102. import { orderApplyList } from "@/api/verification";
  103. import { useDict, paraseDict } from "@/utils/index";
  104. export default {
  105. data() {
  106. return {
  107. baseUrl: this.$baseUrl,
  108. checkMethod: null,
  109. recordColor: {
  110. 已撤回: "#fa3534",
  111. 已接收: "#2979ff",
  112. 待提交: "#2979ff",
  113. 备案中: "#2979ff",
  114. 已拒绝: "#fa3534",
  115. 勿备案: "#fa3534",
  116. 未备案: "#909399",
  117. 免备案: "#909399",
  118. 已退回: "#fa3534",
  119. },
  120. record: [], //备案字典
  121. dataList: [],
  122. applyPeople: "",
  123. danwei: "",
  124. userMobile: "",
  125. createTime: "",
  126. activeContent: "新建检定申请",
  127. applyId: null,
  128. tabsList: [
  129. {
  130. name: "新建检定申请",
  131. },
  132. {
  133. name: "我的检定申请",
  134. },
  135. ],
  136. };
  137. },
  138. onShow() {
  139. orderApplyList(this.applyId).then((res) => {
  140. this.dataList = res.data;
  141. });
  142. },
  143. onLoad(options) {
  144. useDict("ejian_instrFillingStatus").then((res) => {
  145. this.record = res;
  146. });
  147. this.applyId = options.id;
  148. this.applyPeople = options.applypeople;
  149. this.danwei = options.danwei;
  150. this.userMobile = options.userMobile;
  151. this.createTime = options.createTime;
  152. this.checkMethod = options.checkMethod;
  153. orderApplyList(options.id).then((res) => {
  154. this.dataList = res.data;
  155. });
  156. },
  157. computed: {
  158. recordStatus() {
  159. return (row) => {
  160. return paraseDict(this.record, row);
  161. };
  162. },
  163. },
  164. methods: {
  165. detailsList(item) {
  166. uni.navigateTo({
  167. url:
  168. "/pages/verification/utensilList?id=" +
  169. item.id +
  170. "&rollbackDisabled=" +
  171. item.rollbackDisabled +
  172. "&rollbacked=" +
  173. item.rollbacked,
  174. success: (res) => {},
  175. fail: () => {},
  176. complete: () => {},
  177. });
  178. },
  179. equipmentDetails() {
  180. uni.navigateTo({
  181. url: "/pages/assay/equipmentDetails",
  182. success: (res) => {},
  183. fail: () => {},
  184. complete: () => {},
  185. });
  186. },
  187. handleChange(row) {
  188. this.activeContent = row.name;
  189. },
  190. handleCurrentForm() {},
  191. handleVerDetails() {
  192. uni.navigateTo({
  193. url: "/pages/verification/details",
  194. success: (res) => {},
  195. fail: () => {},
  196. complete: () => {},
  197. });
  198. },
  199. },
  200. };
  201. </script>
  202. <style lang="scss" scoped>
  203. .rightTipc {
  204. position: absolute;
  205. top: 17rpx;
  206. right: -37rpx;
  207. text-align: center;
  208. font-size: 26rpx;
  209. height: 50rpx;
  210. line-height: 50rpx;
  211. width: 160rpx;
  212. transform: rotateZ(45deg);
  213. color: #fff;
  214. background: #2979ff;
  215. box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
  216. }
  217. .swTipc {
  218. position: absolute;
  219. top: 50rpx;
  220. right: 80rpx;
  221. text-align: center;
  222. font-size: 26rpx;
  223. height: 50rpx;
  224. line-height: 50rpx;
  225. width: 160rpx;
  226. }
  227. .submitBtn {
  228. width: 100%;
  229. background: #fff;
  230. padding: 15rpx 0;
  231. position: fixed;
  232. bottom: 0;
  233. }
  234. ::v-deep .u-text__value--content {
  235. margin-bottom: 10rpx;
  236. }
  237. ::v-deep .u-steps-item__line--column {
  238. height: 50rpx !important;
  239. top: 70rpx;
  240. }
  241. ::v-deep .u-steps-item__content--column {
  242. margin-left: 40rpx !important;
  243. }
  244. ::v-deep .u-steps-item__wrapper__circle {
  245. width: 60rpx;
  246. height: 60rpx;
  247. }
  248. ::v-deep .u-steps-item--column {
  249. padding-bottom: 46rpx;
  250. }
  251. .process {
  252. width: 95%;
  253. border-radius: 6px;
  254. background: #fff;
  255. margin: 0rpx auto 30rpx;
  256. padding: 20rpx 30rpx 20rpx;
  257. height: 650rpx;
  258. }
  259. .content-header {
  260. width: 95%;
  261. border-radius: 6px;
  262. background: #fff;
  263. margin: 0rpx auto 20rpx;
  264. padding: 20rpx 30rpx 20rpx;
  265. position: relative;
  266. overflow: hidden;
  267. .rightTipc {
  268. position: absolute;
  269. top: 17rpx;
  270. right: -37rpx;
  271. text-align: center;
  272. font-size: 26rpx;
  273. height: 50rpx;
  274. line-height: 50rpx;
  275. width: 160rpx;
  276. transform: rotateZ(45deg);
  277. color: #fff;
  278. background: #2979ff;
  279. box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
  280. }
  281. .content {
  282. border-bottom: 1px solid rgb(242, 242, 242);
  283. padding: 24rpx 0;
  284. display: flex;
  285. justify-content: space-between;
  286. }
  287. .content:last-child {
  288. border-bottom: none;
  289. }
  290. .passIcon {
  291. position: absolute;
  292. top: 20rpx;
  293. right: 40rpx;
  294. }
  295. .title {
  296. font-size: 26rpx;
  297. color: black;
  298. letter-spacing: 3rpx;
  299. }
  300. .message {
  301. font-size: 26rpx;
  302. color: rgb(146, 146, 146);
  303. }
  304. }
  305. .container {
  306. height: 100vh;
  307. background: rgb(243, 244, 249);
  308. padding: 0rpx 0 110rpx;
  309. .contentItems {
  310. width: 95%;
  311. border-radius: 6px;
  312. background: #fff;
  313. margin: 0rpx auto 20rpx;
  314. padding: 10rpx 30rpx 20rpx;
  315. .content {
  316. border-bottom: 1px solid rgb(242, 242, 242);
  317. padding: 24rpx 0;
  318. display: flex;
  319. justify-content: space-between;
  320. }
  321. .content:last-child {
  322. border-bottom: none;
  323. }
  324. .title {
  325. font-size: 26rpx;
  326. color: black;
  327. letter-spacing: 3rpx;
  328. }
  329. .message {
  330. font-size: 26rpx;
  331. color: rgb(146, 146, 146);
  332. }
  333. }
  334. }
  335. </style>