index.vue 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. <template>
  2. <div>
  3. <basicDetails
  4. ref="details"
  5. :titleText="`${mainData.sonum}`"
  6. :oldFormPath="{edit:'HDrpManagement/orderManage/modules'}"
  7. :editData="mainData"
  8. :mainAreaData="mainAreaData"
  9. turnPageId="20221111145202"
  10. idname="sa_orderid"
  11. ownertable="sa_order"
  12. delApiId="20221108152102"
  13. tags=""
  14. :statusCheck="[{key:'status',value:'审核'},{key:'status',value:'提交'},{key:'status',value:'关闭'}]"
  15. :tabs="['基本信息','订单明细','订单进度','居间费明细']"
  16. @pageChange="pageChange"
  17. @onEditSuccess="queryMainData($route.query.id)">
  18. <div slot="customOperation" class="inline-16">
  19. <el-button :disabled="mainData.status !== '交期待确认'" class="inline-16" type="primary" size="mini" @click="confirmdate">确认交期</el-button>
  20. <confirmDate class="inline-16" :data="mainData" @onSuccess="queryMainData"></confirmDate>
  21. <el-button v-if="tool.checkAuth($route.name,'examine')" :disabled="mainData.status !== '提交' && mainData.status !== '交期确认'" type="primary" size="mini" @click="onSubmit('审核')">审 核</el-button>
  22. <el-button v-if="tool.checkAuth($route.name,'examine')" :disabled="mainData.status !== '审核'" type="primary" size="mini" @click="onReturnCheck">反审核</el-button>
  23. <el-button v-if="tool.checkAuth($route.name,'reback')" :disabled="mainData.status !== '提交' && mainData.status !== '交期待确认'" type="primary" size="mini" @click="dialogVisible = true">退 回</el-button>
  24. <el-button v-if="tool.checkAuth($route.name,'submit')" :disabled="mainData.status !== '新建'" type="primary" size="mini" @click="onSubmit('提交')">提 交</el-button>
  25. <el-button v-if="tool.checkAuth($route.name,'close')" :disabled="mainData.status !== '审核'" type="primary" size="mini" @click="closeOrder">关 闭</el-button>
  26. </div>
  27. <div slot="slot0" >
  28. <default-info :mainData="mainData"></default-info>
  29. </div>
  30. <div slot="slot1" >
  31. <product-list ref="prod"></product-list>
  32. </div>
  33. <div slot="slot2" >
  34. <!-- <product-list ref="prod"></product-list> -->
  35. </div>
  36. <div slot="slot3" >
  37. <rebat></rebat>
  38. </div>
  39. </basicDetails>
  40. <el-dialog append-to-body title="退回原因" :visible.sync="dialogVisible" width="400px">
  41. <el-input v-model="backreason" type="textarea" placeholder="请输入退回原因"></el-input>
  42. <span slot="footer" class="dialog-footer">
  43. <el-button @click="dialogVisible = false" size="small">取 消</el-button>
  44. <el-button type="primary" @click="onRebanck" size="small">确 定</el-button>
  45. </span>
  46. </el-dialog>
  47. </div>
  48. </template>
  49. <script>
  50. import defaultInfo from './tabs/defaultInfo.vue';
  51. import productList from './tabs/productlist.vue'
  52. import confirmDate from '../modules/confirmDate.vue'
  53. import rebat from './tabs/rebatesettlement.vue'
  54. export default {
  55. name: "detail",
  56. data() {
  57. return {
  58. mainData:{},
  59. mainAreaData:{},
  60. backreason:'',
  61. dialogVisible:false
  62. }
  63. },
  64. components:{
  65. defaultInfo,
  66. productList,
  67. confirmDate,
  68. rebat
  69. },
  70. methods:{
  71. async queryMainData(id) {
  72. const res = await this.$api.requested({
  73. "id":'20221108151302',
  74. "content": {
  75. "sa_orderid": this.$route.query.id
  76. }
  77. })
  78. this.mainData = res.data
  79. this.changeDataStructure()
  80. },
  81. changeDataStructure() {
  82. this.mainAreaData = [
  83. {
  84. label:'订单状态',
  85. value:this.mainData.status
  86. },
  87. {
  88. label:'订单类型',
  89. value:this.mainData.type
  90. },
  91. {
  92. label:'明细分类',
  93. value:this.mainData.typemx
  94. },
  95. {
  96. label:'单据日期',
  97. value:this.mainData.billdate
  98. },
  99. {
  100. label:'企业名称',
  101. value:this.mainData.enterprisename
  102. },
  103. {
  104. label:'订单总金额',
  105. value:this.mainData.defaultamount
  106. },
  107. {
  108. label:'折后总金额',
  109. value:this.mainData.amount
  110. },
  111. {
  112. label:'合计数量',
  113. value:this.mainData.qty
  114. },
  115. {
  116. label:'品牌',
  117. value:this.mainData.brandname
  118. },
  119. {
  120. label:'领域',
  121. value:this.mainData.tradefield
  122. },
  123. {
  124. label:'领域明细',
  125. value:this.mainData.tradefieldmx
  126. },
  127. {
  128. label:'评审类型',
  129. value:this.mainData.reviewtype
  130. },
  131. {
  132. label:'业务员',
  133. value:this.mainData.saler_name
  134. },
  135. {
  136. label:'项目信息',
  137. value:this.mainData.contract_title
  138. },
  139. {
  140. label:'备注',
  141. value:this.mainData.remarks
  142. },
  143. {
  144. label:'退回原因',
  145. value:this.mainData.backreason
  146. }
  147. ]
  148. },
  149. // 监听切换数据,上一页,下一页
  150. pageChange (id,rowindex,tabIndex) {
  151. this.$router.replace({path:'/orderdetail',query:{id:id,rowindex:rowindex}})
  152. this.queryMainData(id)
  153. },
  154. // 提交审核订单
  155. onSubmit (type) {
  156. this.$confirm(`是否${type}该订单`, '提示', {
  157. confirmButtonText: '确定',
  158. cancelButtonText: '取消',
  159. type: 'warning'
  160. }).then(async () => {
  161. const res = await this.$api.requested({
  162. "id": type === '审核'?20221108153502:20221108153402,
  163. "content": {
  164. "sa_orderid": this.mainData.sa_orderid,
  165. "sys_enterpriseid": this.mainData.sys_enterpriseid,
  166. "sa_accountclassid": this.mainData.accountclass.sa_accountclassid
  167. },
  168. })
  169. this.tool.showMessage(res,async ()=>{
  170. console.log(this.mainData.sys_enterpriseid,this.mainData.accountclass.sa_accountclassid)
  171. this.queryMainData()
  172. })
  173. }).catch((err) => {
  174. this.$message({
  175. type: 'info',
  176. message: err
  177. });
  178. });
  179. },
  180. // 反审核订单
  181. onReturnCheck () {
  182. this.$confirm(`是否反审核该订单`, '提示', {
  183. confirmButtonText: '确定',
  184. cancelButtonText: '取消',
  185. type: 'warning'
  186. }).then(async () => {
  187. const res = await this.$api.requested({
  188. "id": 20230102141502,
  189. "content": {
  190. "sa_orderid": this.mainData.sa_orderid,
  191. },
  192. })
  193. this.tool.showMessage(res,()=>{
  194. this.$store.dispatch('changeDetailDrawer',false)
  195. })
  196. }).catch((err) => {
  197. this.$message({
  198. type: 'info',
  199. message: err
  200. });
  201. });
  202. },
  203. async onRebanck () {
  204. const res = await this.$api.requested({
  205. "id": 20221108161902,
  206. "content": {
  207. "sys_enterpriseid":this.mainData.sys_enterpriseid,
  208. "sa_accountclassid":this.mainData.accountclass.sa_accountclassid,
  209. "sa_orderid": this.mainData.sa_orderid,
  210. "backreason": this.backreason //退回原因,可选
  211. },
  212. })
  213. this.tool.showMessage(res,()=>{
  214. this.queryMainData()
  215. this.dialogVisible = false
  216. this.$store.dispatch('changeDetailDrawer',false)
  217. })
  218. },
  219. async closeOrder () {
  220. const res = await this.$api.requested({
  221. "id": 20221108164502,
  222. "content": {
  223. "sa_orderids":[this.$route.query.id]
  224. },
  225. })
  226. this.tool.showMessage(res,()=>{
  227. this.queryMainData()
  228. this.dialogVisible = false
  229. })
  230. },
  231. async confirmdate () {
  232. const res = await this.$api.requested({
  233. "id": 20221230094802,
  234. "content": {
  235. "sa_orderid": this.$route.query.id
  236. }
  237. })
  238. this.tool.showMessage(res,()=>{
  239. this.queryMainData()
  240. })
  241. }
  242. },
  243. mounted () {
  244. this.queryMainData(this.$route.query.id)
  245. },
  246. created() {
  247. }
  248. }
  249. </script>
  250. <style scoped>
  251. </style>