index.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <template>
  2. <zj-page-container v-if="orderInfo">
  3. <zj-page-fill class="neibuview">
  4. <zj-form-container
  5. ref="formRef"
  6. :form-data="orderInfo"
  7. :form-rules="formRules"
  8. :form-attributes="{ size: 'mini' }"
  9. >
  10. <!-- 派工信息 创建不需要 -->
  11. <zj-form-module
  12. v-if="id"
  13. title="派工信息"
  14. label-width="100px"
  15. :form-data="orderInfo"
  16. :form-items="dispatchInfo"
  17. >
  18. <div slot="internal-bottom" style="text-align: right">
  19. <copy-info
  20. text="复制工单信息"
  21. columnCopyClass="columnCopyClasslinonnoin"
  22. :info="dispatchInfo"
  23. :order-info="orderInfo"
  24. />
  25. </div>
  26. <div slot="right" style="width: 55%; position: relative">
  27. <div class="pgxxTable">
  28. <zj-table
  29. :columns="logColumns"
  30. :table-data="logList"
  31. :table-attributes="{ height: '100%', border: true }"
  32. />
  33. </div>
  34. </div>
  35. </zj-form-module>
  36. <!-- 基本信息 -->
  37. <zj-form-module title="基本信息" :form-data="orderInfo" :form-items="basicInfo" />
  38. <!-- 服务信息 -->
  39. <zj-form-module title="服务信息" label-width="140px" :form-data="orderInfo" :form-items="serviceInfo" />
  40. <!-- 产品信息 -->
  41. <zj-form-module
  42. title="产品信息"
  43. :form-data="orderInfo"
  44. :form-items="workOrderType == 4 ? product_wb : product"
  45. />
  46. <!-- 其它信息 -->
  47. <!-- <zj-form-module title="其它信息" :form-data="orderInfo" :form-items="otherInfo" /> -->
  48. <!-- 派单信息 -->
  49. <zj-form-module title="派单信息" label-width="100px" :form-data="orderInfo" :form-items="pandanxinxi" />
  50. </zj-form-container>
  51. </zj-page-fill>
  52. <!-- 操作按钮 -->
  53. <div>
  54. <div style="box-sizing: border-box; padding: 10px 10px 0" v-if="id">
  55. <!-- 关闭 -->
  56. <!-- <close-button /> -->
  57. <!-- 1,保存 -->
  58. <commitSave v-if="~btnRestrict.indexOf(1)" :orderInfo="orderInfo" :orderType="orderType" />
  59. <!-- 2,过程反馈 -->
  60. <processFeedback
  61. v-if="~btnRestrict.indexOf(2)"
  62. resultCodeName="过程反馈"
  63. :orderInfo="orderInfo"
  64. :orderType="orderType"
  65. />
  66. <!-- 3,设为异常 -->
  67. <abnormal v-if="~btnRestrict.indexOf(3)" :orderInfo="orderInfo" :orderType="orderType" />
  68. <!-- 4,加急 -->
  69. <urgent v-if="~btnRestrict.indexOf(4)" :orderInfo="orderInfo" :orderType="orderType" />
  70. <!-- 5,不加急 -->
  71. <unurgent v-if="~btnRestrict.indexOf(5)" :orderInfo="orderInfo" :orderType="orderType" />
  72. <!-- 6,取消工单 -->
  73. <cancelOrder v-if="~btnRestrict.indexOf(6)" :orderInfo="orderInfo" :orderType="orderType" />
  74. <!-- 7,回访 -->
  75. <processFeedback
  76. v-if="~btnRestrict.indexOf(7)"
  77. resultCodeName="回访"
  78. resultCode="回访"
  79. :orderInfo="orderInfo"
  80. :orderType="orderType"
  81. />
  82. <!-- 8,新建工单 -->
  83. <!-- 9,工单驳回 -->
  84. <orderReject v-if="~btnRestrict.indexOf(9)" :orderInfo="orderInfo" :orderType="orderType" />
  85. <!-- 10,激活工单 -->
  86. <activateOrder v-if="~btnRestrict.indexOf(10)" :orderInfo="orderInfo" :orderType="orderType" />
  87. <!-- 21,总部下载 -->
  88. <orderBaseDow v-if="orderInfo && orderInfo.isImportExcel" :orderInfo="orderInfo" :orderType="orderType" />
  89. <!-- <cloneWorkOrderBtn v-if="~btnRestrict.indexOf(20)" :orderInfo="orderInfo" :orderType="orderType" /> -->
  90. </div>
  91. <div style="box-sizing: border-box; padding: 10px 10px 0" v-else>
  92. <!-- 关闭 -->
  93. <close-button />
  94. <!-- 1,下派服务单 -->
  95. <commitSave :orderInfo="orderInfo" :orderType="orderType" />
  96. </div>
  97. </div>
  98. </zj-page-container>
  99. </template>
  100. <script>
  101. import workOrderLogic from './mixins/workOrderLogic.js'
  102. import basicInfo from './mixins/basicInfo.js'
  103. import dispatchInfo from './mixins/dispatchInfo.js'
  104. import otherInfo from './mixins/otherInfo.js'
  105. import productColumns from './mixins/productColumns.js'
  106. import wb_productColumns from './mixins/wb_productColumns.js'
  107. import serviceInfo from './mixins/serviceInfo.js'
  108. import pandanxinxi from './mixins/pandanxinxi.js'
  109. import copyInfo from './buttons/copyInfo.vue'
  110. import closeButton from './buttons/closeButton.vue'
  111. import commitSave from './buttons/commitSave.vue'
  112. import urgent from './buttons/urgent.vue'
  113. import unurgent from './buttons/unurgent.vue'
  114. import abnormal from './buttons/abnormal.vue'
  115. import cloneWorkOrderBtn from './buttons/cloneWorkOrder.vue'
  116. import processFeedback from './buttons/processFeedback.vue'
  117. import cancelOrder from './buttons/cancelOrder.vue'
  118. import orderReject from './buttons/orderReject.vue'
  119. import activateOrder from './buttons/activateOrder.vue'
  120. import orderBaseDow from './buttons/orderBaseDow.vue'
  121. export default {
  122. components: {
  123. copyInfo,
  124. closeButton,
  125. commitSave,
  126. urgent,
  127. unurgent,
  128. abnormal,
  129. processFeedback,
  130. cancelOrder,
  131. orderReject,
  132. activateOrder,
  133. cloneWorkOrderBtn,
  134. orderBaseDow
  135. },
  136. mixins: [
  137. workOrderLogic,
  138. basicInfo,
  139. dispatchInfo,
  140. otherInfo,
  141. productColumns,
  142. wb_productColumns,
  143. serviceInfo,
  144. pandanxinxi
  145. ],
  146. methods: {
  147. allVerify(cb) {
  148. this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
  149. cb && cb(valid, invalidFields, errLabels)
  150. })
  151. },
  152. appointVerify(arr, cb) {
  153. this.$refs.formRef.validateField(arr, (valid, invalidFields, errLabels) => {
  154. cb && cb(valid, invalidFields, errLabels)
  155. })
  156. }
  157. }
  158. }
  159. </script>
  160. <style lang="scss" scoped>
  161. .neibuview {
  162. box-sizing: border-box;
  163. padding-left: 16px;
  164. ::v-deep & > .zj-page-fill-scroll {
  165. box-sizing: border-box;
  166. padding-right: 16px;
  167. & > div:nth-child(1) {
  168. margin-top: 20px;
  169. }
  170. }
  171. }
  172. .pgxxTable {
  173. position: absolute;
  174. top: 0;
  175. bottom: 0;
  176. left: 0;
  177. right: 0;
  178. }
  179. .withinLine {
  180. display: inline-block;
  181. ::v-deep .el-button {
  182. margin-left: 0;
  183. margin-right: 10px;
  184. margin-bottom: 10px;
  185. }
  186. }
  187. .redbordererr {
  188. ::v-deep .el-form-item {
  189. margin: 0 !important;
  190. overflow: hidden;
  191. }
  192. }
  193. </style>