detail.vue 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. <template>
  2. <div>
  3. <basicDetails
  4. ref="details"
  5. :titleText="mainData.billno"
  6. :oldFormPath="{edit:'/HDrpManagement/serveBill/components'}"
  7. :editData="mainData"
  8. :mainAreaData="mainAreaData"
  9. turnPageId="20230206091703"
  10. idname="sa_serviceorderid"
  11. ownertable="sa_serviceorder"
  12. :delApiId="20230206091803"
  13. :statusCheck="[{key:'status',value:'待处理'},{key:'status',value:'进行中'},{key:'status',value:'提交'},{key:'status',value:'待指派'},{key:'status',value:'已完成'}]"
  14. tags=""
  15. :tabs="['详细信息','关联工单','服务商品']"
  16. @pageChange="pageChange"
  17. @onEditSuccess="queryMainData($route.query.id)">
  18. <div slot="tags">
  19. </div>
  20. <div slot="customOperation" >
  21. <Edit v-if="tool.checkAuth($route.name,'update') && mainData.status == '新建'" class="inline-16" :data="mainData" @onSuccess="queryMainData" />
  22. <changeBill v-if="mainData.status == '待指派' && tool.checkAuth($route.name,'changeBill')" class="inline-16" @onSuccess="queryMainData" :data="mainData"></changeBill>
  23. <customBtn
  24. btnName="提交"
  25. message="确认提交当前服务申请单吗?"
  26. idName="20230206101403"
  27. keyName="sa_serviceorderid"
  28. :id="$route.query.id"
  29. :paramData="[{key:'issumbit',value:1}]"
  30. @onSuccess="queryMainData"
  31. class="inline-16"
  32. v-if="mainData.status == '新建'"
  33. />
  34. <customBtn
  35. btnName="退回"
  36. message="确认退回当前服务申请单吗?"
  37. idName="20230206101403"
  38. keyName="sa_serviceorderid"
  39. :id="$route.query.id"
  40. :paramData="[{key:'issumbit',value:0}]"
  41. :dialog="true"
  42. dialogTitle="请输入退回原因"
  43. dialogKey="backreason"
  44. @onSuccess="queryMainData"
  45. class="inline-16"
  46. v-if="mainData.status == '提交'"
  47. />
  48. </div>
  49. <div slot="slot0" >
  50. <detailInfo :more="true" :data="detailInfo"></detailInfo>
  51. </div>
  52. <div slot="slot1" >
  53. <workBill ref="workBill">
  54. <!-- <template v-slot:delProduct="scope">
  55. <delete-btn nameId="20230206162003" nameKey="sa_serviceorderitemsids" :id="scope.data.sa_serviceorderid" @deleteSuccess="$refs.workBill.listData()"></delete-btn>
  56. </template> -->
  57. </workBill>
  58. </div>
  59. <div slot="slot2">
  60. <productTable ref="product">
  61. <addProduct v-if="tool.checkAuth($route.name,'serveProduct') && mainData.status == '新建'" slot="addProduct" :data="mainData" @onSuccess="$refs.product.listData()" />
  62. <template v-slot:editProduct="scope">
  63. <el-button class="inline-16" v-if="tool.checkAuth($route.name,'serveProduct') && mainData.status == '新建'" type="text" size="mini" @click="$refs.product.currentProduct=scope.data">编 辑</el-button>
  64. </template>
  65. <template v-slot:delProduct="scope">
  66. <delete-btn nameId="20230206162003" v-if="tool.checkAuth($route.name,'serveProduct') && mainData.status == '新建'" nameKey="sa_serviceorderitemsids" :id="scope.data.sa_serviceorderitemsid" @deleteSuccess="$refs.product.listData()"></delete-btn>
  67. </template>
  68. </productTable>
  69. </div>
  70. </basicDetails>
  71. </div>
  72. </template>
  73. <script>
  74. import detailInfo from '@/components/detailInfo/index'
  75. import changeBill from '../components/changeBill'
  76. import Edit from '../components/edit'
  77. import workBill from './workBill/index'
  78. import productTable from './product/index'
  79. import addProduct from './product/add'
  80. export default {
  81. name: "detail",
  82. data() {
  83. return {
  84. mainData:{},
  85. mainAreaData:{},
  86. detailInfo:[]
  87. }
  88. },
  89. components:{
  90. detailInfo,
  91. changeBill,
  92. Edit,
  93. workBill,
  94. productTable,
  95. addProduct
  96. },
  97. methods:{
  98. async queryMainData(id) {
  99. const res = await this.$api.requested({
  100. "id":20230206091603,
  101. "content": {
  102. "sa_serviceorderid": this.$route.query.id
  103. }
  104. })
  105. this.mainData = res.data
  106. console.log(this.mainData);
  107. this.changeDataStructure()
  108. },
  109. changeDataStructure() {
  110. let that = this
  111. this.mainAreaData = [
  112. {label:'单号',value:this.mainData.billno ? this.mainData.billno : ''},
  113. {label:'单据日期',value:this.mainData.billdate ? this.mainData.billdate : ''},
  114. {label:'状态',value:this.mainData.status ? this.mainData.status : '',
  115. style:function () {
  116. let style = {}
  117. switch (that.mainData.status) {
  118. case '进行中':
  119. style = {color:'#52c41a'}
  120. break;
  121. case '待处理':
  122. style = {color:'#3874f6'}
  123. break;
  124. case '新建':
  125. style = {color:'#333333'}
  126. break;
  127. case '提交':
  128. style = {color:'#3874f6'}
  129. break;
  130. case '待指派':
  131. style = {color:'#fa8c16'}
  132. break;
  133. case '已完成':
  134. style = {color:'#fa8c16'}
  135. break;
  136. default:
  137. break;
  138. }
  139. return style
  140. }
  141. },
  142. {label:'经销商编号',value:this.mainData.agentnum ? this.mainData.agentnum : ''},
  143. {label:'经销商',value:this.mainData.enterprisename ? this.mainData.enterprisename : ''},
  144. {label:'省市县',value:`${this.mainData.province}-${this.mainData.city}-${this.mainData.county}`},
  145. {label:'地址',value:this.mainData.address ? this.mainData.address : ''},
  146. {label:'关联订单',value:this.mainData.sonum ? this.mainData.sonum : ''},
  147. {label:'服务分类',value:this.mainData.servicetype ? this.mainData.servicetype : ''},
  148. {label:'服务联系人',value:this.mainData.scenecontact ? this.mainData.scenecontact : ''},
  149. {label:'联系人角色',value:this.mainData.scenecontactrole ? this.mainData.scenecontactrole : ''},
  150. {label:'服务联系电话',value:this.mainData.scenecontactphonenumber ? this.mainData.scenecontactphonenumber : ''},
  151. {label:'应用系统',value:this.mainData.class1 ? this.mainData.class1 : ''},
  152. {label:'客诉大类',value:this.mainData.class2 ? this.mainData.class2 : ''},
  153. {label:'需求服务开始日期',value:this.mainData.begdate ? this.mainData.begdate : ''},
  154. {label:'需求服务结束日期',value:this.mainData.enddate ? this.mainData.enddate : ''},
  155. {label:'申请原因',value:this.mainData.reason ? this.mainData.reason : ''},
  156. {label:'备注',value:this.mainData.remarks ? this.mainData.remarks : ''},
  157. ]
  158. this.detailInfo = [
  159. {
  160. title:'基本信息',
  161. info: [
  162. {label:'单号',value:this.mainData.billno},
  163. {label:'单据日期',value:this.mainData.billdate},
  164. {label:'状态',value:this.mainData.status},
  165. {label:'经销商编号',value:this.mainData.agentnum},
  166. {label:'经销商',value:this.mainData.enterprisename},
  167. {label:'省市县',value:`${this.mainData.province}-${this.mainData.city}-${this.mainData.county}`},
  168. {label:'关联订单',value:this.mainData.sonum},
  169. {label:'服务分类',value:this.mainData.servicetype},
  170. {label:'服务联系人',value:this.mainData.scenecontact},
  171. {label:'联系人角色',value:this.mainData.scenecontactrole},
  172. {label:'服务联系电话',value:this.mainData.scenecontactphonenumber},
  173. {label:'应用系统',value:this.mainData.class1},
  174. {label:'客诉大类',value:this.mainData.class2},
  175. {label:'申请原因',value:this.mainData.reason},
  176. {label:'需求服务开始日期',value:this.mainData.begdate},
  177. {label:'需求服务结束日期',value:this.mainData.enddate},
  178. {label:'备注',value:this.mainData.remarks ? this.mainData.remarks : ''},
  179. ]
  180. },
  181. {
  182. title:'系统信息',
  183. info: [
  184. {label:'创建人',value:this.mainData.createby},
  185. {label:'创建时间',value:this.mainData.createdate},
  186. {label:'提交人',value:this.mainData.submitby},
  187. {label:'提交时间',value:this.mainData.submitdate},
  188. ]
  189. }
  190. ]
  191. },
  192. // 监听切换数据,上一页,下一页
  193. pageChange (id,rowindex,tabIndex) {
  194. this.flag = false
  195. tabIndex = this.$route.query.tabIndex
  196. this.$router.replace({path:'/serveBillDetail',query:{id:id,rowindex:rowindex,tabIndex:tabIndex}})
  197. this.queryMainData(id)
  198. },
  199. onSuccess(){
  200. this.visible = false
  201. this.queryMainData(this.$route.query.id)
  202. this.$emit('onSuccess')
  203. }
  204. },
  205. mounted () {
  206. this.queryMainData(this.$route.query.id)
  207. },
  208. created() {
  209. }
  210. }
  211. </script>
  212. <style scoped>
  213. </style>