index.vue 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. <template>
  2. <div>
  3. <basicDetails
  4. ref="details"
  5. :titleText="`${mainData.billno}`"
  6. :editData="mainData"
  7. :mainAreaData="mainAreaData"
  8. turnPageId="20221114135403"
  9. idname="sa_dispatchid"
  10. ownertable="sa_dispatch"
  11. tags=""
  12. :tabs="['发货明细','erp上传信息','基础信息']"
  13. @pageChange="pageChange"
  14. @onEditSuccess="queryMainData($route.query.id)">
  15. <div slot="tags">
  16. </div>
  17. <div slot="customOperation">
  18. <Edit class="inline-16" v-if="tool.checkAuth($route.name,'update') && mainData.status == '新建'" :data="mainData" @onSuccess="onSuccess" />
  19. <el-button class="inline-16" :type="mainData.status !== '复核'?'':'primary'" size="mini" v-if="tool.checkAuth($route.name,'createBill') && (mainData.status == '新建' || mainData.status == '提交' || mainData.status == '复核')" :disabled="mainData.status !== '复核'" @click="addLogistics">{{$t(`生成物流单`)}}</el-button>
  20. <confirmSelection class="inline-16" v-if="tool.checkAuth($route.name,'submit') && mainData.status == '新建'" btnTitle="提交" :disabled="mainData.status !== '新建'" btnType="primary" content="是否确定提交发货单" confirmButtonText="确定" cancelButtonText="取消" paramId="2024120915192102" idName="sa_dispatchid" @onSuccess="onSuccess"></confirmSelection>
  21. <confirmSelection class="inline-16" v-if="tool.checkAuth($route.name,'revocation') && mainData.status == '提交'" btnTitle="撤回" :disabled="mainData.status !== '提交'" btnType="primary" content="是否确定撤回发货单" confirmButtonText="确定" cancelButtonText="取消" paramId="2024120915580002" idName="sa_dispatchid" @onSuccess="onSuccess"></confirmSelection>
  22. <el-button :type="mainData.status !== '审核' && mainData.status !== '提交'?'':'primary'" class="inline-16" size="mini" v-if="tool.checkAuth($route.name,'check') && mainData.status !== '复核' && mainData.status !== '关闭'" :disabled="mainData.status !== '审核' && mainData.status !== '提交'" @click="onCheck">{{mainData.status === '审核'?$t('反审核'):mainData.status === '复核'?$t('反审核'):$t('审核')}}</el-button>
  23. <el-button style="margin-left: 0px" class="inline-16" :type="mainData.status !== '审核' && mainData.status !== '复核'?'':'primary'" size="mini" v-if="tool.checkAuth($route.name,'recheck') && mainData.status !== '关闭'" :disabled="mainData.status !== '审核' && mainData.status !== '复核'" @click="onReCheck">{{mainData.status === '复核'?$t('反复核'):$t('复核')}}</el-button>
  24. <el-button :type="mainData.status != '新建' && mainData.status != '关闭'?'':'primary'" size="mini" @click="onDel" style="margin-left: 0px" class="inline-16" :disabled="mainData.status != '新建' && mainData.status != '关闭'">{{$t('删 除')}}</el-button>
  25. </div>
  26. <div slot="slot2" >
  27. <default-info :mainData="mainData"></default-info>
  28. </div>
  29. <div slot="slot0" >
  30. <product-list ref="product" :data="mainData" @onSuccess="queryMainData"></product-list>
  31. </div>
  32. <div slot="slot1" >
  33. <erpInfo ref="erp" :data="mainData"></erpInfo>
  34. </div>
  35. </basicDetails>
  36. </div>
  37. </template>
  38. <script>
  39. import Edit from '../modules/edit'
  40. import productList from '../modules/productlist.vue'
  41. import erpInfo from '../modules/erpInfo.vue'
  42. import defaultInfo from '../modules/defaultInfo.vue'
  43. export default {
  44. name: "detail",
  45. data() {
  46. return {
  47. mainData:{},
  48. mainAreaData:{}
  49. }
  50. },
  51. components:{
  52. Edit,
  53. productList,
  54. defaultInfo,
  55. erpInfo
  56. },
  57. methods:{
  58. async queryMainData(id) {
  59. const res = await this.$api.requested({
  60. "id": "20221114135303",
  61. "version":1,
  62. "content": {
  63. "sa_dispatchid":this.$route.query.id
  64. }
  65. })
  66. if (res.data) this.mainData = res.data
  67. console.log(this.mainData)
  68. this.changeDataStructure()
  69. },
  70. changeDataStructure() {
  71. let that = this
  72. this.mainAreaData = [
  73. {
  74. label:'发货单号',
  75. value:this.mainData.billno
  76. },
  77. {
  78. label:'订单号',
  79. value:this.mainData.sonum
  80. },
  81. {
  82. label:'erp单号',
  83. value:this.mainData.erpbillno
  84. },
  85. {
  86. label:'发货日期',
  87. value:this.mainData.billdate
  88. },
  89. {
  90. label:'企业编号',
  91. value:this.mainData.agentnum
  92. },
  93. {
  94. label:'企业名称',
  95. value:this.mainData.enterprisename
  96. },
  97. {
  98. label:'项目名称',
  99. value:this.mainData.projectname
  100. },
  101. {
  102. label:'状态',
  103. value:this.$t(this.mainData.status),
  104. style:function () {
  105. let style = that.tool.getStatusColor(that.mainData.status)
  106. return style
  107. }
  108. },
  109. {
  110. label:'发货数量',
  111. value:this.mainData.qty
  112. },
  113. {
  114. label:'发货金额',
  115. value:this.mainData.sumamount ? this.tool.formatAmount(this.mainData.sumamount,2) : '--',
  116. },
  117. {
  118. label:'运费状态',
  119. value:this.$t(this.mainData.freightstatus)
  120. },
  121. {
  122. label:'订单类型',
  123. value:this.mainData.type
  124. },
  125. {
  126. label:'回签单',
  127. value:this.mainData.signbackstatus
  128. },
  129. {
  130. label:'备注',
  131. value:this.mainData.remarks
  132. },
  133. ]
  134. },
  135. // 监听切换数据,上一页,下一页
  136. pageChange (id,rowindex,tabIndex) {
  137. this.flag = false
  138. tabIndex = this.$route.query.tabIndex
  139. this.$router.replace({path:'/dispatchdetail',query:{id:id,rowindex:rowindex,tabIndex:tabIndex}})
  140. this.queryMainData(id)
  141. },
  142. onSuccess(){
  143. this.visible = false
  144. this.queryMainData(this.$route.query.id)
  145. this.$refs.product && this.$refs.product.listData()
  146. console.log('触发');
  147. this.$emit('onSuccess')
  148. },
  149. onCheck () {
  150. this.$confirm(`${this.$t(`确定`)}${this.mainData.status === '审核'?this.$t('反审核'):this.$t('审核')}${this.$t(`该发货单`)}`, this.$t('提示'), {
  151. confirmButtonText: this.$t('确定'),
  152. cancelButtonText: this.$t('取消'),
  153. type: 'warning'
  154. }).then(async () => {
  155. const res = await this.$api.requested({
  156. "id": this.mainData.status === '审核'?20221114135703:20221114135603,
  157. "version":1,
  158. "content": {
  159. "sa_dispatchid":this.$route.query.id
  160. }
  161. })
  162. this.tool.showMessage(res,()=>{
  163. this.queryMainData()
  164. this.$refs.product && this.$refs.product.listData()
  165. })
  166. }).catch(() => {
  167. this.$message({
  168. type: 'info',
  169. message: this.$t('已取消')
  170. });
  171. });
  172. },
  173. onReCheck() {
  174. this.$confirm(`${this.$t(`确定`)}${this.mainData.status === '复核'?this.$t('反复核'):this.$t('复核')}${this.$t(`该发货单`)}`, this.$t('提示'), {
  175. confirmButtonText: this.$t('确定'),
  176. cancelButtonText: this.$t('取消'),
  177. type: 'warning'
  178. }).then(async () => {
  179. const res = await this.$api.requested({
  180. "id":20221114135803,
  181. "version":1,
  182. "content": {
  183. "sa_dispatchid":this.$route.query.id,
  184. "isrecheck":this.mainData.status === '复核'?false:true
  185. }
  186. })
  187. this.tool.showMessage(res,()=>{
  188. this.queryMainData()
  189. })
  190. }).catch(() => {
  191. this.$message({
  192. type: 'info',
  193. message: this.$t('已取消')
  194. });
  195. });
  196. },
  197. async addLogistics () {
  198. const res = await this.$api.requested({
  199. "id": "20230216185104",
  200. "content": {
  201. "sa_dispatchid":this.mainData.sa_dispatchid
  202. }
  203. })
  204. this.tool.showMessage(res,()=>{
  205. let route = this.$route
  206. this.oldRoute = {path:route.path,query:route.query}
  207. this.$store.dispatch('setHistoryRouter',this.oldRoute)
  208. this.$router.replace({path:'/logisticsdetail',query:{id:res.data[0].sa_logisticsid,rowindex:res.data[0].rowindex}})
  209. })
  210. },
  211. onDel(){
  212. this.$confirm(this.$t('确定删除当前数据吗')+'?', this.$t('提示'), {
  213. confirmButtonText: this.$t('确定'),
  214. cancelButtonText: this.$t('取消'),
  215. type: 'warning'
  216. }).then(async () => {
  217. const res = await this.$api.requested({
  218. "id":20221114135503,
  219. "content":{
  220. sa_dispatchids:[this.$route.query.id]
  221. }
  222. })
  223. if (res.code === 0){
  224. this.$message.error(res.data[0].errmsg);
  225. }else {
  226. this.$message({
  227. message: this.$t('删除成功'),
  228. type: 'success'
  229. })
  230. this.$store.dispatch('changeDetailDrawer',false);
  231. }
  232. }).catch(() => {
  233. this.$message({
  234. type: 'info',
  235. message: this.$t('已取消删除')
  236. });
  237. });
  238. }
  239. },
  240. mounted () {
  241. },
  242. created() {
  243. this.queryMainData(this.$route.query.id)
  244. }
  245. }
  246. </script>
  247. <style scoped>
  248. </style>