_fdid.vue 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. <template>
  2. <div class="order-info">
  3. <div class="container">
  4. <div class="order-title">
  5. <div class="title-left">
  6. <span>园区服务</span> &gt;
  7. <span>历史服务信息</span> &gt;
  8. <span>订单号:{{ formAttr.rp_code }}</span>
  9. </div>
  10. <div class="title-right">
  11. <a :href="'/repairs/' + $route.params.id + '/historicalInfo'"><i class="fa fa-history"/>历史服务申请</a>
  12. </div>
  13. </div>
  14. <div class="order-flow">
  15. <ul class="list-inline">
  16. <li v-for="item in processList">
  17. <i class="fa fa-file-text-o" v-if="item.time"/>
  18. <span v-if="item.time">{{ item.status }}</span>
  19. <span v-if="item.time">{{ item.time }}</span>
  20. </li>
  21. </ul>
  22. </div>
  23. <div class="order-form">
  24. <form class="form-horizontal" v-for="item in formData.formconfigs">
  25. <div class="form-group" v-if="item.FD_TYPE === 'SS'">
  26. <div class="col-xs-2 input-label">{{ item.FD_CAPTION }}:</div>
  27. <div class="col-xs-10" >
  28. <input type="text" class="form-control" :placeholder="formAttr[item.FD_FIELD]" disabled>
  29. </div>
  30. </div>
  31. <div class="form-group" v-if="item.FD_TYPE === 'CBG'">
  32. <div class="col-xs-2 input-label">{{ item.FD_CAPTION }}:</div>
  33. <div class="col-xs-10">
  34. <label class="checkbox-inline" v-for="attr in item.FD_LOGICTYPE.split(';')">
  35. <input type="checkbox" disabled :value="attr" :name="item.FD_CAPTION" :checked="formAttr[item.FD_FIELD] ? formAttr[item.FD_FIELD].search(attr)>=0 : false">{{ attr }}
  36. </label>
  37. </div>
  38. </div>
  39. <div class="form-group" v-if="item.FD_TYPE === 'D'">
  40. <div class="col-xs-2 input-label">{{ item.FD_CAPTION }}:</div>
  41. <div class="col-xs-10" >
  42. <el-date-picker
  43. type="datetime"
  44. readonly
  45. :placeholder="formAttr[item.FD_FIELD]"
  46. value-format="yyyy-MM-dd HH-mm-ss"/>
  47. </div>
  48. </div>
  49. <div class="form-group" v-if="item.FD_TYPE === 'FF'">
  50. <div class="col-xs-2 input-label">{{ item.FD_CAPTION }}:</div>
  51. <div class="col-xs-10" style="padding-top:20px;">
  52. <div class="file-box">+
  53. <!--<img src="" style="width:120px; height:120px;">-->
  54. </div>
  55. <!--<div class="file-title">-->
  56. <!--<p>上传文档说明: </p>-->
  57. <!--<span>为方便物业维修师傅上门服务,您可以在此上传需要维修的图片, 文件大小不超过3M</span>-->
  58. <!--</div>-->
  59. </div>
  60. </div>
  61. <div class="form-group" v-if="item.FD_TYPE === 'RG'">
  62. <div class="col-xs-2 input-label">{{ item.FD_CAPTION }}:</div>
  63. <div class="col-xs-10">
  64. <label class="radio-inline" v-for="attr in item.FD_LOGICTYPE.split(';')">
  65. <input type="radio" disabled name="item.FD_CAPTION" :value="attr" v-model="formAttr[item.FD_FIELD]" :checked="attr===formAttr[item.FD_FIELD]">{{ attr }}
  66. </label>
  67. </div>
  68. </div>
  69. </form>
  70. </div>
  71. </div>
  72. </div>
  73. </template>
  74. <script>
  75. export default {
  76. name: 'HistoricalInfoId',
  77. layout: 'town',
  78. data () {
  79. return {
  80. // order_id: this.route.params.fdid
  81. }
  82. },
  83. fetch ({ store, route }) {
  84. return Promise.all([
  85. store.dispatch('loadFormData', { serve_id: route.params.id, id: route.params.fdid, client_type: 'cc', cityId: store.state.option.user.data.currentCity ? store.state.option.user.data.currentCity.id : null }),
  86. store.dispatch('loadServiceProcess', { serve_id: route.params.id, id: route.params.fdid, client_type: 'cc', cityId: store.state.option.user.data.currentCity ? store.state.option.user.data.currentCity.id : null })
  87. ])
  88. },
  89. computed: {
  90. formData () {
  91. return this.$store.state.formConfig.formData.data.datas
  92. },
  93. formAttr () {
  94. return this.formData.formdata[0]
  95. },
  96. processList () {
  97. return this.$store.state.serviceProcess.processInfo.data.process
  98. }
  99. }
  100. }
  101. </script>
  102. <style scoped>
  103. .order-info{
  104. padding-top:90px;
  105. padding-bottom:40px;
  106. color:#333;
  107. background: #fff;
  108. }
  109. .container{
  110. width:1180px;
  111. padding:0 10px;
  112. }
  113. .order-info .order-title{
  114. width:100%;
  115. display:inline-flex;
  116. justify-content:space-between;
  117. }
  118. .order-info .order-title .title-left span{
  119. margin:0 2px;
  120. }
  121. .order-info .order-title .title-left span:last-child{
  122. color:#d82128;
  123. }
  124. .order-info .order-title .title-right a{
  125. color:#333;
  126. }
  127. .order-info .order-title .title-right a i{
  128. color:#5280e3;
  129. margin-right:10px;
  130. }
  131. .order-info .order-title .title-right a:hover{
  132. cursor:pointer;
  133. color:#d82128;
  134. }
  135. .order-info .order-flow{
  136. padding:55px 10px;
  137. }
  138. .order-info .order-flow .list-inline{
  139. display: inline-flex;
  140. justify-content: space-between;
  141. width:100%;
  142. }
  143. .order-info .order-flow .list-inline li{
  144. width:80px;
  145. height:160px;
  146. text-align: center;
  147. }
  148. .order-info .order-flow .list-inline li i{
  149. display: block;
  150. width:80px;
  151. height:80px;
  152. border-radius: 50%;
  153. font-size: 40px;
  154. line-height: 80px;
  155. color:#fff;
  156. margin-bottom:5px;
  157. }
  158. .order-info .order-flow .list-inline li:nth-child(1) i{
  159. background: #62cde0;
  160. }
  161. .order-info .order-flow .list-inline li:nth-child(2) i{
  162. background: #62afe0;
  163. }
  164. .order-info .order-flow .list-inline li:nth-child(3) i{
  165. background: #6289e0;
  166. }
  167. .order-info .order-flow .list-inline li:nth-child(4) i{
  168. background: #8662e0;
  169. }
  170. .order-info .order-flow .list-inline li:nth-child(5) i{
  171. background: #c162e0;
  172. }
  173. .order-info .order-flow .list-inline li:nth-child(6) i{
  174. background: #e062a3;
  175. }
  176. .order-info .order-flow .list-inline li span{
  177. display:block;
  178. font-size: 12px;
  179. line-height: 25px;
  180. }
  181. .order-info .order-form{
  182. border:1px solid #e6e6e6;
  183. margin-bottom:5px;
  184. padding:30px 50px 0 30px;
  185. min-height:200px;
  186. }
  187. .order-info .order-form .input-label{
  188. line-height: 34px;
  189. font-size: 14px;
  190. color:#666;
  191. text-align: right;
  192. }
  193. .order-info .order-form .checkbox-inline{
  194. margin-right:10px;
  195. }
  196. .order-info .order-form .radio-inline{
  197. margin-right:10px;
  198. }
  199. .order-info .order-form .file-box
  200. {
  201. display: inline-block;
  202. position: relative;
  203. width: 120px;
  204. height: 120px;
  205. line-height: 100px;
  206. text-align: center;
  207. cursor: pointer;
  208. overflow: hidden;
  209. z-index: 1;
  210. font-size: 120px;
  211. border:1px solid #cbcbcb;
  212. border-radius:5px;
  213. color:#cbcbcb;
  214. }
  215. .order-info .order-form .file-box input
  216. {
  217. position: absolute;
  218. width: 120px;
  219. height: 120px;
  220. opacity: 0;
  221. filter: "alpha(opacity=0)";
  222. filter: alpha(opacity=0);
  223. -moz-opacity: 0;
  224. left: 0px;
  225. top: 0px;
  226. cursor: pointer;
  227. z-index: 2;
  228. }
  229. </style>