index.vue 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. <template>
  2. <div>
  3. <basicDetails
  4. ref="details"
  5. :titleText="`${mainData.billno}`"
  6. :editData="mainData"
  7. :mainAreaData="mainAreaData"
  8. turnPageId="20221122132804"
  9. idname="sa_logisticsid"
  10. ownertable="sa_logistics"
  11. delApiId="20221122132904"
  12. tags=""
  13. :tabs="tool.checkAuth($route.name,'erpInfoRecord')?['基础信息','物流单明细','装箱信息','物流信息','erp对接记录']:['基础信息','物流单明细','装箱信息','物流信息']"
  14. @pageChange="pageChange"
  15. @onEditSuccess="queryMainData($route.query.id)">
  16. <div slot="tags">
  17. </div>
  18. <div slot="customOperation" >
  19. <Edit class="inline-16" v-if="tool.checkAuth($route.name,'update')" :data="mainData" @onSuccess="queryMainData(),$refs.dispatch.listData()"/>
  20. <el-button type="primary" size="mini" v-if="tool.checkAuth($route.name,'confirmRec') && mainData.status =='审核'" :disabled="mainData.status == '收货'" @click="onConfimRec">{{$t(`确认收货`)}}</el-button>
  21. <el-button class="inline-16" type="primary" size="mini" v-if="tool.checkAuth($route.name,'check')" @click="onCheck" :disabled="mainData.status == '收货'">{{mainData.status === '审核'?$t('反审'):$t('审核') }}</el-button>
  22. </div>
  23. <div slot="slot0" >
  24. <defalutInfo :mainData="mainData" ref="info"></defalutInfo>
  25. </div>
  26. <div slot="slot1" >
  27. <dispatchTable ref="dispatch" @onInit="onInit" @rowClick="rowClick" :needQuery="true"></dispatchTable>
  28. <dismx ref="dismx" style="margin-top: 10px"></dismx>
  29. </div>
  30. <div slot="slot2">
  31. <addBox v-if="tool.checkAuth($route.name,'addBoxInfo') && mainData.status == '新建'" class="mt-10" @onSuccess="onBoxSuccess"></addBox>
  32. <boxlist :data="mainData" v-if="tool.checkAuth($route.name,'boxInfo') && mainData" ref="boxlist"></boxlist>
  33. <el-empty :description="$t(`暂无查询权限`)" v-else></el-empty>
  34. </div>
  35. <div slot="slot3">
  36. <courierRecords></courierRecords>
  37. </div>
  38. <div slot="slot4">
  39. <erpInfo></erpInfo>
  40. </div>
  41. </basicDetails>
  42. </div>
  43. </template>
  44. <script>
  45. import Edit from '../modules/edit'
  46. import defalutInfo from '../modules/defaultInfo.vue'
  47. import dispatchTable from '../modules/dispatchTable.vue'
  48. import dismx from '../modules/productlist.vue'
  49. import addBox from './tabs/logisticsBox/add.vue'
  50. import boxlist from './tabs/logisticsBox/logisticsBox.vue'
  51. import courierRecords from './tabs/courierRecords.vue'
  52. import erpInfo from './tabs/erpInfo.vue'
  53. export default {
  54. name: "detail",
  55. data() {
  56. return {
  57. mainData:'',
  58. mainAreaData:{}
  59. }
  60. },
  61. components:{
  62. defalutInfo,
  63. dispatchTable,
  64. dismx,
  65. addBox,
  66. boxlist,
  67. courierRecords,
  68. Edit,
  69. erpInfo
  70. },
  71. methods:{
  72. async queryMainData(id) {
  73. const res = await this.$api.requested({
  74. "id": 20221204201804,
  75. "content": {
  76. "sa_logisticsid":this.$route.query.id
  77. }
  78. })
  79. this.mainData = res.data[0]
  80. console.log(this.mainData);
  81. this.changeDataStructure()
  82. /* this.$refs.info.style(this.mainData.status)*/
  83. },
  84. changeDataStructure() {
  85. let that = this
  86. this.mainAreaData = [
  87. {
  88. label:'物流编号',
  89. value:this.mainData.billno
  90. },
  91. {
  92. label:'erp单号',
  93. value:this.mainData.erpbillno
  94. },
  95. {
  96. label:'单据日期',
  97. value:this.mainData.billdate
  98. },
  99. {
  100. label:'车牌号',
  101. value:this.mainData.carnum
  102. },
  103. {
  104. label:'物流联系人',
  105. value:this.mainData.logiscontact
  106. },
  107. {
  108. label:'物流电话',
  109. value:this.mainData.logisphone
  110. },
  111. {
  112. label:'项目名称',
  113. value:this.mainData.projectName
  114. },
  115. {
  116. label:'快递公司',
  117. value:this.mainData.logiscompname
  118. },
  119. {
  120. label:'快递单号',
  121. value:this.mainData.logisticno
  122. },
  123. {
  124. label:'运费',
  125. value:this.mainData.freightamount
  126. },
  127. {
  128. label:'收货人',
  129. value:this.mainData.name
  130. },
  131. {
  132. label:'寄件方式',
  133. value:this.mainData.paytype
  134. },
  135. {
  136. label:'状态',
  137. value:this.$t(this.mainData.status),
  138. style:function () {
  139. let style = that.tool.getStatusColor(that.mainData.status)
  140. return style
  141. }
  142. },
  143. {
  144. label:'企业编码',
  145. value:this.mainData.agentnum
  146. },
  147. {
  148. label:'企业名称',
  149. value:this.mainData.enterprisename
  150. },
  151. {
  152. label:'订单类型',
  153. value:this.mainData.type
  154. },
  155. {
  156. label:'回签单',
  157. value:this.mainData.signbackstatus
  158. },
  159. {
  160. label:'备注',
  161. value:this.mainData.remarks
  162. },
  163. ]
  164. },
  165. // 监听切换数据,上一页,下一页
  166. pageChange (id,rowindex,tabIndex) {
  167. this.flag = false
  168. tabIndex = this.$route.query.tabIndex
  169. this.$router.replace({path:'/logisticsdetail',query:{id:id,rowindex:rowindex,tabIndex:tabIndex}})
  170. this.queryMainData(id)
  171. },
  172. onSuccess(){
  173. this.visible = false
  174. this.queryMainData(this.$route.query.id)
  175. this.$emit('onSuccess')
  176. },
  177. onCheck () {
  178. this.$confirm(`${this.$t(`确定`)}${this.$t(this.mainData.status === '审核'?'反审核':'审核')}${this.$t(`该物流单`)}`, this.$t('提示'), {
  179. confirmButtonText: this.$t('确定'),
  180. cancelButtonText: this.$t('取消'),
  181. type: 'warning'
  182. }).then(async () => {
  183. const res = await this.$api.requested({
  184. "id":20221122133104,
  185. "version":1,
  186. "content": {
  187. "sa_logisticsid":this.$route.query.id
  188. }
  189. })
  190. this.tool.showMessage(res,()=>{
  191. this.queryMainData()
  192. })
  193. }).catch(() => {
  194. this.$message({
  195. type: 'info',
  196. message: this.$t('已取消')
  197. });
  198. });
  199. },
  200. onConfimRec () {
  201. this.$confirm(this.$t(`确认收货吗?`), this.$t('提示'), {
  202. confirmButtonText: this.$t('确定'),
  203. cancelButtonText: this.$t('取消'),
  204. type: 'warning'
  205. }).then(async () => {
  206. const res = await this.$api.requested({
  207. "id": "20221122133204",
  208. "content": {
  209. "sa_logisticsid":this.$route.query.id
  210. }
  211. })
  212. this.tool.showMessage(res,()=>{
  213. this.queryMainData()
  214. })
  215. }).catch(() => {
  216. this.$message({
  217. type: 'info',
  218. message: this.$t('已取消')
  219. });
  220. });
  221. },
  222. rowClick (row) {
  223. this.$refs['dismx'].listData(row.sa_dispatchid)
  224. },
  225. onBoxSuccess () {
  226. this.$refs['boxlist'].listData()
  227. },
  228. onInit (data) {
  229. this.$refs.dismx.listData(data.sa_dispatchid)
  230. }
  231. },
  232. mounted () {
  233. this.queryMainData(this.$route.query.id)
  234. },
  235. created() {
  236. }
  237. }
  238. </script>
  239. <style scoped>
  240. </style>